Lines Matching refs:tw
57 #define TASKLET_WORKER_LOCK(tw) mtx_lock(&(tw)->mtx) argument
58 #define TASKLET_WORKER_UNLOCK(tw) mtx_unlock(&(tw)->mtx) argument
65 struct tasklet_worker *tw = (struct tasklet_worker *)arg; in tasklet_handler() local
71 TASKLET_WORKER_LOCK(tw); in tasklet_handler()
72 last = TAILQ_LAST(&tw->head, tasklet_list); in tasklet_handler()
74 ts = TAILQ_FIRST(&tw->head); in tasklet_handler()
77 TAILQ_REMOVE(&tw->head, ts, entry); in tasklet_handler()
80 TASKLET_WORKER_UNLOCK(tw); in tasklet_handler()
92 TASKLET_WORKER_LOCK(tw); in tasklet_handler()
94 TAILQ_INSERT_TAIL(&tw->head, ts, entry); in tasklet_handler()
99 TASKLET_WORKER_UNLOCK(tw); in tasklet_handler()
105 struct tasklet_worker *tw; in tasklet_subsystem_init() local
113 tw = DPCPU_ID_PTR(i, tasklet_worker); in tasklet_subsystem_init()
115 mtx_init(&tw->mtx, "linux_tasklet", NULL, MTX_DEF); in tasklet_subsystem_init()
116 TAILQ_INIT(&tw->head); in tasklet_subsystem_init()
117 GROUPTASK_INIT(&tw->gtask, 0, tasklet_handler, tw); in tasklet_subsystem_init()
119 taskqgroup_attach_cpu(qgroup_softirq, &tw->gtask, in tasklet_subsystem_init()
128 struct tasklet_worker *tw; in tasklet_subsystem_uninit() local
137 tw = DPCPU_ID_PTR(i, tasklet_worker); in tasklet_subsystem_uninit()
139 taskqgroup_detach(qgroup_softirq, &tw->gtask); in tasklet_subsystem_uninit()
140 mtx_destroy(&tw->mtx); in tasklet_subsystem_uninit()
195 struct tasklet_worker *tw; in tasklet_schedule() local
197 tw = &DPCPU_GET(tasklet_worker); in tasklet_schedule()
200 TASKLET_WORKER_LOCK(tw); in tasklet_schedule()
202 TAILQ_INSERT_TAIL(&tw->head, ts, entry); in tasklet_schedule()
204 GROUPTASK_ENQUEUE(&tw->gtask); in tasklet_schedule()
205 TASKLET_WORKER_UNLOCK(tw); in tasklet_schedule()