1#ifndef __VSF_LINUX_WORKQUEUE_H__
2#define __VSF_LINUX_WORKQUEUE_H__
38#define INIT_WORK(__WORK, __FUNC) \
40 (__WORK)->func = (__FUNC); \
41 vsf_dlist_init_node(struct work_struct, entry, (__WORK)); \
43#define INIT_DELAYED_WORK(__DWORK, __FUNC) INIT_WORK(&(__DWORK)->work, (__FUNC))
44#define alloc_ordered_workqueue(__fmt, __flags, ...) \
45 alloc_workqueue(__fmt, __flags, 1, ##__VA_ARGS__)
46#define create_singlethread_workqueue(__name) \
47 alloc_ordered_workqueue("%s", 0, (__name))
48#define create_workqueue(__name) \
49 alloc_workqueue("%s", 0, 1, (__name))
60static inline bool schedule_delayed_work(
struct delayed_work *dwork,
unsigned long delay)
#define vsf_container_of(__ptr, __type, __member)
Definition __type.h:164
uint64_t vsf_systimer_tick_t
Definition cortex_a_generic.h:73
Definition workqueue.h:24
vsf_systimer_tick_t start_tick
Definition workqueue.h:26
struct work_struct work
Definition workqueue.h:25
Definition vsf_list.h:888
Definition workqueue.h:15
vsf_eda_t * __pending_eda
Definition workqueue.h:21
struct workqueue_struct * __wq
Definition workqueue.h:19
work_func_t func
Definition workqueue.h:17
vsf_dlist_node_t entry
Definition workqueue.h:16
bool __is_running
Definition workqueue.h:20
Definition vsf_linux_core.c:133
bool queue_delayed_work(struct workqueue_struct *wq, struct delayed_work *dwork, unsigned long delay)
Definition vsf_linux_core.c:281
bool cancel_delayed_work(struct delayed_work *dwork)
Definition vsf_linux_core.c:420
struct workqueue_struct * alloc_workqueue(const char *fmt, unsigned int flags, int max_active,...)
Definition vsf_linux_core.c:234
struct workqueue_struct * system_wq
Definition vsf_linux_core.c:146
bool mod_delayed_work(struct workqueue_struct *wq, struct delayed_work *dwork, unsigned long delay)
Definition vsf_linux_core.c:303
bool flush_work(struct work_struct *work)
Definition vsf_linux_core.c:341
void workqueue_init_early(void)
Definition vsf_linux_core.c:440
void(* work_func_t)(struct work_struct *work)
Definition workqueue.h:13
void destroy_workqueue(struct workqueue_struct *wq)
Definition vsf_linux_core.c:258
bool cancel_delayed_work_sync(struct delayed_work *dwork)
Definition vsf_linux_core.c:430
void flush_workqueue(struct workqueue_struct *wq)
Definition vsf_linux_core.c:323
bool cancel_work(struct work_struct *work)
Definition vsf_linux_core.c:395
bool flush_delayed_work(struct delayed_work *dwork)
Definition vsf_linux_core.c:415
bool queue_work(struct workqueue_struct *wq, struct work_struct *work)
Definition vsf_linux_core.c:265
bool cancel_work_sync(struct work_struct *work)
Definition vsf_linux_core.c:405