4 #include <osmocore/msgb.h>
6 #include <layer1/mframe_sched.h>
8 /* When altering data structures used by L1 Sync part, we need to
9 * make sure to temporarily disable IRQ/FIQ to keep data consistent */
10 static inline void l1a_lock_sync(void)
12 arm_disable_interrupts();
15 static inline void l1a_unlock_sync(void)
17 arm_enable_interrupts();
20 /* safely enable a message into the L1S TX queue */
21 void l1a_txq_msgb_enq(struct llist_head *queue, struct msgb *msg);
23 /* request a RACH request at the next multiframe T3 = fn51 */
24 void l1a_rach_req(uint8_t fn51, uint8_t mf_off, uint8_t ra);
26 /* schedule frequency change */
27 void l1a_freq_req(uint32_t fn_sched);
29 /* Enable a repeating multiframe task */
30 void l1a_mftask_enable(enum mframe_task task);
32 /* Disable a repeating multiframe task */
33 void l1a_mftask_disable(enum mframe_task task);
35 /* Execute pending L1A completions */
36 void l1a_compl_execute(void);
38 /* Initialize asynchronous part of Layer1 */