From b4fbf92fc4708b4c7e95ef166e4c2a99d90581c0 Mon Sep 17 00:00:00 2001 From: Sam James Date: Thu, 7 Sep 2023 21:23:51 +0100 Subject: [PATCH 1/4] topology: add include for ENABLE_NLS on musl Needed for setlocale(). (After rebasing to pick up 8c229270f6bae83b705a03714c46067a7aa57b02, just move it to be guarded as the include now exists.) Signed-off-by: Sam James --- topology/topology.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/topology/topology.c b/topology/topology.c index 5d03a8b1..98b000aa 100644 --- a/topology/topology.c +++ b/topology/topology.c @@ -32,11 +32,13 @@ #include #include #include -#include #include #include #include "gettext.h" +#ifdef ENABLE_NLS +#include +#endif #include "version.h" #include "topology.h" From 3590fb77694bcbcb4933220df1917b18d158a7a7 Mon Sep 17 00:00:00 2001 From: Sam James Date: Thu, 7 Sep 2023 21:24:16 +0100 Subject: [PATCH 2/4] nhlt: use stdint.h types u_int_* aren't standard, but uint* are. Use those instead for musl compat. Bug: https://bugs.gentoo.org/913758 Signed-off-by: Sam James --- nhlt/nhlt-dmic-info.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/nhlt/nhlt-dmic-info.c b/nhlt/nhlt-dmic-info.c index 331555a8..eadf21a1 100644 --- a/nhlt/nhlt-dmic-info.c +++ b/nhlt/nhlt-dmic-info.c @@ -46,7 +46,7 @@ int debug = 0; #define NHLT_EP_HDR_SIZE (4 + 1 + 1 + 2 + 2 + 2 + 4 + 1 + 1 + 1) #define VENDOR_MIC_CFG_SIZE (1 + 1 + 2 + 2 + 2 + 1 + 1 + 2 + 2 + 2 + 2 + 2 + 2) -static const char *microphone_type(u_int8_t type) +static const char *microphone_type(uint8_t type) { switch (type) { case 0: return "omnidirectional"; @@ -60,7 +60,7 @@ static const char *microphone_type(u_int8_t type) return "unknown"; } -static const char *microphone_location(u_int8_t location) +static const char *microphone_location(uint8_t location) { switch (location) { case 0: return "laptop-top-panel"; @@ -74,21 +74,21 @@ static const char *microphone_location(u_int8_t location) } -static inline u_int8_t get_u8(u_int8_t *base, u_int32_t off) +static inline uint8_t get_u8(uint8_t *base, uint32_t off) { return *(base + off); } -static inline int32_t get_s16le(u_int8_t *base, u_int32_t off) +static inline int32_t get_s16le(uint8_t *base, uint32_t off) { - u_int32_t v = *(base + off + 0) | + uint32_t v = *(base + off + 0) | (*(base + off + 1) << 8); if (v & 0x8000) return -((int32_t)0x10000 - (int32_t)v); return v; } -static inline u_int32_t get_u32le(u_int8_t *base, u_int32_t off) +static inline uint32_t get_u32le(uint8_t *base, uint32_t off) { return *(base + off + 0) | (*(base + off + 1) << 8) | @@ -138,10 +138,10 @@ static int nhlt_dmic_config(FILE *out, uint8_t *dmic, uint8_t mic) return 0; } -static int nhlt_dmic_ep_to_json(FILE *out, uint8_t *ep, u_int32_t ep_size) +static int nhlt_dmic_ep_to_json(FILE *out, uint8_t *ep, uint32_t ep_size) { - u_int32_t off, specific_cfg_size; - u_int8_t config_type, array_type, mic, num_mics; + uint32_t off, specific_cfg_size; + uint8_t config_type, array_type, mic, num_mics; int res; off = NHLT_EP_HDR_SIZE; @@ -182,15 +182,15 @@ static int nhlt_dmic_ep_to_json(FILE *out, uint8_t *ep, u_int32_t ep_size) return -EINVAL; } -static int nhlt_table_to_json(FILE *out, u_int8_t *nhlt, u_int32_t size) +static int nhlt_table_to_json(FILE *out, uint8_t *nhlt, uint32_t size) { - u_int32_t _size, off, ep_size; - u_int8_t sum = 0, ep, ep_count, link_type, dmics = 0; + uint32_t _size, off, ep_size; + uint8_t sum = 0, ep, ep_count, link_type, dmics = 0; int res; _size = get_u32le(nhlt, 4); if (_size != size) { - fprintf(stderr, "Table size mismatch (%08x != %08x)\n", _size, (u_int32_t)size); + fprintf(stderr, "Table size mismatch (%08x != %08x)\n", _size, (uint32_t)size); return -EINVAL; } for (off = 0; off < size; off++) @@ -232,7 +232,7 @@ static int nhlt_table_to_json(FILE *out, u_int8_t *nhlt, u_int32_t size) static int nhlt_to_json(FILE *out, const char *nhlt_file) { struct stat st; - u_int8_t *buf; + uint8_t *buf; int _errno, fd, res; size_t pos, size; ssize_t ret; From 173367ba3099bfb5d3b7e9d73e8aef184d3703ba Mon Sep 17 00:00:00 2001 From: Sam James Date: Thu, 7 Sep 2023 21:27:48 +0100 Subject: [PATCH 3/4] aplay: use stdint.h types u_int_* aren't standard, but uint* are. Signed-off-by: Sam James --- aplay/aplay.c | 90 ++++++++++++++++++++++++------------------------- aplay/formats.h | 70 +++++++++++++++++++------------------- 2 files changed, 80 insertions(+), 80 deletions(-) diff --git a/aplay/aplay.c b/aplay/aplay.c index f180d42b..4d578f3b 100644 --- a/aplay/aplay.c +++ b/aplay/aplay.c @@ -114,7 +114,7 @@ static int mmap_flag = 0; static int interleaved = 1; static int nonblock = 0; static volatile sig_atomic_t in_aborting = 0; -static u_char *audiobuf = NULL; +static unsigned char *audiobuf = NULL; static snd_pcm_uframes_t chunk_size = 0; static unsigned period_time = 0; static unsigned buffer_time = 0; @@ -859,7 +859,7 @@ int main(int argc, char *argv[]) chunk_size = 1024; hwparams = rhwparams; - audiobuf = (u_char *)malloc(1024); + audiobuf = (unsigned char *)malloc(1024); if (audiobuf == NULL) { error(_("not enough memory")); return 1; @@ -970,7 +970,7 @@ static int test_vocfile(void *buffer) * helper for test_wavefile */ -static size_t test_wavefile_read(int fd, u_char *buffer, size_t *size, size_t reqsize, int line) +static size_t test_wavefile_read(int fd, unsigned char *buffer, size_t *size, size_t reqsize, int line) { if (*size >= reqsize) return *size; @@ -995,17 +995,17 @@ static size_t test_wavefile_read(int fd, u_char *buffer, size_t *size, size_t re * == 0 if not * Value returned is bytes to be discarded. */ -static ssize_t test_wavefile(int fd, u_char *_buffer, size_t size) +static ssize_t test_wavefile(int fd, unsigned char *_buffer, size_t size) { WaveHeader *h = (WaveHeader *)_buffer; - u_char *buffer = NULL; + unsigned char *buffer = NULL; size_t blimit = 0; WaveFmtBody *f; WaveChunkHeader *c; - u_int type, len; + unsigned int type, len; unsigned short format, channels; int big_endian, native_format; - u_char vbps = 0; + unsigned char vbps = 0; if (size < sizeof(WaveHeader)) return -1; @@ -1044,7 +1044,7 @@ static ssize_t test_wavefile(int fd, u_char *_buffer, size_t size) if (len < sizeof(WaveFmtBody)) { error(_("unknown length of 'fmt ' chunk (read %u, should be %u at least)"), - len, (u_int)sizeof(WaveFmtBody)); + len, (unsigned int)sizeof(WaveFmtBody)); prg_exit(EXIT_FAILURE); } check_wavefile_space(buffer, len, blimit); @@ -1055,7 +1055,7 @@ static ssize_t test_wavefile(int fd, u_char *_buffer, size_t size) WaveFmtExtensibleBody *fe = (WaveFmtExtensibleBody*)buffer; if (len < sizeof(WaveFmtExtensibleBody)) { error(_("unknown length of extensible 'fmt ' chunk (read %u, should be %u at least)"), - len, (u_int)sizeof(WaveFmtExtensibleBody)); + len, (unsigned int)sizeof(WaveFmtExtensibleBody)); prg_exit(EXIT_FAILURE); } if (memcmp(fe->guid_tag, WAV_GUID_TAG, 14) != 0) { @@ -1167,7 +1167,7 @@ static ssize_t test_wavefile(int fd, u_char *_buffer, size_t size) size -= len; while (1) { - u_int type, len; + unsigned int type, len; check_wavefile_space(buffer, sizeof(WaveChunkHeader), blimit); test_wavefile_read(fd, buffer, &size, sizeof(WaveChunkHeader), __LINE__); @@ -1809,7 +1809,7 @@ static void print_vu_meter(signed int *perc, signed int *maxperc) } /* peak handler */ -static void compute_max_peak(u_char *data, size_t samples) +static void compute_max_peak(unsigned char *data, size_t samples) { signed int val, max, perc[2], max_peak[2]; static int run = 0; @@ -2054,9 +2054,9 @@ static void do_test_position(void) /* */ #ifdef CONFIG_SUPPORT_CHMAP -static u_char *remap_data(u_char *data, size_t count) +static unsigned char *remap_data(unsigned char *data, size_t count) { - static u_char *tmp, *src, *dst; + static unsigned char *tmp, *src, *dst; static size_t tmp_size; size_t sample_bytes = bits_per_sample / 8; size_t step = bits_per_frame / 8; @@ -2090,9 +2090,9 @@ static u_char *remap_data(u_char *data, size_t count) return tmp; } -static u_char **remap_datav(u_char **data, size_t count ATTRIBUTE_UNUSED) +static unsigned char **remap_datav(unsigned char **data, size_t count ATTRIBUTE_UNUSED) { - static u_char **tmp; + static unsigned char **tmp; unsigned int ch; if (!hw_map) @@ -2118,7 +2118,7 @@ static u_char **remap_datav(u_char **data, size_t count ATTRIBUTE_UNUSED) * write function */ -static ssize_t pcm_write(u_char *data, size_t count) +static ssize_t pcm_write(unsigned char *data, size_t count) { ssize_t r; ssize_t result = 0; @@ -2157,7 +2157,7 @@ static ssize_t pcm_write(u_char *data, size_t count) return result; } -static ssize_t pcm_writev(u_char **data, unsigned int channels, size_t count) +static ssize_t pcm_writev(unsigned char **data, unsigned int channels, size_t count) { ssize_t r; size_t result = 0; @@ -2210,7 +2210,7 @@ static ssize_t pcm_writev(u_char **data, unsigned int channels, size_t count) * read function */ -static ssize_t pcm_read(u_char *data, size_t rcount) +static ssize_t pcm_read(unsigned char *data, size_t rcount) { ssize_t r; size_t result = 0; @@ -2252,7 +2252,7 @@ static ssize_t pcm_read(u_char *data, size_t rcount) return result > rcount ? rcount : result; } -static ssize_t pcm_readv(u_char **data, unsigned int channels, size_t rcount) +static ssize_t pcm_readv(unsigned char **data, unsigned int channels, size_t rcount) { ssize_t r; size_t result = 0; @@ -2304,7 +2304,7 @@ static ssize_t pcm_readv(u_char **data, unsigned int channels, size_t rcount) * ok, let's play a .voc file */ -static ssize_t voc_pcm_write(u_char *data, size_t count) +static ssize_t voc_pcm_write(unsigned char *data, size_t count) { ssize_t result = count, r; size_t size; @@ -2329,9 +2329,9 @@ static ssize_t voc_pcm_write(u_char *data, size_t count) static void voc_write_silence(unsigned x) { unsigned l; - u_char *buf; + unsigned char *buf; - buf = (u_char *) malloc(chunk_bytes); + buf = (unsigned char *) malloc(chunk_bytes); if (buf == NULL) { error(_("can't allocate buffer for silence")); return; /* not fatal error */ @@ -2372,15 +2372,15 @@ static void voc_play(int fd, int ofs, char *name) VocVoiceData *vd; VocExtBlock *eb; size_t nextblock, in_buffer; - u_char *data, *buf; + unsigned char *data, *buf; char was_extended = 0, output = 0; - u_short *sp, repeat = 0; + unsigned short *sp, repeat = 0; off_t filepos = 0; #define COUNT(x) nextblock -= x; in_buffer -= x; data += x #define COUNT1(x) in_buffer -= x; data += x - data = buf = (u_char *)malloc(64 * 1024); + data = buf = (unsigned char *)malloc(64 * 1024); buffer_pos = 0; if (data == NULL) { error(_("malloc error")); @@ -2472,8 +2472,8 @@ static void voc_play(int fd, int ofs, char *name) #endif break; case 3: /* a silence block, no data, only a count */ - sp = (u_short *) data; - COUNT1(sizeof(u_short)); + sp = (unsigned short *) data; + COUNT1(sizeof(unsigned short)); hwparams.rate = (int) (*data); COUNT1(1); hwparams.rate = 1000000 / (256 - hwparams.rate); @@ -2488,8 +2488,8 @@ static void voc_play(int fd, int ofs, char *name) voc_write_silence(*sp); break; case 4: /* a marker for syncronisation, no effect */ - sp = (u_short *) data; - COUNT1(sizeof(u_short)); + sp = (unsigned short *) data; + COUNT1(sizeof(unsigned short)); #if 0 d_printf("Marker %d\n", *sp); #endif @@ -2503,8 +2503,8 @@ static void voc_play(int fd, int ofs, char *name) case 6: /* repeat marker, says repeatcount */ /* my specs don't say it: maybe this can be recursive, but I don't think somebody use it */ - repeat = *(u_short *) data; - COUNT1(sizeof(u_short)); + repeat = *(unsigned short *) data; + COUNT1(sizeof(unsigned short)); #if 0 d_printf("Repeat loop %d times\n", repeat); #endif @@ -2649,14 +2649,14 @@ static void begin_voc(int fd, size_t cnt) } bt.type = 1; cnt += sizeof(VocVoiceData); /* Channel_data block follows */ - bt.datalen = (u_char) (cnt & 0xFF); - bt.datalen_m = (u_char) ((cnt & 0xFF00) >> 8); - bt.datalen_h = (u_char) ((cnt & 0xFF0000) >> 16); + bt.datalen = (unsigned char) (cnt & 0xFF); + bt.datalen_m = (unsigned char) ((cnt & 0xFF00) >> 8); + bt.datalen_h = (unsigned char) ((cnt & 0xFF0000) >> 16); if (xwrite(fd, &bt, sizeof(VocBlockType)) != sizeof(VocBlockType)) { error(_("write error")); prg_exit(EXIT_FAILURE); } - vd.tc = (u_char) (256 - (1000000 / hwparams.rate)); + vd.tc = (unsigned char) (256 - (1000000 / hwparams.rate)); vd.pack = 0; if (xwrite(fd, &vd, sizeof(VocVoiceData)) != sizeof(VocVoiceData)) { error(_("write error")); @@ -2671,8 +2671,8 @@ static void begin_wave(int fd, size_t cnt) WaveFmtBody f; WaveChunkHeader cf, cd; int bits; - u_int tmp; - u_short tmp2; + unsigned int tmp; + unsigned short tmp2; /* WAVE cannot handle greater than 32bit (signed?) int */ if (cnt == (size_t)-2) @@ -2715,11 +2715,11 @@ static void begin_wave(int fd, size_t cnt) #if 0 tmp2 = (samplesize == 8) ? 1 : 2; f.byte_p_spl = LE_SHORT(tmp2); - tmp = dsp_speed * hwparams.channels * (u_int) tmp2; + tmp = dsp_speed * hwparams.channels * (unsigned int) tmp2; #else tmp2 = hwparams.channels * snd_pcm_format_physical_width(hwparams.format) / 8; f.byte_p_spl = LE_SHORT(tmp2); - tmp = (u_int) tmp2 * hwparams.rate; + tmp = (unsigned int) tmp2 * hwparams.rate; #endif f.byte_p_sec = LE_INT(tmp); f.bit_p_spl = LE_SHORT(bits); @@ -2786,9 +2786,9 @@ static void end_voc(int fd) cnt += sizeof(VocVoiceData); /* Channel_data block follows */ if (cnt > 0x00ffffff) cnt = 0x00ffffff; - bt.datalen = (u_char) (cnt & 0xFF); - bt.datalen_m = (u_char) ((cnt & 0xFF00) >> 8); - bt.datalen_h = (u_char) ((cnt & 0xFF0000) >> 16); + bt.datalen = (unsigned char) (cnt & 0xFF); + bt.datalen_m = (unsigned char) ((cnt & 0xFF00) >> 8); + bt.datalen_h = (unsigned char) ((cnt & 0xFF0000) >> 16); if (lseek(fd, length_seek, SEEK_SET) == length_seek) xwrite(fd, &bt, sizeof(VocBlockType)); } @@ -2798,7 +2798,7 @@ static void end_wave(int fd) WaveChunkHeader cd; off_t length_seek; off_t filelen; - u_int rifflen; + unsigned int rifflen; length_seek = sizeof(WaveHeader) + sizeof(WaveChunkHeader) + @@ -3339,7 +3339,7 @@ static void playbackv_go(int* fds, unsigned int channels, size_t loaded, off_t c size_t vsize; unsigned int channel; - u_char *bufs[channels]; + unsigned char *bufs[channels]; header(rtype, names[0]); set_params(); @@ -3393,7 +3393,7 @@ static void capturev_go(int* fds, unsigned int channels, off_t count, int rtype, ssize_t r; unsigned int channel; size_t vsize; - u_char *bufs[channels]; + unsigned char *bufs[channels]; header(rtype, names[0]); set_params(); diff --git a/aplay/formats.h b/aplay/formats.h index 093ab809..a3cf6cba 100644 --- a/aplay/formats.h +++ b/aplay/formats.h @@ -17,28 +17,28 @@ ((u_long)(bp->datalen_h) << 16) ) typedef struct voc_header { - u_char magic[20]; /* must be MAGIC_STRING */ - u_short headerlen; /* Headerlength, should be 0x1A */ - u_short version; /* VOC-file version */ - u_short coded_ver; /* 0x1233-version */ + unsigned char magic[20]; /* must be MAGIC_STRING */ + unsigned short headerlen; /* Headerlength, should be 0x1A */ + unsigned short version; /* VOC-file version */ + unsigned short coded_ver; /* 0x1233-version */ } VocHeader; typedef struct voc_blocktype { - u_char type; - u_char datalen; /* low-byte */ - u_char datalen_m; /* medium-byte */ - u_char datalen_h; /* high-byte */ + unsigned char type; + unsigned char datalen; /* low-byte */ + unsigned char datalen_m; /* medium-byte */ + unsigned char datalen_h; /* high-byte */ } VocBlockType; typedef struct voc_voice_data { - u_char tc; - u_char pack; + unsigned char tc; + unsigned char pack; } VocVoiceData; typedef struct voc_ext_block { - u_short tc; - u_char pack; - u_char mode; + unsigned short tc; + unsigned char pack; + unsigned char mode; } VocExtBlock; /* Definitions for Microsoft WAVE format */ @@ -85,32 +85,32 @@ typedef struct voc_ext_block { it works on all WAVE-file I have */ typedef struct { - u_int magic; /* 'RIFF' */ - u_int length; /* filelen */ - u_int type; /* 'WAVE' */ + unsigned int magic; /* 'RIFF' */ + unsigned int length; /* filelen */ + unsigned int type; /* 'WAVE' */ } WaveHeader; typedef struct { - u_short format; /* see WAV_FMT_* */ - u_short channels; - u_int sample_fq; /* frequence of sample */ - u_int byte_p_sec; - u_short byte_p_spl; /* samplesize; 1 or 2 bytes */ - u_short bit_p_spl; /* 8, 12 or 16 bit */ + unsigned short format; /* see WAV_FMT_* */ + unsigned short channels; + unsigned int sample_fq; /* frequence of sample */ + unsigned int byte_p_sec; + unsigned short byte_p_spl; /* samplesize; 1 or 2 bytes */ + unsigned short bit_p_spl; /* 8, 12 or 16 bit */ } WaveFmtBody; typedef struct { WaveFmtBody format; - u_short ext_size; - u_short bit_p_spl; - u_int channel_mask; - u_short guid_format; /* WAV_FMT_* */ - u_char guid_tag[14]; /* WAV_GUID_TAG */ + unsigned short ext_size; + unsigned short bit_p_spl; + unsigned int channel_mask; + unsigned short guid_format; /* WAV_FMT_* */ + unsigned char guid_tag[14]; /* WAV_GUID_TAG */ } WaveFmtExtensibleBody; typedef struct { - u_int type; /* 'data' */ - u_int length; /* samplecount */ + unsigned int type; /* 'data' */ + unsigned int length; /* samplecount */ } WaveChunkHeader; /* Definitions for Sparc .au header */ @@ -122,12 +122,12 @@ typedef struct { #define AU_FMT_LIN16 3 typedef struct au_header { - u_int magic; /* '.snd' */ - u_int hdr_size; /* size of header (min 24) */ - u_int data_size; /* size of data */ - u_int encoding; /* see to AU_FMT_XXXX */ - u_int sample_rate; /* sample rate */ - u_int channels; /* number of channels (voices) */ + unsigned int magic; /* '.snd' */ + unsigned int hdr_size; /* size of header (min 24) */ + unsigned int data_size; /* size of data */ + unsigned int encoding; /* see to AU_FMT_XXXX */ + unsigned int sample_rate; /* sample rate */ + unsigned int channels; /* number of channels (voices) */ } AuHeader; #endif /* FORMATS */ From 3b58675c779b0a2936c248293a84af3f8fad43b6 Mon Sep 17 00:00:00 2001 From: Sam James Date: Sat, 30 Sep 2023 10:09:46 +0100 Subject: [PATCH 4/4] Revert "nhlt-dmic-info.c: include sys/types.h" This reverts commit 0925ad7f09b2dc77015784f9ac2f5e34dd0dd5c3. This isn't necessary now that we use standard types (sys/types.h just defines some compatibility typedefs). Signed-off-by: Sam James --- nhlt/nhlt-dmic-info.c | 1 - 1 file changed, 1 deletion(-) diff --git a/nhlt/nhlt-dmic-info.c b/nhlt/nhlt-dmic-info.c index eadf21a1..f1b08574 100644 --- a/nhlt/nhlt-dmic-info.c +++ b/nhlt/nhlt-dmic-info.c @@ -33,7 +33,6 @@ #include #include #include -#include #include int debug = 0;