Lines Matching refs:tw
58 #define TASKLET_WORKER_LOCK(tw) mtx_lock(&(tw)->mtx) argument
59 #define TASKLET_WORKER_UNLOCK(tw) mtx_unlock(&(tw)->mtx) argument
66 struct tasklet_worker *tw = (struct tasklet_worker *)arg; in tasklet_handler() local
72 TASKLET_WORKER_LOCK(tw); in tasklet_handler()
73 last = TAILQ_LAST(&tw->head, tasklet_list); in tasklet_handler()
75 ts = TAILQ_FIRST(&tw->head); in tasklet_handler()
78 TAILQ_REMOVE(&tw->head, ts, entry); in tasklet_handler()
81 TASKLET_WORKER_UNLOCK(tw); in tasklet_handler()
93 TASKLET_WORKER_LOCK(tw); in tasklet_handler()
95 TAILQ_INSERT_TAIL(&tw->head, ts, entry); in tasklet_handler()
100 TASKLET_WORKER_UNLOCK(tw); in tasklet_handler()
106 struct tasklet_worker *tw; in tasklet_subsystem_init() local
114 tw = DPCPU_ID_PTR(i, tasklet_worker); in tasklet_subsystem_init()
116 mtx_init(&tw->mtx, "linux_tasklet", NULL, MTX_DEF); in tasklet_subsystem_init()
117 TAILQ_INIT(&tw->head); in tasklet_subsystem_init()
118 GROUPTASK_INIT(&tw->gtask, 0, tasklet_handler, tw); in tasklet_subsystem_init()
120 taskqgroup_attach_cpu(qgroup_softirq, &tw->gtask, in tasklet_subsystem_init()
129 struct tasklet_worker *tw; in tasklet_subsystem_uninit() local
138 tw = DPCPU_ID_PTR(i, tasklet_worker); in tasklet_subsystem_uninit()
140 taskqgroup_detach(qgroup_softirq, &tw->gtask); in tasklet_subsystem_uninit()
141 mtx_destroy(&tw->mtx); in tasklet_subsystem_uninit()
196 struct tasklet_worker *tw; in tasklet_schedule() local
198 tw = &DPCPU_GET(tasklet_worker); in tasklet_schedule()
201 TASKLET_WORKER_LOCK(tw); in tasklet_schedule()
203 TAILQ_INSERT_TAIL(&tw->head, ts, entry); in tasklet_schedule()
205 GROUPTASK_ENQUEUE(&tw->gtask); in tasklet_schedule()
206 TASKLET_WORKER_UNLOCK(tw); in tasklet_schedule()