diff options
Diffstat (limited to 'freebsd/sys/sys/_task.h')
-rw-r--r-- | freebsd/sys/sys/_task.h | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/freebsd/sys/sys/_task.h b/freebsd/sys/sys/_task.h index 11fd1bc0..d3be7198 100644 --- a/freebsd/sys/sys/_task.h +++ b/freebsd/sys/sys/_task.h @@ -42,13 +42,32 @@ * (q) taskqueue lock */ typedef void task_fn_t(void *context, int pending); +typedef void gtask_fn_t(void *context); struct task { STAILQ_ENTRY(task) ta_link; /* (q) link for queue */ - u_short ta_pending; /* (q) count times queued */ + uint16_t ta_pending; /* (q) count times queued */ u_short ta_priority; /* (c) Priority */ task_fn_t *ta_func; /* (c) task handler */ void *ta_context; /* (c) argument for handler */ }; +struct gtask { + STAILQ_ENTRY(gtask) ta_link; /* (q) link for queue */ + uint16_t ta_flags; /* (q) state flags */ + u_short ta_priority; /* (c) Priority */ + gtask_fn_t *ta_func; /* (c) task handler */ + void *ta_context; /* (c) argument for handler */ +}; + +struct grouptask { + struct gtask gt_task; + void *gt_taskqueue; + LIST_ENTRY(grouptask) gt_list; + void *gt_uniq; + char *gt_name; + int16_t gt_irq; + int16_t gt_cpu; +}; + #endif /* !_SYS__TASK_H_ */ |