|
version 1.4.2.2, 2012/01/08 02:52:29
|
version 1.4.2.5, 2012/01/23 15:56:23
|
|
Line 51 SUCH DAMAGE.
|
Line 51 SUCH DAMAGE.
|
| #include <sys/queue.h> |
#include <sys/queue.h> |
| #include <sys/uio.h> |
#include <sys/uio.h> |
| #include <stdint.h> |
#include <stdint.h> |
| |
#include <pthread.h> |
| |
|
| |
|
| /* criteria type */ |
/* criteria type */ |
|
Line 149 struct sched_Task {
|
Line 150 struct sched_Task {
|
| TAILQ_ENTRY(sched_Task) task_node; |
TAILQ_ENTRY(sched_Task) task_node; |
| }; |
}; |
| typedef TAILQ_HEAD(, sched_Task) sched_queue_t; |
typedef TAILQ_HEAD(, sched_Task) sched_queue_t; |
| |
#define TASK_DATA_SET(x, _dp, _dl) do { \ |
| |
if ((x)) { \ |
| |
(x)->task_data.iov_base = (_dp); \ |
| |
(x)->task_data.iov_len = _dl; \ |
| |
} \ |
| |
while (0) |
| |
|
| /* root task */ |
/* root task */ |
| struct sched_RootTask { |
struct sched_RootTask { |
|
Line 240 int schedCancelby(sched_root_task_t * __restrict root,
|
Line 247 int schedCancelby(sched_root_task_t * __restrict root,
|
| * @func = task execution function |
* @func = task execution function |
| * @arg = 1st func argument |
* @arg = 1st func argument |
| * @fd = fd handle |
* @fd = fd handle |
| |
* @opt_data = Optional data |
| |
* @opt_dlen = Optional data length |
| * return: NULL error or !=NULL new queued task |
* return: NULL error or !=NULL new queued task |
| */ |
*/ |
| sched_task_t *schedRead(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, int fd); | sched_task_t *schedRead(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, |
| | int fd, void *opt_data, size_t opt_dlen); |
| /* |
/* |
| * schedWrite() - Add WRITE I/O task to scheduler queue |
* schedWrite() - Add WRITE I/O task to scheduler queue |
| * @root = root task |
* @root = root task |
| * @func = task execution function |
* @func = task execution function |
| * @arg = 1st func argument |
* @arg = 1st func argument |
| * @fd = fd handle |
* @fd = fd handle |
| |
* @opt_data = Optional data |
| |
* @opt_dlen = Optional data length |
| * return: NULL error or !=NULL new queued task |
* return: NULL error or !=NULL new queued task |
| */ |
*/ |
| sched_task_t *schedWrite(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, int fd); | sched_task_t *schedWrite(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, |
| | int fd, void *opt_data, size_t opt_dlen); |
| /* |
/* |
| * schedTimer() - Add TIMER task to scheduler queue |
* schedTimer() - Add TIMER task to scheduler queue |
| * @root = root task |
* @root = root task |
| * @func = task execution function |
* @func = task execution function |
| * @arg = 1st func argument |
* @arg = 1st func argument |
| * @tv = timeout argument structure |
* @tv = timeout argument structure |
| |
* @opt_data = Optional data |
| |
* @opt_dlen = Optional data length |
| * return: NULL error or !=NULL new queued task |
* return: NULL error or !=NULL new queued task |
| */ |
*/ |
| sched_task_t *schedTimer(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, struct timeval tv); | sched_task_t *schedTimer(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, |
| | struct timeval tv, void *opt_data, size_t opt_dlen); |
| /* |
/* |
| * schedEvent() - Add EVENT task to scheduler queue |
* schedEvent() - Add EVENT task to scheduler queue |
| * @root = root task |
* @root = root task |
| * @func = task execution function |
* @func = task execution function |
| * @arg = 1st func argument |
* @arg = 1st func argument |
| * @val = additional func argument |
* @val = additional func argument |
| |
* @opt_data = Optional data |
| |
* @opt_dlen = Optional data length |
| * return: NULL error or !=NULL new queued task |
* return: NULL error or !=NULL new queued task |
| */ |
*/ |
| sched_task_t *schedEvent(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, unsigned long val); | sched_task_t *schedEvent(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, |
| | unsigned long val, void *opt_data, size_t opt_dlen); |
| /* |
/* |
| * schedEventLo() - Add EVENT_Lo task to scheduler queue |
* schedEventLo() - Add EVENT_Lo task to scheduler queue |
| * @root = root task |
* @root = root task |
| * @func = task execution function |
* @func = task execution function |
| * @arg = 1st func argument |
* @arg = 1st func argument |
| * @val = additional func argument |
* @val = additional func argument |
| |
* @opt_data = Optional data |
| |
* @opt_dlen = Optional data length |
| * return: NULL error or !=NULL new queued task |
* return: NULL error or !=NULL new queued task |
| */ |
*/ |
| sched_task_t *schedEventLo(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, unsigned long val); | sched_task_t *schedEventLo(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, |
| | unsigned long val, void *opt_data, size_t opt_dlen); |
| /* |
/* |
| * schedCallOnce() - Call once from scheduler |
* schedCallOnce() - Call once from scheduler |
| * @root = root task |
* @root = root task |
| * @func = task execution function |
* @func = task execution function |
| * @arg = 1st func argument |
* @arg = 1st func argument |
| * @val = additional func argument |
* @val = additional func argument |
| |
* @opt_data = Optional data |
| |
* @opt_dlen = Optional data length |
| * return: return value from called func |
* return: return value from called func |
| */ |
*/ |
| sched_task_t *schedCallOnce(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, unsigned long val); | sched_task_t *schedCallOnce(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, |
| | unsigned long val, void *opt_data, size_t opt_dlen); |
| |
|
| |
|
| #endif |
#endif |