summaryrefslogtreecommitdiffstats
path: root/src/target/firmware/include/layer1
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2010-02-28 10:12:14 +0100
committerHarald Welte <laforge@gnumonks.org>2010-02-28 10:12:14 +0100
commitb909a3b8a6aa55e659687ec97a7de1bc43b2975a (patch)
tree305015254b7ec8e8245166e1556c344ebd1572b8 /src/target/firmware/include/layer1
parent89e05fd346eec9a2202cb010ba5f60cdbfd23658 (diff)
Add multiframe-level scheduler (mframe_sched.[ch])
This scheduler enables us to schedule repeating events that occur every multiframe. It e.g. includes definitions for BCCH and CCCH reading. The mframe_sched is layered on top of the tdma_sched.
Diffstat (limited to 'src/target/firmware/include/layer1')
-rw-r--r--src/target/firmware/include/layer1/mframe_sched.h26
-rw-r--r--src/target/firmware/include/layer1/sync.h3
2 files changed, 29 insertions, 0 deletions
diff --git a/src/target/firmware/include/layer1/mframe_sched.h b/src/target/firmware/include/layer1/mframe_sched.h
new file mode 100644
index 00000000..79b0be04
--- /dev/null
+++ b/src/target/firmware/include/layer1/mframe_sched.h
@@ -0,0 +1,26 @@
+
+#include <stdint.h>
+
+enum mframe_task {
+ MF_TASK_BCCH_NORM,
+ MF_TASK_BCCH_EXT,
+ MF_TASK_CCCH,
+ MF_TASK_CCCH_COMB,
+
+ MF_TASK_SDCCH4_0,
+ MF_TASK_SDCCH4_1,
+ MF_TASK_SDCCH4_2,
+ MF_TASK_SDCCH4_3,
+
+ MF_TASK_SDCCH8_0,
+ MF_TASK_SDCCH8_1,
+ MF_TASK_SDCCH8_2,
+ MF_TASK_SDCCH8_3,
+ MF_TASK_SDCCH8_4,
+ MF_TASK_SDCCH8_5,
+ MF_TASK_SDCCH8_6,
+ MF_TASK_SDCCH8_7,
+};
+
+/* Schedule mframe_sched_items according to current MF TASK list */
+void mframe_schedule(uint32_t task_bitmask);
diff --git a/src/target/firmware/include/layer1/sync.h b/src/target/firmware/include/layer1/sync.h
index 28eda42c..6462467a 100644
--- a/src/target/firmware/include/layer1/sync.h
+++ b/src/target/firmware/include/layer1/sync.h
@@ -22,6 +22,9 @@ struct l1s_state {
uint32_t tpu_offset;
int task;
+
+ /* bit-mask of multi-frame tasks that are currently active */
+ uint32_t mf_tasks;
};
extern struct l1s_state l1s;