1 #ifndef EVE_WORK_H_INCLUDED 2 #define EVE_WORK_H_INCLUDED 65 #define WORK_INIT(work, callback) \ 67 .link.next = &work.link, \ 68 .link.prev = &work.link, \ 76 #define WORK_INIT_TYPED(work, callback) \ 77 (struct work_t) WORK_INIT(work, callback) 94 #define DECLARE_WORK(work, callback) \ 95 struct work_t work = WORK_INIT(work, callback) 113 #define SWINT_AUTO_LOCK() \ 114 swint_state_t swint_auto_lock_state __attribute__((cleanup(swint_enable_indirect_adapter))); \ 115 do { swint_auto_lock_state = swint_disable(); } while (0) 246 static inline
void swint_enable_indirect_adapter(
swint_state_t *state)
void work_cancel(struct work_t *work)
void(* work_cb_t)(struct work_t *work)
The code implements Dummy Headed Doubly Linked Circularlist (DHDLC) primitive.
void work_schedule(struct work_t *work)
static int dlist_is_empty(struct dlist_t *list)
__attribute__((always_inline)) static inline void swint_enable_indirect_adapter(swint_state_t *state)
static bool work_pending(struct work_t *work)
void swint_enable(swint_state_t state)
swint_state_t swint_disable(void)