static void swi_vm_setup(void *arg) { register_swi(SWI_VM, swi_vm, NULL, "swi_vm", NULL, 0); }
* Carefully remove the first task from the queue and * zero its pending count. */ task = STAILQ_FIRST(&queue->tq_queue); STAILQ_REMOVE_HEAD(&queue->tq_queue, ta_link); pending = task->ta_pending; task->ta_pending = 0; splx(s); task->ta_func(task->ta_context, pending); s = splhigh(); } splx(s); } static void taskqueue_swi_enqueue(void *context) { setsofttq(); } static void taskqueue_swi_run(void) { taskqueue_run(taskqueue_swi); } TASKQUEUE_DEFINE(swi, taskqueue_swi_enqueue, 0, register_swi(SWI_TQ, taskqueue_swi_run));