aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <holger@moiji-mobile.com>2013-11-25 23:24:29 +0100
committerHolger Hans Peter Freyther <holger@moiji-mobile.com>2013-11-26 21:00:51 +0100
commit423dd2286befbaa29f63c65e739bbe894daa65e1 (patch)
tree0a4f32aa782db0e31bf2fcd7264ac2e92a5f4918
parent4c06d9155c6e114a7b976aad5bba1749d7f42df4 (diff)
tbf/rlc: Move the putting of a block into the rlc code
-rw-r--r--src/rlc.cpp6
-rw-r--r--src/rlc.h1
-rw-r--r--src/tbf.cpp3
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)
diff --git a/src/rlc.h b/src/rlc.h
index 09712fe4..9d782803 100644
--- a/src/rlc.h
+++ b/src/rlc.h
@@ -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(),