Changeset View
Changeset View
Standalone View
Standalone View
head/sys/compat/linuxkpi/common/src/linux_tasklet.c
Show First 20 Lines • Show All 103 Lines • ▼ Show 20 Lines | CPU_FOREACH(i) { | ||||
tw = DPCPU_ID_PTR(i, tasklet_worker); | tw = DPCPU_ID_PTR(i, tasklet_worker); | ||||
mtx_init(&tw->mtx, "linux_tasklet", NULL, MTX_DEF); | mtx_init(&tw->mtx, "linux_tasklet", NULL, MTX_DEF); | ||||
TAILQ_INIT(&tw->head); | TAILQ_INIT(&tw->head); | ||||
GROUPTASK_INIT(&tw->gtask, 0, tasklet_handler, tw); | GROUPTASK_INIT(&tw->gtask, 0, tasklet_handler, tw); | ||||
snprintf(buf, sizeof(buf), "softirq%d", i); | snprintf(buf, sizeof(buf), "softirq%d", i); | ||||
taskqgroup_attach_cpu(qgroup_softirq, &tw->gtask, | taskqgroup_attach_cpu(qgroup_softirq, &tw->gtask, | ||||
"tasklet", i, -1, buf); | "tasklet", i, NULL, NULL, buf); | ||||
} | } | ||||
} | } | ||||
SYSINIT(linux_tasklet, SI_SUB_TASKQ, SI_ORDER_THIRD, tasklet_subsystem_init, NULL); | SYSINIT(linux_tasklet, SI_SUB_TASKQ, SI_ORDER_THIRD, tasklet_subsystem_init, NULL); | ||||
static void | static void | ||||
tasklet_subsystem_uninit(void *arg __unused) | tasklet_subsystem_uninit(void *arg __unused) | ||||
{ | { | ||||
struct tasklet_worker *tw; | struct tasklet_worker *tw; | ||||
▲ Show 20 Lines • Show All 97 Lines • Show Last 20 Lines |