fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/38815?usp=email )
Change subject: csd_v110: add CSD_V110_NUM_BITS macro ......................................................................
csd_v110: add CSD_V110_NUM_BITS macro
Change-Id: Iabd2ee5ea9d580e0a6f5c93d681f6be67d1949c5 --- M include/osmo-bts/csd_v110.h M src/common/csd_v110.c M src/common/l1sap.c M tests/csd/csd_test.c 4 files changed, 8 insertions(+), 5 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/15/38815/1
diff --git a/include/osmo-bts/csd_v110.h b/include/osmo-bts/csd_v110.h index 7d67ff0..d2a27b3 100644 --- a/include/osmo-bts/csd_v110.h +++ b/include/osmo-bts/csd_v110.h @@ -13,6 +13,9 @@
extern const struct csd_v110_lchan_desc csd_v110_lchan_desc[256];
+#define CSD_V110_NUM_BITS(desc) \ + ((desc)->num_blocks * (desc)->num_bits) + int csd_v110_rtp_encode(const struct gsm_lchan *lchan, uint8_t *rtp, const uint8_t *data, size_t data_len, uint8_t nt48_half_num); diff --git a/src/common/csd_v110.c b/src/common/csd_v110.c index f60624f..4d7ee4f 100644 --- a/src/common/csd_v110.c +++ b/src/common/csd_v110.c @@ -92,7 +92,7 @@ return -ENOTSUP;
/* handle empty/incomplete Uplink frames gracefully */ - if (OSMO_UNLIKELY(data_len < (desc->num_blocks * desc->num_bits))) { + if (OSMO_UNLIKELY(data_len < CSD_V110_NUM_BITS(desc))) { /* encode N idle frames as per 3GPP TS 44.021, section 8.1.6 */ memset(&ra_bits[0], 0x01, sizeof(ra_bits)); for (unsigned int i = 0; i < desc->num_blocks; i++) @@ -200,5 +200,5 @@
if (align_bits) *align_bits = align_accum; - return desc->num_blocks * desc->num_bits; + return CSD_V110_NUM_BITS(desc); } diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 18d7d93..09f6a90 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1528,7 +1528,7 @@ gsm_fn2gsmtime(&g_time, fn);
desc = &csd_v110_lchan_desc[lchan->tch_mode]; - bits_per_20ms = desc->num_blocks * desc->num_bits; + bits_per_20ms = CSD_V110_NUM_BITS(desc); OSMO_ASSERT(bits_per_20ms != 0);
for (i = 0; i < ARRAY_SIZE(input_msg); i++) { @@ -2172,7 +2172,7 @@ int rc, i;
desc = &csd_v110_lchan_desc[lchan->tch_mode]; - bits_per_20ms = desc->num_blocks * desc->num_bits; + bits_per_20ms = CSD_V110_NUM_BITS(desc); OSMO_ASSERT(bits_per_20ms != 0);
if (data_len != bits_per_20ms * 2) { diff --git a/tests/csd/csd_test.c b/tests/csd/csd_test.c index e52bde2..c46bbd9 100644 --- a/tests/csd/csd_test.c +++ b/tests/csd/csd_test.c @@ -104,7 +104,7 @@ desc = &csd_v110_lchan_desc[tc->tch_mode];
/* total number of bits carried by a radio interface block */ - const unsigned int bit_num = desc->num_bits * desc->num_blocks; + const unsigned int bit_num = CSD_V110_NUM_BITS(desc); if (bit_num == 0) { fprintf(stderr, "[i] Skipping '%s' (not implemented)\n", tc->name); return;