diff options
author | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2013-11-25 23:24:29 +0100 |
---|---|---|
committer | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2013-11-26 21:00:51 +0100 |
commit | 423dd2286befbaa29f63c65e739bbe894daa65e1 (patch) | |
tree | 0a4f32aa782db0e31bf2fcd7264ac2e92a5f4918 /src | |
parent | 4c06d9155c6e114a7b976aad5bba1749d7f42df4 (diff) |
tbf/rlc: Move the putting of a block into the rlc code
Diffstat (limited to 'src')
-rw-r--r-- | src/rlc.cpp | 6 | ||||
-rw-r--r-- | src/rlc.h | 1 | ||||
-rw-r--r-- | src/tbf.cpp | 3 |
3 files changed, 8 insertions, 2 deletions
diff --git a/src/rlc.cpp b/src/rlc.cpp index f29af62d..838554ae 100644 --- a/src/rlc.cpp +++ b/src/rlc.cpp @@ -34,6 +34,12 @@ uint8_t *gprs_rlc_data::prepare(size_t block_data_len) return block; } +void gprs_rlc_data::put_data(const uint8_t *data, size_t data_len) +{ + memcpy(block, data, data_len); + len = data_len; +} + void gprs_rlc_v_b::reset() { for (size_t i = 0; i < ARRAY_SIZE(m_v_b); ++i) @@ -29,6 +29,7 @@ class BTS; struct gprs_rlc_data { uint8_t *prepare(size_t block_data_length); + void put_data(const uint8_t *data, size_t len); /* block history */ uint8_t block[RLC_MAX_LEN]; diff --git a/src/tbf.cpp b/src/tbf.cpp index 0b9a1944..edba28a5 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -1607,8 +1607,7 @@ int gprs_rlcmac_tbf::rcv_data_block_acknowledged(const uint8_t *data, size_t len /* Write block to buffer and set receive state array. */ index = rh->bsn & mod_sns_half; /* memory index of block */ - memcpy(m_rlc.blocks[index].block, data, len); /* Copy block. */ - m_rlc.blocks[index].len = len; + m_rlc.blocks[index].put_data(data, len); dir.ul.v_n.mark_received(index); LOGP(DRLCMACUL, LOGL_DEBUG, "- BSN %d storing in window (%d..%d)\n", rh->bsn, dir.ul.window.v_q(), |