Changeset View
Changeset View
Standalone View
Standalone View
sys/compat/linuxkpi/common/include/linux/irq_work.h
Show First 20 Lines • Show All 57 Lines • ▼ Show 20 Lines | |||||
{ | { | ||||
TASK_INIT(&irqw->irq_task, 0, linux_irq_work_fn, irqw); | TASK_INIT(&irqw->irq_task, 0, linux_irq_work_fn, irqw); | ||||
irqw->func = func; | irqw->func = func; | ||||
} | } | ||||
static inline bool | static inline bool | ||||
irq_work_queue(struct irq_work *irqw) | irq_work_queue(struct irq_work *irqw) | ||||
{ | { | ||||
if(taskqueue_enqueue(linux_irq_work_tq, &irqw->irq_task) == 0) | return (taskqueue_enqueue_flags(linux_irq_work_tq, &irqw->irq_task, | ||||
return (true); | TASKQUEUE_FAIL_IF_PENDING) == 0); | ||||
return (false); | |||||
} | } | ||||
static inline void | static inline void | ||||
irq_work_sync(struct irq_work *irqw) | irq_work_sync(struct irq_work *irqw) | ||||
{ | { | ||||
taskqueue_drain(linux_irq_work_tq, &irqw->irq_task); | taskqueue_drain(linux_irq_work_tq, &irqw->irq_task); | ||||
} | } | ||||
#endif /* _LINUXKPI_LINUX_IRQ_WORK_H_ */ | #endif /* _LINUXKPI_LINUX_IRQ_WORK_H_ */ |