From a52d839343aea9b81c2463f52c3c3358778698f3 Mon Sep 17 00:00:00 2001 From: Max Date: Tue, 12 Sep 2017 15:34:35 +0200 Subject: Expand bit pretty-printer Add OSMO_BIT_PRINT_EX() which is like OSMO_BIT_PRINT() but allows to specify character to be printed for set bits. It's useful to print bytes used as mask where set bit has particular semantics - for example TS mask in OsmoPCU. Change-Id: I72528bc1e376134c5a7b6e7a50c48e38c3f48b0a Related: OS#2282 --- include/osmocom/core/bits.h | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'include/osmocom/core/bits.h') diff --git a/include/osmocom/core/bits.h b/include/osmocom/core/bits.h index 17fe1c6a..c6a142f8 100644 --- a/include/osmocom/core/bits.h +++ b/include/osmocom/core/bits.h @@ -69,15 +69,17 @@ int osmo_pbit2ubit_ext(ubit_t *out, unsigned int out_ofs, (byte & 0x01 ? 1 : 0) #define OSMO_BIT_SPEC "%c%c%c%c%c%c%c%c" -#define OSMO_BIT_PRINT(byte) \ - (byte & 0x80 ? '1' : '.'), \ - (byte & 0x40 ? '1' : '.'), \ - (byte & 0x20 ? '1' : '.'), \ - (byte & 0x10 ? '1' : '.'), \ - (byte & 0x08 ? '1' : '.'), \ - (byte & 0x04 ? '1' : '.'), \ - (byte & 0x02 ? '1' : '.'), \ - (byte & 0x01 ? '1' : '.') +#define OSMO_BIT_PRINT_EX(byte, ch) \ + (byte & 0x80 ? ch : '.'), \ + (byte & 0x40 ? ch : '.'), \ + (byte & 0x20 ? ch : '.'), \ + (byte & 0x10 ? ch : '.'), \ + (byte & 0x08 ? ch : '.'), \ + (byte & 0x04 ? ch : '.'), \ + (byte & 0x02 ? ch : '.'), \ + (byte & 0x01 ? ch : '.') + +#define OSMO_BIT_PRINT(byte) OSMO_BIT_PRINT_EX(byte, '1') /* BIT REVERSAL */ -- cgit v1.2.3