Changeset View
Changeset View
Standalone View
Standalone View
head/sys/sys/_task.h
Show First 20 Lines • Show All 42 Lines • ▼ Show 20 Lines | |||||
* (c) const after init | * (c) const after init | ||||
* (q) taskqueue lock | * (q) taskqueue lock | ||||
*/ | */ | ||||
typedef void task_fn_t(void *context, int pending); | typedef void task_fn_t(void *context, int pending); | ||||
struct task { | struct task { | ||||
STAILQ_ENTRY(task) ta_link; /* (q) link for queue */ | STAILQ_ENTRY(task) ta_link; /* (q) link for queue */ | ||||
uint16_t ta_pending; /* (q) count times queued */ | uint16_t ta_pending; /* (q) count times queued */ | ||||
u_short ta_priority; /* (c) Priority */ | uint8_t ta_priority; /* (c) Priority */ | ||||
uint8_t ta_flags; /* (c) Flags */ | |||||
task_fn_t *ta_func; /* (c) task handler */ | task_fn_t *ta_func; /* (c) task handler */ | ||||
void *ta_context; /* (c) argument for handler */ | void *ta_context; /* (c) argument for handler */ | ||||
}; | }; | ||||
#define TASK_ENQUEUED 0x1 | |||||
#define TASK_NOENQUEUE 0x2 | |||||
#define TASK_NETWORK 0x4 | |||||
#define TASK_IS_NET(ta) ((ta)->ta_flags & TASK_NETWORK) | |||||
#ifdef _KERNEL | #ifdef _KERNEL | ||||
typedef void gtask_fn_t(void *context); | typedef void gtask_fn_t(void *context); | ||||
struct gtask { | struct gtask { | ||||
STAILQ_ENTRY(gtask) ta_link; /* (q) link for queue */ | STAILQ_ENTRY(gtask) ta_link; /* (q) link for queue */ | ||||
uint16_t ta_flags; /* (q) state flags */ | uint16_t ta_flags; /* (q) state flags */ | ||||
u_short ta_priority; /* (c) Priority */ | u_short ta_priority; /* (c) Priority */ | ||||
gtask_fn_t *ta_func; /* (c) task handler */ | gtask_fn_t *ta_func; /* (c) task handler */ | ||||
void *ta_context; /* (c) argument for handler */ | void *ta_context; /* (c) argument for handler */ | ||||
}; | }; | ||||
#endif /* _KERNEL */ | #endif /* _KERNEL */ | ||||
#endif /* !_SYS__TASK_H_ */ | #endif /* !_SYS__TASK_H_ */ |