summaryrefslogtreecommitdiffstats
path: root/src/target/firmware/include/layer1/sync.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/target/firmware/include/layer1/sync.h')
-rw-r--r--src/target/firmware/include/layer1/sync.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/target/firmware/include/layer1/sync.h b/src/target/firmware/include/layer1/sync.h
index d053c93..fc8b777 100644
--- a/src/target/firmware/include/layer1/sync.h
+++ b/src/target/firmware/include/layer1/sync.h
@@ -28,6 +28,13 @@ enum l1s_chan {
_NUM_L1S_CHAN
};
+enum l1_compl {
+ L1_COMPL_FB,
+};
+
+typedef void l1_compl_cb(enum l1_compl c);
+
+#define L1S_NUM_COMPL 32
#define L1S_NUM_NEIGH_CELL 6
struct l1s_state {
@@ -52,6 +59,11 @@ struct l1s_state {
/* Transmit queues of pending packets for main DCCH and ACCH */
struct llist_head tx_queue[_NUM_L1S_CHAN];
+ /* Which L1A completions are scheduled right now */
+ uint32_t scheduled_compl;
+ /* callbacks for each of the completions */
+ l1_compl_cb *completion[L1S_NUM_COMPL];
+
/* Structures below are for L1-task specific parameters, used
* to communicate between l1-sync and l1-async (l23_api) */
struct {
@@ -126,6 +138,9 @@ void l1s_sb_test(uint8_t base_fn);
void l1s_pm_test(uint8_t base_fn, uint16_t arfcn);
void l1s_nb_test(uint8_t base_fn);
+/* schedule a completion */
+void l1s_compl_sched(enum l1_compl c);
+
void l1s_init(void);
/* reset the layer1 as part of synchronizing to a new cell */