Diff for /libaitsched/inc/aitsched.h between versions 1.1.1.1 and 1.1.1.1.2.3

version 1.1.1.1, 2011/08/05 15:52:00 version 1.1.1.1.2.3, 2011/08/13 17:26:26
Line 47  SUCH DAMAGE. Line 47  SUCH DAMAGE.
 #define __AITSCHED_H  #define __AITSCHED_H
   
   
   #include <sys/types.h>
   #include <sys/queue.h>
   #include <sys/uio.h>
   
   
 /* criteria type */  /* criteria type */
 #define CRITERIA_CALL   0  #define CRITERIA_CALL   0
 #define CRITERIA_ARG    1  #define CRITERIA_ARG    1
Line 102  struct sched_HooksTask { Line 107  struct sched_HooksTask {
 typedef struct sched_HooksTask hooks_task_t;  typedef struct sched_HooksTask hooks_task_t;
   
 /* task callback, like pthread callback! */  /* task callback, like pthread callback! */
typedef void *(*sched_task_func_t)(void *);typedef void *(*sched_task_func_t)(void * /*sched_task_t* - current task data*/);
   
 /* task & queue */  /* task & queue */
 struct sched_Task {  struct sched_Task {
Line 152  struct sched_RootTask { Line 157  struct sched_RootTask {
 };  };
   
   
   inline int sched_GetErrno();
   inline const char *sched_GetError();
   inline void sched_SetErr(int, char *, ...);
   
   
 /*  /*
  * schedInit() - Init scheduler   * schedInit() - Init scheduler
  * @data = optional data if !=NULL   * @data = optional data if !=NULL
Line 159  struct sched_RootTask { Line 169  struct sched_RootTask {
  * return: allocated root task if ok or NULL error   * return: allocated root task if ok or NULL error
  */   */
 sched_root_task_t *schedInit(void ** __restrict data, size_t datlen);  sched_root_task_t *schedInit(void ** __restrict data, size_t datlen);
#define schedInitIO()      schedInit(&schedRegisterIO, 0)#define schedBegin()      schedInit((void**) &schedRegisterHooks, 0)
 /*  /*
  * schedEnd() - End scheduler & free all resources   * schedEnd() - End scheduler & free all resources
  * @root = root task   * @root = root task
Line 167  sched_root_task_t *schedInit(void ** __restrict data,  Line 177  sched_root_task_t *schedInit(void ** __restrict data, 
  */   */
 int schedEnd(sched_root_task_t * __restrict root);  int schedEnd(sched_root_task_t * __restrict root);
 /*  /*
 * schedRegisterIO() - Register IO handles and bind tasks to it * schedRegisterHooks() - Register IO handles and bind tasks to it
  * @root = root task   * @root = root task
  * return: -1 error or 0 ok   * return: -1 error or 0 ok
  */   */
int schedRegisterIO(sched_root_task_t * __restrict root);int schedRegisterHooks(sched_root_task_t * __restrict root);
 /*  /*
  * schedCall() - Call task execution function   * schedCall() - Call task execution function
  * @task = current task   * @task = current task
Line 210  int schedCancelby(sched_root_task_t * __restrict root, Line 220  int schedCancelby(sched_root_task_t * __restrict root,
   
   
 /*  /*
 * schedRead() - Add READ task to scheduler queue * schedRead() - Add READ 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
 * @... = next func arguments, like fd handle * @fd = fd handle
  * 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, ...);sched_task_t *schedRead(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, int fd);
 /*  /*
 * schedWrite() - Add WRITE 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
 * @... = next func arguments, like fd handle * @fd = fd handle
  * 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, ...);sched_task_t *schedWrite(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, int fd);
 /*  /*
  * 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
 * @... = next func arguments in microSecs, define period 1sec == 1000000 * @ms = arguments in microSecs, define period 1sec == 1000000
  * 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, ...);sched_task_t *schedTimer(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, unsigned int ms);
 /*  /*
  * 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
 * @... = next func arguments, like u_long * @val = additional func argument
  * 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, ...);sched_task_t *schedEvent(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, unsigned long val);
 /*  /*
  * 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
 * @... = next func arguments, like u_long * @val = additional func argument
  * 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, ...);sched_task_t *schedEventLo(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, unsigned long val);
 /*  /*
  * 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
 * @... = next func arguments, like u_long * @val = additional func argument
 * return: NULL error or !=NULL new queued task * return: return value from called func
  */   */
sched_task_t *schedCallOnce(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, ...);sched_task_t *schedCallOnce(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, unsigned long val);
   
   
 #endif  #endif

Removed from v.1.1.1.1  
changed lines
  Added in v.1.1.1.1.2.3


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>