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
This commit is contained in:
Max 2017-09-12 15:34:35 +02:00
parent 98f6482ec7
commit a52d839343
1 changed files with 11 additions and 9 deletions

View File

@ -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 */