Changeset View
Changeset View
Standalone View
Standalone View
head/sys/sys/gtaskqueue.h
Show First 20 Lines • Show All 78 Lines • ▼ Show 20 Lines | |||||
void taskqgroup_detach(struct taskqgroup *qgroup, struct grouptask *gtask); | void taskqgroup_detach(struct taskqgroup *qgroup, struct grouptask *gtask); | ||||
struct taskqgroup *taskqgroup_create(const char *name); | struct taskqgroup *taskqgroup_create(const char *name); | ||||
void taskqgroup_destroy(struct taskqgroup *qgroup); | void taskqgroup_destroy(struct taskqgroup *qgroup); | ||||
int taskqgroup_adjust(struct taskqgroup *qgroup, int cnt, int stride); | int taskqgroup_adjust(struct taskqgroup *qgroup, int cnt, int stride); | ||||
void taskqgroup_config_gtask_init(void *ctx, struct grouptask *gtask, | void taskqgroup_config_gtask_init(void *ctx, struct grouptask *gtask, | ||||
gtask_fn_t *fn, const char *name); | gtask_fn_t *fn, const char *name); | ||||
void taskqgroup_config_gtask_deinit(struct grouptask *gtask); | void taskqgroup_config_gtask_deinit(struct grouptask *gtask); | ||||
#define TASK_ENQUEUED 0x1 | |||||
#define TASK_SKIP_WAKEUP 0x2 | |||||
#define TASK_NOENQUEUE 0x4 | |||||
#define GTASK_INIT(gtask, flags, priority, func, context) do { \ | #define GTASK_INIT(gtask, flags, priority, func, context) do { \ | ||||
(gtask)->ta_flags = flags; \ | (gtask)->ta_flags = flags; \ | ||||
(gtask)->ta_priority = (priority); \ | (gtask)->ta_priority = (priority); \ | ||||
(gtask)->ta_func = (func); \ | (gtask)->ta_func = (func); \ | ||||
(gtask)->ta_context = (context); \ | (gtask)->ta_context = (context); \ | ||||
} while (0) | } while (0) | ||||
#define GROUPTASK_INIT(gtask, priority, func, context) \ | #define GROUPTASK_INIT(gtask, priority, func, context) \ | ||||
GTASK_INIT(&(gtask)->gt_task, TASK_SKIP_WAKEUP, priority, func, context) | GTASK_INIT(&(gtask)->gt_task, 0, priority, func, context) | ||||
#define GROUPTASK_ENQUEUE(gtask) \ | #define GROUPTASK_ENQUEUE(gtask) \ | ||||
grouptaskqueue_enqueue((gtask)->gt_taskqueue, &(gtask)->gt_task) | grouptaskqueue_enqueue((gtask)->gt_taskqueue, &(gtask)->gt_task) | ||||
#define TASKQGROUP_DECLARE(name) \ | #define TASKQGROUP_DECLARE(name) \ | ||||
extern struct taskqgroup *qgroup_##name | extern struct taskqgroup *qgroup_##name | ||||
#define TASKQGROUP_DEFINE(name, cnt, stride) \ | #define TASKQGROUP_DEFINE(name, cnt, stride) \ | ||||
Show All 25 Lines |