From 9375ecc6a4c30627b54850d6524e900f42e152a1 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 12 Mar 2026 18:35:22 +0000 Subject: add endianness check to spkmodem-recv a bit dirty. should handle this at runtime. Signed-off-by: Leah Rowe --- util/spkmodem_recv/spkmodem-recv.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'util/spkmodem_recv') diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c index db7454ca..f0e8db16 100644 --- a/util/spkmodem_recv/spkmodem-recv.c +++ b/util/spkmodem_recv/spkmodem-recv.c @@ -7,7 +7,7 @@ * and decodes them. This is a special type of interface provided * by coreboot and GRUB, for computers that lack serial ports. * - * Usage example: + * Usage example (NOTE: little endian!): * parec --channels=1 --rate=48000 --format=s16le | ./spkmodem-recv * * Originally provided by GNU GRUB, this version is a heavily @@ -51,6 +51,13 @@ #define READ_BUF 4096 +/* TODO: handle this at runtime instead (bswap) */ +#if defined(__BYTE_ORDER__) +#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ +#error "spkmodem-recv requires little-endian samples" +#endif +#endif + struct decoder_state { signed short frame[MAX_SAMPLES]; unsigned char pulse[MAX_SAMPLES]; -- cgit v1.2.1