diff options
author | Jacob Erlbeck <jerlbeck@sysmocom.de> | 2015-06-02 14:06:12 +0200 |
---|---|---|
committer | Jacob Erlbeck <jerlbeck@sysmocom.de> | 2015-06-08 09:39:07 +0200 |
commit | 17214bb06de4a1d8b626dab0f695017b0c74b358 (patch) | |
tree | bafc8bfd8401df8001f9db1104c4997856cf16ac /src | |
parent | befc760f8677d794e5a0dbc1f02f8ac85b649aa0 (diff) |
ms: Add back pointer to BTS
Since more functionality will be moved to the GprsMs class, a pointer
to the current BTS object is added to allow access to configuration
data and other methods.
Sponsored-by: On-Waves ehf
Diffstat (limited to 'src')
-rw-r--r-- | src/bts.cpp | 1 | ||||
-rw-r--r-- | src/gprs_ms.cpp | 5 | ||||
-rw-r--r-- | src/gprs_ms.h | 5 | ||||
-rw-r--r-- | src/gprs_ms_storage.cpp | 5 | ||||
-rw-r--r-- | src/gprs_ms_storage.h | 5 |
5 files changed, 15 insertions, 6 deletions
diff --git a/src/bts.cpp b/src/bts.cpp index ae0a1caa..608bd0e9 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -100,6 +100,7 @@ BTS::BTS() : m_cur_fn(0) , m_pollController(*this) , m_sba(*this) + , m_ms_store(this) { memset(&m_bts, 0, sizeof(m_bts)); INIT_LLIST_HEAD(&m_bts.ul_tbfs); diff --git a/src/gprs_ms.cpp b/src/gprs_ms.cpp index 1ae0fc6b..c2e83721 100644 --- a/src/gprs_ms.cpp +++ b/src/gprs_ms.cpp @@ -64,7 +64,8 @@ void GprsMs::timeout(void *priv_) } } -GprsMs::GprsMs(uint32_t tlli) : +GprsMs::GprsMs(BTS *bts, uint32_t tlli) : + m_bts(bts), m_cb(&gprs_default_cb), m_ul_tbf(NULL), m_dl_tbf(NULL), @@ -101,7 +102,7 @@ GprsMs::~GprsMs() m_dl_tbf->set_ms(NULL); m_dl_tbf = NULL; } - m_llc_queue.clear(NULL); + m_llc_queue.clear(m_bts); } void* GprsMs::operator new(size_t size) diff --git a/src/gprs_ms.h b/src/gprs_ms.h index 8d292f1e..7c71bd14 100644 --- a/src/gprs_ms.h +++ b/src/gprs_ms.h @@ -34,6 +34,8 @@ extern "C" { #include <stdint.h> #include <stddef.h> +struct BTS; + class GprsMs { public: struct Callback { @@ -50,7 +52,7 @@ public: GprsMs * const m_ms; }; - GprsMs(uint32_t tlli); + GprsMs(BTS *bts, uint32_t tlli); ~GprsMs(); void set_callback(Callback *cb) {m_cb = cb;} @@ -100,6 +102,7 @@ protected: void stop_timer(); private: + BTS *m_bts; Callback * m_cb; gprs_rlcmac_ul_tbf *m_ul_tbf; gprs_rlcmac_dl_tbf *m_dl_tbf; diff --git a/src/gprs_ms_storage.cpp b/src/gprs_ms_storage.cpp index a0a32081..1f124a5d 100644 --- a/src/gprs_ms_storage.cpp +++ b/src/gprs_ms_storage.cpp @@ -24,7 +24,8 @@ #include "tbf.h" #include "gprs_debug.h" -GprsMsStorage::GprsMsStorage() +GprsMsStorage::GprsMsStorage(BTS *bts) : + m_bts(bts) { } @@ -86,7 +87,7 @@ GprsMs *GprsMsStorage::create_ms(uint32_t tlli, enum gprs_rlcmac_tbf_direction d if (ms) return ms; - ms = new GprsMs(0); + ms = new GprsMs(m_bts, 0); if (dir == GPRS_RLCMAC_UL_TBF) ms->set_tlli(tlli); diff --git a/src/gprs_ms_storage.h b/src/gprs_ms_storage.h index fff9638b..35526025 100644 --- a/src/gprs_ms_storage.h +++ b/src/gprs_ms_storage.h @@ -26,9 +26,11 @@ #include <stdint.h> #include <stddef.h> +struct BTS; + class GprsMsStorage : public GprsMs::Callback { public: - GprsMsStorage(); + GprsMsStorage(BTS *bts); ~GprsMsStorage(); virtual void ms_idle(class GprsMs *); @@ -38,5 +40,6 @@ public: GprsMs *create_ms(uint32_t tlli, enum gprs_rlcmac_tbf_direction dir); private: + BTS *m_bts; LListHead<GprsMs> m_list; }; |