diff options
author | Harald Welte <laforge@gnumonks.org> | 2010-02-28 10:12:14 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2010-02-28 10:12:14 +0100 |
commit | b909a3b8a6aa55e659687ec97a7de1bc43b2975a (patch) | |
tree | 305015254b7ec8e8245166e1556c344ebd1572b8 /src/target/firmware/include/layer1 | |
parent | 89e05fd346eec9a2202cb010ba5f60cdbfd23658 (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.h | 26 | ||||
-rw-r--r-- | src/target/firmware/include/layer1/sync.h | 3 |
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; |