aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gprs_coding_scheme.cpp44
-rw-r--r--src/gprs_coding_scheme.h32
-rw-r--r--src/rlc.cpp2
-rw-r--r--src/rlc.h4
-rw-r--r--src/tbf_dl.cpp8
5 files changed, 45 insertions, 45 deletions
diff --git a/src/gprs_coding_scheme.cpp b/src/gprs_coding_scheme.cpp
index 719cbb28..3094ae6c 100644
--- a/src/gprs_coding_scheme.cpp
+++ b/src/gprs_coding_scheme.cpp
@@ -55,12 +55,12 @@ enum GprsCodingScheme::Scheme GprsCodingScheme::egprs_mcs_retx_tbl[MAX_NUM_ARQ]
static struct {
struct {
- unsigned int bytes;
- unsigned int ext_bits;
- unsigned int data_header_bits;
+ uint8_t bytes;
+ uint8_t ext_bits;
+ uint8_t data_header_bits;
} uplink, downlink;
- unsigned int data_bytes;
- unsigned int optional_padding_bits;
+ uint8_t data_bytes;
+ uint8_t optional_padding_bits;
const char *name;
GprsCodingScheme::HeaderType data_hdr;
GprsCodingScheme::Family family;
@@ -99,10 +99,10 @@ static struct {
static struct {
struct {
- int data_header_bits;
+ uint8_t data_header_bits;
} uplink, downlink;
- unsigned int data_block_header_bits;
- unsigned int num_blocks;
+ uint8_t data_block_header_bits;
+ uint8_t num_blocks;
const char *name;
} hdr_type_info[GprsCodingScheme::NUM_HEADER_TYPES] = {
{{0}, {0}, 0, 0, "INVALID"},
@@ -134,12 +134,12 @@ GprsCodingScheme GprsCodingScheme::getBySizeUL(unsigned size)
return GprsCodingScheme(UNKNOWN);
}
-unsigned int GprsCodingScheme::sizeUL() const
+uint8_t GprsCodingScheme::sizeUL() const
{
return mcs_info[m_scheme].uplink.bytes + (spareBitsUL() ? 1 : 0);
}
-unsigned int GprsCodingScheme::usedSizeUL() const
+uint8_t GprsCodingScheme::usedSizeUL() const
{
if (mcs_info[m_scheme].data_hdr == HEADER_GPRS_DATA)
return mcs_info[m_scheme].uplink.bytes;
@@ -147,22 +147,22 @@ unsigned int GprsCodingScheme::usedSizeUL() const
return sizeUL();
}
-unsigned int GprsCodingScheme::maxBytesUL() const
+uint8_t GprsCodingScheme::maxBytesUL() const
{
return mcs_info[m_scheme].uplink.bytes;
}
-unsigned int GprsCodingScheme::spareBitsUL() const
+uint8_t GprsCodingScheme::spareBitsUL() const
{
return mcs_info[m_scheme].uplink.ext_bits;
}
-unsigned int GprsCodingScheme::sizeDL() const
+uint8_t GprsCodingScheme::sizeDL() const
{
return mcs_info[m_scheme].downlink.bytes + (spareBitsDL() ? 1 : 0);
}
-unsigned int GprsCodingScheme::usedSizeDL() const
+uint8_t GprsCodingScheme::usedSizeDL() const
{
if (mcs_info[m_scheme].data_hdr == HEADER_GPRS_DATA)
return mcs_info[m_scheme].downlink.bytes;
@@ -170,42 +170,42 @@ unsigned int GprsCodingScheme::usedSizeDL() const
return sizeDL();
}
-unsigned int GprsCodingScheme::maxBytesDL() const
+uint8_t GprsCodingScheme::maxBytesDL() const
{
return mcs_info[m_scheme].downlink.bytes;
}
-unsigned int GprsCodingScheme::spareBitsDL() const
+uint8_t GprsCodingScheme::spareBitsDL() const
{
return mcs_info[m_scheme].downlink.ext_bits;
}
-unsigned int GprsCodingScheme::maxDataBlockBytes() const
+uint8_t GprsCodingScheme::maxDataBlockBytes() const
{
return mcs_info[m_scheme].data_bytes;
}
-unsigned int GprsCodingScheme::optionalPaddingBits() const
+uint8_t GprsCodingScheme::optionalPaddingBits() const
{
return mcs_info[m_scheme].optional_padding_bits;
}
-unsigned int GprsCodingScheme::numDataBlocks() const
+uint8_t GprsCodingScheme::numDataBlocks() const
{
return hdr_type_info[headerTypeData()].num_blocks;
}
-unsigned int GprsCodingScheme::numDataHeaderBitsUL() const
+uint8_t GprsCodingScheme::numDataHeaderBitsUL() const
{
return hdr_type_info[headerTypeData()].uplink.data_header_bits;
}
-unsigned int GprsCodingScheme::numDataHeaderBitsDL() const
+uint8_t GprsCodingScheme::numDataHeaderBitsDL() const
{
return hdr_type_info[headerTypeData()].downlink.data_header_bits;
}
-unsigned int GprsCodingScheme::numDataBlockHeaderBits() const
+uint8_t GprsCodingScheme::numDataBlockHeaderBits() const
{
return hdr_type_info[headerTypeData()].data_block_header_bits;
}
diff --git a/src/gprs_coding_scheme.h b/src/gprs_coding_scheme.h
index dfad240b..76cab0f2 100644
--- a/src/gprs_coding_scheme.h
+++ b/src/gprs_coding_scheme.h
@@ -70,7 +70,7 @@ public:
operator bool() const {return m_scheme != UNKNOWN;}
operator Scheme() const {return m_scheme;}
- unsigned int to_num() const;
+ uint8_t to_num() const;
GprsCodingScheme& operator =(Scheme s);
bool operator == (Scheme s) const;
@@ -91,20 +91,20 @@ public:
void dec();
void decToSingleBlock(bool *needStuffing);
- unsigned int sizeUL() const;
- unsigned int sizeDL() const;
- unsigned int usedSizeUL() const;
- unsigned int usedSizeDL() const;
- unsigned int maxBytesUL() const;
- unsigned int maxBytesDL() const;
- unsigned int spareBitsUL() const;
- unsigned int spareBitsDL() const;
- unsigned int maxDataBlockBytes() const;
- unsigned int numDataBlocks() const;
- unsigned int numDataHeaderBitsUL() const;
- unsigned int numDataHeaderBitsDL() const;
- unsigned int numDataBlockHeaderBits() const;
- unsigned int optionalPaddingBits() const;
+ uint8_t sizeUL() const;
+ uint8_t sizeDL() const;
+ uint8_t usedSizeUL() const;
+ uint8_t usedSizeDL() const;
+ uint8_t maxBytesUL() const;
+ uint8_t maxBytesDL() const;
+ uint8_t spareBitsUL() const;
+ uint8_t spareBitsDL() const;
+ uint8_t maxDataBlockBytes() const;
+ uint8_t numDataBlocks() const;
+ uint8_t numDataHeaderBitsUL() const;
+ uint8_t numDataHeaderBitsDL() const;
+ uint8_t numDataBlockHeaderBits() const;
+ uint8_t optionalPaddingBits() const;
const char *name() const;
HeaderType headerTypeData() const;
HeaderType headerTypeControl() const;
@@ -127,7 +127,7 @@ private:
enum Scheme m_scheme;
};
-inline unsigned int GprsCodingScheme::to_num() const
+inline uint8_t GprsCodingScheme::to_num() const
{
if (isGprs())
return (m_scheme - CS1) + 1;
diff --git a/src/rlc.cpp b/src/rlc.cpp
index 37e83cda..d7f06090 100644
--- a/src/rlc.cpp
+++ b/src/rlc.cpp
@@ -375,7 +375,7 @@ void gprs_rlc_data_block_info_init(struct gprs_rlc_data_block_info *rdbi,
unsigned int gprs_rlc_mcs_cps(GprsCodingScheme cs,
enum egprs_puncturing_values punct,
- enum egprs_puncturing_values punct2, int with_padding)
+ enum egprs_puncturing_values punct2, bool with_padding)
{
/* validate that punct and punct2 are as expected */
switch (GprsCodingScheme::Scheme(cs)) {
diff --git a/src/rlc.h b/src/rlc.h
index b62e3ac5..a7e6cf34 100644
--- a/src/rlc.h
+++ b/src/rlc.h
@@ -163,7 +163,7 @@ struct gprs_rlc_data_info {
unsigned int es_p;
unsigned int rrbp;
unsigned int pr;
- unsigned int num_data_blocks;
+ uint8_t num_data_blocks; /* this can actually be only 0, 1, 2: enforced in gprs_rlc_data_header_init() */
unsigned int with_padding;
unsigned int data_offs_bits[2];
struct gprs_rlc_data_block_info block_info[2];
@@ -218,7 +218,7 @@ void gprs_rlc_data_info_init_ul(struct gprs_rlc_data_info *rlc,
void gprs_rlc_data_block_info_init(struct gprs_rlc_data_block_info *rdbi,
GprsCodingScheme cs, bool with_padding, const unsigned int spb);
unsigned int gprs_rlc_mcs_cps(GprsCodingScheme cs, enum egprs_puncturing_values
- punct, enum egprs_puncturing_values punct2, int with_padding);
+ punct, enum egprs_puncturing_values punct2, bool with_padding);
void gprs_rlc_mcs_cps_decode(unsigned int cps, GprsCodingScheme cs,
int *punct, int *punct2, int *with_padding);
enum egprs_puncturing_values gprs_get_punct_scheme(enum egprs_puncturing_values
diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp
index 58b55dcd..b871bc32 100644
--- a/src/tbf_dl.cpp
+++ b/src/tbf_dl.cpp
@@ -666,7 +666,7 @@ struct msgb *gprs_rlcmac_dl_tbf::create_dl_acked_block(
unsigned msg_len;
bool need_poll;
/* TODO: support MCS-7 - MCS-9, where data_block_idx can be 1 */
- unsigned int data_block_idx = 0;
+ uint8_t data_block_idx = 0;
unsigned int rrbp;
uint32_t new_poll_fn;
int rc;
@@ -752,8 +752,8 @@ struct msgb *gprs_rlcmac_dl_tbf::create_dl_acked_block(
LOGP(DRLCMACDL, LOGL_DEBUG, "- Copying %u RLC blocks, %u BSNs\n", rlc.num_data_blocks, num_bsns);
- /* Copy block(s) to RLC message */
- for (data_block_idx = 0; data_block_idx < rlc.num_data_blocks;
+ /* Copy block(s) to RLC message: the num_data_blocks cannot be more than 2 - see assert above */
+ for (data_block_idx = 0; data_block_idx < OSMO_MIN(rlc.num_data_blocks, 2);
data_block_idx++)
{
int bsn;
@@ -777,7 +777,7 @@ struct msgb *gprs_rlcmac_dl_tbf::create_dl_acked_block(
OSMO_ASSERT(m_rlc.block(bsn)->next_ps >= EGPRS_PS_1);
OSMO_ASSERT(m_rlc.block(bsn)->next_ps <= EGPRS_PS_3);
}
- OSMO_ASSERT(data_block_idx < 2); /* punct defined above as 2-element array */
+
punct[data_block_idx] = m_rlc.block(bsn)->next_ps;
rdbi = &rlc.block_info[data_block_idx];