Changeset View
Changeset View
Standalone View
Standalone View
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 | |||||