Changeset View
Changeset View
Standalone View
Standalone View
head/sys/compat/linuxkpi/common/src/linux_tasklet.c
Show First 20 Lines • Show All 55 Lines • ▼ Show 20 Lines | struct tasklet_worker { | ||||
struct mtx mtx; | struct mtx mtx; | ||||
TAILQ_HEAD(, tasklet_struct) head; | TAILQ_HEAD(, tasklet_struct) head; | ||||
struct grouptask gtask; | struct grouptask gtask; | ||||
} __aligned(CACHE_LINE_SIZE); | } __aligned(CACHE_LINE_SIZE); | ||||
#define TASKLET_WORKER_LOCK(tw) mtx_lock(&(tw)->mtx) | #define TASKLET_WORKER_LOCK(tw) mtx_lock(&(tw)->mtx) | ||||
#define TASKLET_WORKER_UNLOCK(tw) mtx_unlock(&(tw)->mtx) | #define TASKLET_WORKER_UNLOCK(tw) mtx_unlock(&(tw)->mtx) | ||||
static DPCPU_DEFINE(struct tasklet_worker, tasklet_worker); | DPCPU_DEFINE_STATIC(struct tasklet_worker, tasklet_worker); | ||||
static void | static void | ||||
tasklet_handler(void *arg) | tasklet_handler(void *arg) | ||||
{ | { | ||||
struct tasklet_worker *tw = (struct tasklet_worker *)arg; | struct tasklet_worker *tw = (struct tasklet_worker *)arg; | ||||
struct tasklet_struct *ts; | struct tasklet_struct *ts; | ||||
linux_set_current(curthread); | linux_set_current(curthread); | ||||
▲ Show 20 Lines • Show All 145 Lines • Show Last 20 Lines |