void-packages/srcpkgs/alsa-utils/patches/musl.patch

530 lines
17 KiB
Diff

# Upstream PR: https://github.com/alsa-project/alsa-utils/pull/234
# u_int_* aren't standard, but uint* are. Use those instead for musl compat.
# Fix setlocale() by adding include for ENABLE_NLS
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 */
diff --git a/nhlt/nhlt-dmic-info.c b/nhlt/nhlt-dmic-info.c
index 3f6c64d9..f1b08574 100644
--- a/nhlt/nhlt-dmic-info.c
+++ b/nhlt/nhlt-dmic-info.c
@@ -45,7 +45,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";
@@ -59,7 +59,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";
@@ -73,21 +73,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) |
@@ -137,10 +137,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;
@@ -181,15 +181,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++)
@@ -231,7 +231,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;
diff --git a/topology/topology.c b/topology/topology.c
index 1840ffe6..98b000aa 100644
--- a/topology/topology.c
+++ b/topology/topology.c
@@ -36,6 +36,9 @@
#include <alsa/asoundlib.h>
#include <alsa/topology.h>
#include "gettext.h"
+#ifdef ENABLE_NLS
+#include <locale.h>
+#endif
#include "version.h"
#include "topology.h"