fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/28547 )
Change subject: trxcon: merge 'sched_trx.h' and 'scheduler.h' into 'l1sched.h' ......................................................................
trxcon: merge 'sched_trx.h' and 'scheduler.h' into 'l1sched.h'
Change-Id: Ide1e3ccdf32fdc255acc943e0c0936d15cf0c680 Related: OS#5599, OS#3761 --- M src/host/trxcon/include/osmocom/bb/trxcon/Makefile.am R src/host/trxcon/include/osmocom/bb/trxcon/l1sched.h D src/host/trxcon/include/osmocom/bb/trxcon/scheduler.h M src/host/trxcon/include/osmocom/bb/trxcon/trx_if.h M src/host/trxcon/src/l1ctl.c M src/host/trxcon/src/sched_clck.c M src/host/trxcon/src/sched_lchan_common.c M src/host/trxcon/src/sched_lchan_desc.c M src/host/trxcon/src/sched_lchan_pdtch.c M src/host/trxcon/src/sched_lchan_rach.c M src/host/trxcon/src/sched_lchan_sch.c M src/host/trxcon/src/sched_lchan_tchf.c M src/host/trxcon/src/sched_lchan_tchh.c M src/host/trxcon/src/sched_lchan_xcch.c M src/host/trxcon/src/sched_mframe.c M src/host/trxcon/src/sched_prim.c M src/host/trxcon/src/sched_trx.c M src/host/trxcon/src/trx_if.c M src/host/trxcon/src/trxcon.c 19 files changed, 48 insertions(+), 68 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/47/28547/1
diff --git a/src/host/trxcon/include/osmocom/bb/trxcon/Makefile.am b/src/host/trxcon/include/osmocom/bb/trxcon/Makefile.am index e506520..4463a1d 100644 --- a/src/host/trxcon/include/osmocom/bb/trxcon/Makefile.am +++ b/src/host/trxcon/include/osmocom/bb/trxcon/Makefile.am @@ -2,8 +2,7 @@ l1ctl_proto.h \ l1ctl_link.h \ l1ctl.h \ - scheduler.h \ - sched_trx.h \ + l1sched.h \ trx_if.h \ logging.h \ trxcon.h \ diff --git a/src/host/trxcon/include/osmocom/bb/trxcon/sched_trx.h b/src/host/trxcon/include/osmocom/bb/trxcon/l1sched.h similarity index 93% rename from src/host/trxcon/include/osmocom/bb/trxcon/sched_trx.h rename to src/host/trxcon/include/osmocom/bb/trxcon/l1sched.h index 84b2094..adee01c 100644 --- a/src/host/trxcon/include/osmocom/bb/trxcon/sched_trx.h +++ b/src/host/trxcon/include/osmocom/bb/trxcon/l1sched.h @@ -1,5 +1,6 @@ #pragma once
+#include <time.h> #include <stdint.h> #include <stdbool.h>
@@ -7,10 +8,11 @@ #include <osmocom/core/utils.h> #include <osmocom/gsm/protocol/gsm_04_08.h> #include <osmocom/gsm/gsm_utils.h> +#include <osmocom/gsm/gsm0502.h> #include <osmocom/core/linuxlist.h> +#include <osmocom/core/timer.h>
#include <osmocom/bb/trxcon/logging.h> -#include <osmocom/bb/trxcon/scheduler.h>
#define GSM_BURST_LEN 148 #define GSM_BURST_PL_LEN 116 @@ -41,9 +43,15 @@ /* Forward declaration to avoid mutual include */ struct l1sched_lchan_state; struct l1sched_meas_set; +struct l1sched_state; struct trx_instance; struct l1sched_ts;
+enum l1sched_clck_state { + L1SCHED_CLCK_ST_WAIT, + L1SCHED_CLCK_ST_OK, +}; + enum l1sched_burst_type { L1SCHED_BURST_GMSK, L1SCHED_BURST_8PSK, @@ -301,6 +309,26 @@ uint8_t payload[0]; };
+/*! One scheduler instance */ +struct l1sched_state { + /*! Clock state */ + enum l1sched_clck_state state; + /*! Local clock source */ + struct timespec clock; + /*! Count of processed frames */ + uint32_t fn_counter_proc; + /*! Local frame counter advance */ + uint32_t fn_counter_advance; + /*! Count of lost frames */ + uint32_t fn_counter_lost; + /*! Frame callback timer */ + struct osmo_timer_list clock_timer; + /*! Frame callback */ + void (*clock_cb)(struct l1sched_state *sched); + /*! Private data (e.g. pointer to trx instance) */ + void *data; +}; + extern const struct l1sched_lchan_desc l1sched_lchan_desc[_L1SCHED_CHAN_MAX]; const struct l1sched_tdma_multiframe *l1sched_mframe_layout( enum gsm_phys_chan_config config, int tn); @@ -413,3 +441,6 @@ /* Measurement history */ void l1sched_lchan_meas_push(struct l1sched_lchan_state *lchan, const struct l1sched_meas_set *meas); void l1sched_lchan_meas_avg(struct l1sched_lchan_state *lchan, unsigned int n); + +int l1sched_clck_handle(struct l1sched_state *sched, uint32_t fn); +void l1sched_clck_reset(struct l1sched_state *sched); diff --git a/src/host/trxcon/include/osmocom/bb/trxcon/scheduler.h b/src/host/trxcon/include/osmocom/bb/trxcon/scheduler.h deleted file mode 100644 index 7e6b092..0000000 --- a/src/host/trxcon/include/osmocom/bb/trxcon/scheduler.h +++ /dev/null @@ -1,38 +0,0 @@ -#pragma once - -#include <stdint.h> -#include <time.h> - -#include <osmocom/core/timer.h> -#include <osmocom/gsm/gsm0502.h> - -enum l1sched_clck_state { - L1SCHED_CLCK_ST_WAIT, - L1SCHED_CLCK_ST_OK, -}; - -/* Forward structure declaration */ -struct l1sched_state; - -/*! One scheduler instance */ -struct l1sched_state { - /*! Clock state */ - enum l1sched_clck_state state; - /*! Local clock source */ - struct timespec clock; - /*! Count of processed frames */ - uint32_t fn_counter_proc; - /*! Local frame counter advance */ - uint32_t fn_counter_advance; - /*! Count of lost frames */ - uint32_t fn_counter_lost; - /*! Frame callback timer */ - struct osmo_timer_list clock_timer; - /*! Frame callback */ - void (*clock_cb)(struct l1sched_state *sched); - /*! Private data (e.g. pointer to trx instance) */ - void *data; -}; - -int l1sched_clck_handle(struct l1sched_state *sched, uint32_t fn); -void l1sched_clck_reset(struct l1sched_state *sched); diff --git a/src/host/trxcon/include/osmocom/bb/trxcon/trx_if.h b/src/host/trxcon/include/osmocom/bb/trxcon/trx_if.h index 511101a..033eaa3 100644 --- a/src/host/trxcon/include/osmocom/bb/trxcon/trx_if.h +++ b/src/host/trxcon/include/osmocom/bb/trxcon/trx_if.h @@ -5,8 +5,7 @@ #include <osmocom/core/timer.h> #include <osmocom/core/fsm.h>
-#include <osmocom/bb/trxcon/scheduler.h> -#include <osmocom/bb/trxcon/sched_trx.h> +#include <osmocom/bb/trxcon/l1sched.h>
#define TRXC_BUF_SIZE 1024 #define TRXD_BUF_SIZE 512 diff --git a/src/host/trxcon/src/l1ctl.c b/src/host/trxcon/src/l1ctl.c index 20bd646..980ac49 100644 --- a/src/host/trxcon/src/l1ctl.c +++ b/src/host/trxcon/src/l1ctl.c @@ -40,7 +40,7 @@ #include <osmocom/bb/trxcon/l1ctl_proto.h>
#include <osmocom/bb/trxcon/trx_if.h> -#include <osmocom/bb/trxcon/sched_trx.h> +#include <osmocom/bb/trxcon/l1sched.h>
static const char *arfcn2band_name(uint16_t arfcn) { diff --git a/src/host/trxcon/src/sched_clck.c b/src/host/trxcon/src/sched_clck.c index b7bb88d..5fb8d62 100644 --- a/src/host/trxcon/src/sched_clck.c +++ b/src/host/trxcon/src/sched_clck.c @@ -38,7 +38,7 @@ #include <osmocom/core/timer_compat.h> #include <osmocom/gsm/a5.h>
-#include <osmocom/bb/trxcon/scheduler.h> +#include <osmocom/bb/trxcon/l1sched.h> #include <osmocom/bb/trxcon/logging.h> #include <osmocom/bb/trxcon/trx_if.h>
diff --git a/src/host/trxcon/src/sched_lchan_common.c b/src/host/trxcon/src/sched_lchan_common.c index 600977c..c2d79de 100644 --- a/src/host/trxcon/src/sched_lchan_common.c +++ b/src/host/trxcon/src/sched_lchan_common.c @@ -37,8 +37,7 @@ #include <osmocom/gsm/protocol/gsm_08_58.h>
#include <osmocom/bb/trxcon/l1ctl_proto.h> -#include <osmocom/bb/trxcon/scheduler.h> -#include <osmocom/bb/trxcon/sched_trx.h> +#include <osmocom/bb/trxcon/l1sched.h> #include <osmocom/bb/trxcon/logging.h> #include <osmocom/bb/trxcon/trxcon.h> #include <osmocom/bb/trxcon/trx_if.h> diff --git a/src/host/trxcon/src/sched_lchan_desc.c b/src/host/trxcon/src/sched_lchan_desc.c index 0ec4d84..96a7092 100644 --- a/src/host/trxcon/src/sched_lchan_desc.c +++ b/src/host/trxcon/src/sched_lchan_desc.c @@ -26,7 +26,7 @@ #include <osmocom/gsm/protocol/gsm_08_58.h> #include <osmocom/core/gsmtap.h>
-#include <osmocom/bb/trxcon/sched_trx.h> +#include <osmocom/bb/trxcon/l1sched.h>
/* Forward declaration of handlers */ int rx_data_fn(struct trx_instance *trx, struct l1sched_ts *ts, diff --git a/src/host/trxcon/src/sched_lchan_pdtch.c b/src/host/trxcon/src/sched_lchan_pdtch.c index d3486b9..6063438 100644 --- a/src/host/trxcon/src/sched_lchan_pdtch.c +++ b/src/host/trxcon/src/sched_lchan_pdtch.c @@ -31,8 +31,7 @@ #include <osmocom/coding/gsm0503_coding.h>
#include <osmocom/bb/trxcon/l1ctl_proto.h> -#include <osmocom/bb/trxcon/scheduler.h> -#include <osmocom/bb/trxcon/sched_trx.h> +#include <osmocom/bb/trxcon/l1sched.h> #include <osmocom/bb/trxcon/logging.h> #include <osmocom/bb/trxcon/trx_if.h> #include <osmocom/bb/trxcon/l1ctl.h> diff --git a/src/host/trxcon/src/sched_lchan_rach.c b/src/host/trxcon/src/sched_lchan_rach.c index c2379fb..72c02cc 100644 --- a/src/host/trxcon/src/sched_lchan_rach.c +++ b/src/host/trxcon/src/sched_lchan_rach.c @@ -31,8 +31,7 @@ #include <osmocom/coding/gsm0503_coding.h>
#include <osmocom/bb/trxcon/l1ctl_proto.h> -#include <osmocom/bb/trxcon/scheduler.h> -#include <osmocom/bb/trxcon/sched_trx.h> +#include <osmocom/bb/trxcon/l1sched.h> #include <osmocom/bb/trxcon/logging.h> #include <osmocom/bb/trxcon/trx_if.h> #include <osmocom/bb/trxcon/l1ctl.h> diff --git a/src/host/trxcon/src/sched_lchan_sch.c b/src/host/trxcon/src/sched_lchan_sch.c index b9356eb..59f1691 100644 --- a/src/host/trxcon/src/sched_lchan_sch.c +++ b/src/host/trxcon/src/sched_lchan_sch.c @@ -32,8 +32,7 @@ #include <osmocom/coding/gsm0503_coding.h>
#include <osmocom/bb/trxcon/l1ctl_proto.h> -#include <osmocom/bb/trxcon/scheduler.h> -#include <osmocom/bb/trxcon/sched_trx.h> +#include <osmocom/bb/trxcon/l1sched.h> #include <osmocom/bb/trxcon/logging.h> #include <osmocom/bb/trxcon/trx_if.h> #include <osmocom/bb/trxcon/l1ctl.h> diff --git a/src/host/trxcon/src/sched_lchan_tchf.c b/src/host/trxcon/src/sched_lchan_tchf.c index 55c7d26..fe36e1d 100644 --- a/src/host/trxcon/src/sched_lchan_tchf.c +++ b/src/host/trxcon/src/sched_lchan_tchf.c @@ -33,8 +33,7 @@ #include <osmocom/codec/codec.h>
#include <osmocom/bb/trxcon/l1ctl_proto.h> -#include <osmocom/bb/trxcon/scheduler.h> -#include <osmocom/bb/trxcon/sched_trx.h> +#include <osmocom/bb/trxcon/l1sched.h> #include <osmocom/bb/trxcon/logging.h> #include <osmocom/bb/trxcon/trx_if.h> #include <osmocom/bb/trxcon/l1ctl.h> diff --git a/src/host/trxcon/src/sched_lchan_tchh.c b/src/host/trxcon/src/sched_lchan_tchh.c index ae0211c..3350ea9 100644 --- a/src/host/trxcon/src/sched_lchan_tchh.c +++ b/src/host/trxcon/src/sched_lchan_tchh.c @@ -36,8 +36,7 @@ #include <osmocom/codec/codec.h>
#include <osmocom/bb/trxcon/l1ctl_proto.h> -#include <osmocom/bb/trxcon/scheduler.h> -#include <osmocom/bb/trxcon/sched_trx.h> +#include <osmocom/bb/trxcon/l1sched.h> #include <osmocom/bb/trxcon/logging.h> #include <osmocom/bb/trxcon/trx_if.h> #include <osmocom/bb/trxcon/l1ctl.h> diff --git a/src/host/trxcon/src/sched_lchan_xcch.c b/src/host/trxcon/src/sched_lchan_xcch.c index 71eeae3..758f41f 100644 --- a/src/host/trxcon/src/sched_lchan_xcch.c +++ b/src/host/trxcon/src/sched_lchan_xcch.c @@ -31,8 +31,7 @@ #include <osmocom/coding/gsm0503_coding.h>
#include <osmocom/bb/trxcon/l1ctl_proto.h> -#include <osmocom/bb/trxcon/scheduler.h> -#include <osmocom/bb/trxcon/sched_trx.h> +#include <osmocom/bb/trxcon/l1sched.h> #include <osmocom/bb/trxcon/logging.h> #include <osmocom/bb/trxcon/trx_if.h> #include <osmocom/bb/trxcon/l1ctl.h> diff --git a/src/host/trxcon/src/sched_mframe.c b/src/host/trxcon/src/sched_mframe.c index 20f2b10..9df730b 100644 --- a/src/host/trxcon/src/sched_mframe.c +++ b/src/host/trxcon/src/sched_mframe.c @@ -25,7 +25,7 @@
#include <osmocom/gsm/gsm_utils.h>
-#include <osmocom/bb/trxcon/sched_trx.h> +#include <osmocom/bb/trxcon/l1sched.h>
/* Non-combined CCCH */ static const struct l1sched_tdma_frame frame_bcch[51] = { diff --git a/src/host/trxcon/src/sched_prim.c b/src/host/trxcon/src/sched_prim.c index 229b5d2..8fae8ac 100644 --- a/src/host/trxcon/src/sched_prim.c +++ b/src/host/trxcon/src/sched_prim.c @@ -29,8 +29,7 @@
#include <osmocom/gsm/protocol/gsm_04_08.h>
-#include <osmocom/bb/trxcon/scheduler.h> -#include <osmocom/bb/trxcon/sched_trx.h> +#include <osmocom/bb/trxcon/l1sched.h> #include <osmocom/bb/trxcon/trx_if.h> #include <osmocom/bb/trxcon/logging.h>
diff --git a/src/host/trxcon/src/sched_trx.c b/src/host/trxcon/src/sched_trx.c index f711f74..68801c4 100644 --- a/src/host/trxcon/src/sched_trx.c +++ b/src/host/trxcon/src/sched_trx.c @@ -32,8 +32,7 @@ #include <osmocom/core/linuxlist.h>
#include <osmocom/bb/trxcon/l1ctl_proto.h> -#include <osmocom/bb/trxcon/scheduler.h> -#include <osmocom/bb/trxcon/sched_trx.h> +#include <osmocom/bb/trxcon/l1sched.h> #include <osmocom/bb/trxcon/trx_if.h> #include <osmocom/bb/trxcon/logging.h>
diff --git a/src/host/trxcon/src/trx_if.c b/src/host/trxcon/src/trx_if.c index e223996..a251da0 100644 --- a/src/host/trxcon/src/trx_if.c +++ b/src/host/trxcon/src/trx_if.c @@ -43,7 +43,6 @@ #include <osmocom/bb/trxcon/trxcon.h> #include <osmocom/bb/trxcon/trx_if.h> #include <osmocom/bb/trxcon/logging.h> -#include <osmocom/bb/trxcon/scheduler.h>
static struct value_string trx_evt_names[] = { { 0, NULL } /* no events? */ diff --git a/src/host/trxcon/src/trxcon.c b/src/host/trxcon/src/trxcon.c index b47e307..08050d3 100644 --- a/src/host/trxcon/src/trxcon.c +++ b/src/host/trxcon/src/trxcon.c @@ -45,8 +45,7 @@ #include <osmocom/bb/trxcon/l1ctl.h> #include <osmocom/bb/trxcon/l1ctl_link.h> #include <osmocom/bb/trxcon/l1ctl_proto.h> -#include <osmocom/bb/trxcon/scheduler.h> -#include <osmocom/bb/trxcon/sched_trx.h> +#include <osmocom/bb/trxcon/l1sched.h>
#define COPYRIGHT \ "Copyright (C) 2016-2020 by Vadim Yanitskiy axilirator@gmail.com\n" \