aboutsummaryrefslogtreecommitdiffstats
path: root/src/bts.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bts.cpp')
-rw-r--r--src/bts.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/bts.cpp b/src/bts.cpp
index 6da8cdd8..d14420c6 100644
--- a/src/bts.cpp
+++ b/src/bts.cpp
@@ -1147,3 +1147,32 @@ void gprs_rlcmac_pdch::detach_tbf(gprs_rlcmac_tbf *tbf)
LOGP(DRLCMAC, LOGL_INFO, "PDCH(TS %d, TRX %d): Detaching %s, %d TBFs.\n",
ts_no, trx_no(), tbf->name(), m_num_tbfs[tbf->direction]);
}
+
+void gprs_rlcmac_pdch::reserve(enum gprs_rlcmac_tbf_direction dir)
+{
+ m_num_reserved[dir] += 1;
+}
+
+void gprs_rlcmac_pdch::unreserve(enum gprs_rlcmac_tbf_direction dir)
+{
+ OSMO_ASSERT(m_num_reserved[dir] > 0);
+ m_num_reserved[dir] -= 1;
+}
+
+void gprs_rlcmac_trx::reserve_slots(enum gprs_rlcmac_tbf_direction dir,
+ uint8_t slots)
+{
+ unsigned i;
+ for (i = 0; i < ARRAY_SIZE(pdch); i += 1)
+ if (slots & (1 << i))
+ pdch[i].reserve(dir);
+}
+
+void gprs_rlcmac_trx::unreserve_slots(enum gprs_rlcmac_tbf_direction dir,
+ uint8_t slots)
+{
+ unsigned i;
+ for (i = 0; i < ARRAY_SIZE(pdch); i += 1)
+ if (slots & (1 << i))
+ pdch[i].unreserve(dir);
+}