Split identity_lv param into mi+mi_len
It's not really needed to have those together in some function calls, and makes it more difficult to follow the code. Furthermore, new callers not having content already aligned (len+value) will be using these functions in forthcoming commits. Change-Id: Ifb9d3997bfb74b35366c3d1bc51ce458f19abf16
This commit is contained in:
parent
db12f254ce
commit
fbfab297ee
|
@ -38,6 +38,7 @@ extern "C" {
|
|||
#include <osmocom/core/stats.h>
|
||||
#include <osmocom/gsm/protocol/gsm_04_08.h>
|
||||
#include <osmocom/gsm/gsm_utils.h>
|
||||
#include <osmocom/gsm/gsm48.h>
|
||||
#include <osmocom/core/gsmtap_util.h>
|
||||
#include <osmocom/core/application.h>
|
||||
#include <osmocom/core/bitvec.h>
|
||||
|
@ -354,7 +355,7 @@ void BTS::set_current_block_frame_number(int fn, unsigned max_delay)
|
|||
m_pollController.expireTimedout(fn, max_delay);
|
||||
}
|
||||
|
||||
int BTS::add_paging(uint8_t chan_needed, uint8_t *identity_lv)
|
||||
int BTS::add_paging(uint8_t chan_needed, const uint8_t *mi, uint8_t mi_len)
|
||||
{
|
||||
uint8_t l, trx, ts, any_tbf = 0;
|
||||
struct gprs_rlcmac_tbf *tbf;
|
||||
|
@ -370,7 +371,7 @@ int BTS::add_paging(uint8_t chan_needed, uint8_t *identity_lv)
|
|||
|
||||
|
||||
LOGP(DRLCMAC, LOGL_INFO, "Add RR paging: chan-needed=%d MI=%s\n",
|
||||
chan_needed, osmo_hexdump(identity_lv + 1, identity_lv[0]));
|
||||
chan_needed, osmo_mi_name(mi, mi_len));
|
||||
|
||||
/* collect slots to page
|
||||
* Mark slots for every TBF, but only mark one of it.
|
||||
|
@ -414,7 +415,7 @@ int BTS::add_paging(uint8_t chan_needed, uint8_t *identity_lv)
|
|||
for (ts = 0; ts < 8; ts++) {
|
||||
if ((slot_mask[trx] & (1 << ts))) {
|
||||
/* schedule */
|
||||
if (!m_bts.trx[trx].pdch[ts].add_paging(chan_needed, identity_lv))
|
||||
if (!m_bts.trx[trx].pdch[ts].add_paging(chan_needed, mi, mi_len))
|
||||
return -ENOMEM;
|
||||
|
||||
LOGP(DRLCMAC, LOGL_INFO, "Paging on PACCH of TRX=%d TS=%d\n", trx, ts);
|
||||
|
|
|
@ -290,7 +290,7 @@ public:
|
|||
int current_frame_number() const;
|
||||
|
||||
/** add paging to paging queue(s) */
|
||||
int add_paging(uint8_t chan_needed, uint8_t *identity_lv);
|
||||
int add_paging(uint8_t chan_needed, const uint8_t *mi, uint8_t mi_len);
|
||||
|
||||
gprs_rlcmac_dl_tbf *dl_tbf_by_poll_fn(uint32_t fn, uint8_t trx, uint8_t ts);
|
||||
gprs_rlcmac_ul_tbf *ul_tbf_by_poll_fn(uint32_t fn, uint8_t trx, uint8_t ts);
|
||||
|
|
|
@ -644,8 +644,8 @@ static int pcu_rx_pag_req(struct gsm_pcu_if_pag_req *pag_req)
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
return BTS::main_bts()->add_paging(pag_req->chan_needed,
|
||||
pag_req->identity_lv);
|
||||
return BTS::main_bts()->add_paging(pag_req->chan_needed, &pag_req->identity_lv[1],
|
||||
pag_req->identity_lv[0]);
|
||||
}
|
||||
|
||||
static int pcu_rx_susp_req(struct gsm_pcu_if_susp_req *susp_req)
|
||||
|
|
|
@ -251,14 +251,15 @@ continue_next:
|
|||
return msg;
|
||||
}
|
||||
|
||||
bool gprs_rlcmac_pdch::add_paging(uint8_t chan_needed, uint8_t *identity_lv)
|
||||
bool gprs_rlcmac_pdch::add_paging(uint8_t chan_needed, const uint8_t *mi, uint8_t mi_len)
|
||||
{
|
||||
struct gprs_rlcmac_paging *pag = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_paging);
|
||||
if (!pag)
|
||||
return false;
|
||||
|
||||
pag->chan_needed = chan_needed;
|
||||
memcpy(pag->identity_lv, identity_lv, identity_lv[0] + 1);
|
||||
pag->identity_lv[0] = mi_len;
|
||||
memcpy(&pag->identity_lv[1], mi, mi_len);
|
||||
|
||||
llist_add(&pag->list, &paging_list);
|
||||
|
||||
|
|
|
@ -48,7 +48,7 @@ struct gprs_rlcmac_pdch {
|
|||
struct gprs_rlcmac_paging *dequeue_paging();
|
||||
struct msgb *packet_paging_request();
|
||||
|
||||
bool add_paging(uint8_t chan_needed, uint8_t *identity_lv);
|
||||
bool add_paging(uint8_t chan_needed, const uint8_t *mi, uint8_t mi_len);
|
||||
|
||||
void free_resources();
|
||||
|
||||
|
|
Loading…
Reference in New Issue