aboutsummaryrefslogtreecommitdiffstats
path: root/include/osmo-bts/scheduler_backend.h
diff options
context:
space:
mode:
authorVadim Yanitskiy <vyanitskiy@sysmocom.de>2021-05-07 16:20:58 +0200
committerVadim Yanitskiy <vyanitskiy@sysmocom.de>2021-05-11 04:00:37 +0200
commit05493ca8100a90439b235a006233c89491de318b (patch)
treec01e63d15d17bdd909774318d70aa1b1fc043783 /include/osmo-bts/scheduler_backend.h
parentc74f25bdcc0892c87b04322d7aab9d969d3f0f37 (diff)
[VAMOS] osmo-bts-trx: move {chan,bid} to trx_{dl,ul}_burst_{req,ind}
Historically the logical channel handlers like rx_data_fn() used to accept quite a lot of arguments. With the introduction of additional measurement parameters it has become clear that we need to group the arguments into structures. This is why both 'trx_{dl,ul}_burst_{req,ind}' structures were introduced. However, both channel type and burst ID were kept untouched, so until now we had them being passed between the scheduler functions here and there. This change is a logical conclusion of the original change mentioned above. As a part of this change, the new LOGL1SB() macro is introduced. It does accept a pointer to 'trx_{dl,ul}_burst_{req,ind}' and expands the context information for the old LOGL1S() macro. Change-Id: Ic5a02b074662b3e429bf18e05a982f3f3e7b7444
Diffstat (limited to 'include/osmo-bts/scheduler_backend.h')
-rw-r--r--include/osmo-bts/scheduler_backend.h50
1 files changed, 20 insertions, 30 deletions
diff --git a/include/osmo-bts/scheduler_backend.h b/include/osmo-bts/scheduler_backend.h
index e3326f65..13ca71b4 100644
--- a/include/osmo-bts/scheduler_backend.h
+++ b/include/osmo-bts/scheduler_backend.h
@@ -6,14 +6,16 @@
gsm_ts_name(&(l1t)->trx->ts[tn]), \
chan >=0 ? trx_chan_desc[chan].name : "", ## args)
+/* Logging helper adding context from trx_{ul,dl}_burst_{ind,req} */
+#define LOGL1SB(subsys, level, l1t, b, fmt, args ...) \
+ LOGL1S(subsys, level, l1t, (b)->tn, (b)->chan, (b)->fn, fmt, ## args)
+
typedef int trx_sched_rts_func(struct l1sched_trx *l1t, uint8_t tn,
uint32_t fn, enum trx_chan_type chan);
-typedef int trx_sched_dl_func(struct l1sched_trx *l1t, enum trx_chan_type chan,
- uint8_t bid, struct trx_dl_burst_req *br);
+typedef int trx_sched_dl_func(struct l1sched_trx *l1t, struct trx_dl_burst_req *br);
-typedef int trx_sched_ul_func(struct l1sched_trx *l1t, enum trx_chan_type chan,
- uint8_t bid, const struct trx_ul_burst_ind *bi);
+typedef int trx_sched_ul_func(struct l1sched_trx *l1t, const struct trx_ul_burst_ind *bi);
struct trx_chan_desc {
/*! \brief Human-readable name */
@@ -40,8 +42,8 @@ extern const ubit_t _sched_tsc[8][26];
extern const ubit_t _sched_egprs_tsc[8][78];
extern const ubit_t _sched_sch_train[64];
-struct msgb *_sched_dequeue_prim(struct l1sched_trx *l1t, int8_t tn, uint32_t fn,
- enum trx_chan_type chan);
+struct msgb *_sched_dequeue_prim(struct l1sched_trx *l1t,
+ const struct trx_dl_burst_req *br);
int _sched_compose_ph_data_ind(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn,
enum trx_chan_type chan, uint8_t *l2,
@@ -55,31 +57,19 @@ int _sched_compose_tch_ind(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn,
int16_t ta_offs_256bits, uint16_t ber10k, float rssi,
uint8_t is_sub);
-int tx_idle_fn(struct l1sched_trx *l1t, enum trx_chan_type chan,
- uint8_t bid, struct trx_dl_burst_req *br);
-int tx_fcch_fn(struct l1sched_trx *l1t, enum trx_chan_type chan,
- uint8_t bid, struct trx_dl_burst_req *br);
-int tx_sch_fn(struct l1sched_trx *l1t, enum trx_chan_type chan,
- uint8_t bid, struct trx_dl_burst_req *br);
-int tx_data_fn(struct l1sched_trx *l1t, enum trx_chan_type chan,
- uint8_t bid, struct trx_dl_burst_req *br);
-int tx_pdtch_fn(struct l1sched_trx *l1t, enum trx_chan_type chan,
- uint8_t bid, struct trx_dl_burst_req *br);
-int tx_tchf_fn(struct l1sched_trx *l1t, enum trx_chan_type chan,
- uint8_t bid, struct trx_dl_burst_req *br);
-int tx_tchh_fn(struct l1sched_trx *l1t, enum trx_chan_type chan,
- uint8_t bid, struct trx_dl_burst_req *br);
+int tx_idle_fn(struct l1sched_trx *l1t, struct trx_dl_burst_req *br);
+int tx_fcch_fn(struct l1sched_trx *l1t, struct trx_dl_burst_req *br);
+int tx_sch_fn(struct l1sched_trx *l1t, struct trx_dl_burst_req *br);
+int tx_data_fn(struct l1sched_trx *l1t, struct trx_dl_burst_req *br);
+int tx_pdtch_fn(struct l1sched_trx *l1t, struct trx_dl_burst_req *br);
+int tx_tchf_fn(struct l1sched_trx *l1t, struct trx_dl_burst_req *br);
+int tx_tchh_fn(struct l1sched_trx *l1t, struct trx_dl_burst_req *br);
-int rx_rach_fn(struct l1sched_trx *l1t, enum trx_chan_type chan,
- uint8_t bid, const struct trx_ul_burst_ind *bi);
-int rx_data_fn(struct l1sched_trx *l1t, enum trx_chan_type chan,
- uint8_t bid, const struct trx_ul_burst_ind *bi);
-int rx_pdtch_fn(struct l1sched_trx *l1t, enum trx_chan_type chan,
- uint8_t bid, const struct trx_ul_burst_ind *bi);
-int rx_tchf_fn(struct l1sched_trx *l1t, enum trx_chan_type chan,
- uint8_t bid, const struct trx_ul_burst_ind *bi);
-int rx_tchh_fn(struct l1sched_trx *l1t, enum trx_chan_type chan,
- uint8_t bid, const struct trx_ul_burst_ind *bi);
+int rx_rach_fn(struct l1sched_trx *l1t, const struct trx_ul_burst_ind *bi);
+int rx_data_fn(struct l1sched_trx *l1t, const struct trx_ul_burst_ind *bi);
+int rx_pdtch_fn(struct l1sched_trx *l1t, const struct trx_ul_burst_ind *bi);
+int rx_tchf_fn(struct l1sched_trx *l1t, const struct trx_ul_burst_ind *bi);
+int rx_tchh_fn(struct l1sched_trx *l1t, const struct trx_ul_burst_ind *bi);
void _sched_dl_burst(struct l1sched_trx *l1t, struct trx_dl_burst_req *br);
int _sched_rts(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn);