aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2018-11-16 00:16:57 +0100
committerNeels Hofmeyr <neels@hofmeyr.de>2020-01-07 17:49:51 +0100
commita160e4bfdb12b1a31c77150b00d089b78c46bc8d (patch)
treedabef4828157d986c43584b3ae1726f6dfd69ffe
parentc313d44272f04b24dad38f4caea17180f9cbc509 (diff)
add/clean big-endian packed structs (struct_endianess.py)
-rw-r--r--src/e1_input.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/e1_input.c b/src/e1_input.c
index eb973ef..9e2f7b0 100644
--- a/src/e1_input.c
+++ b/src/e1_input.c
@@ -42,6 +42,7 @@
#include <osmocom/core/rate_ctr.h>
#include <osmocom/core/logging.h>
#include <osmocom/core/signal.h>
+#include <osmocom/core/endian.h>
#include <osmocom/abis/e1_input.h>
#define NUM_E1_TS 32
@@ -115,12 +116,19 @@ struct fake_linux_lapd_header {
} __attribute__((packed));
struct lapd_header {
+#if OSMO_IS_LITTLE_ENDIAN
uint8_t ea1 : 1;
uint8_t cr : 1;
uint8_t sapi : 6;
uint8_t ea2 : 1;
uint8_t tei : 7;
uint8_t control_foo; /* fake UM's ... */
+#elif OSMO_IS_BIG_ENDIAN
+/* auto-generated from the little endian part above (libosmocore/contrib/struct_endianess.py) */
+ uint8_t sapi:6, cr:1, ea1:1;
+ uint8_t tei:7, ea2:1;
+ uint8_t control_foo;
+#endif
} __attribute__((packed));
osmo_static_assert(offsetof(struct fake_linux_lapd_header, hatype) == 2, hatype_offset);