Diff for /libaitsched/inc/aitsched.h between versions 1.11 and 1.12

version 1.11, 2012/07/24 14:06:10 version 1.12, 2012/08/02 13:56:19
Line 49  SUCH DAMAGE. Line 49  SUCH DAMAGE.
   
 #include <sys/types.h>  #include <sys/types.h>
 #include <sys/queue.h>  #include <sys/queue.h>
   #include <sys/event.h>
 #include <sys/uio.h>  #include <sys/uio.h>
 #include <stdint.h>  #include <stdint.h>
 #include <pthread.h>  #include <pthread.h>
   #ifdef EVFILT_LIO
   #include <aio.h>
   #endif
   
   
 /* criteria type */  /* criteria type */
Line 76  typedef enum { Line 80  typedef enum {
         taskALARM,          taskALARM,
         taskNODE,          taskNODE,
         taskPROC,          taskPROC,
         taskUSER,  
         taskSIGNAL,          taskSIGNAL,
           taskAIO,
           taskLIO,
           taskUSER,
         taskEVENT,          taskEVENT,
         taskEVENTLO,          taskEVENTLO,
         taskSUSPEND,           taskSUSPEND, 
Line 102  struct sched_HooksTask { Line 108  struct sched_HooksTask {
                 sched_hook_func_t       node;                  sched_hook_func_t       node;
                 /* proc(sched_task_t *task, NULL) -> int */                  /* proc(sched_task_t *task, NULL) -> int */
                 sched_hook_func_t       proc;                  sched_hook_func_t       proc;
                 /* user(sched_task_t *task, NULL) -> int */  
                 sched_hook_func_t       user;  
                 /* signal(sched_task_t *task, NULL) -> int */                  /* signal(sched_task_t *task, NULL) -> int */
                 sched_hook_func_t       signal;                  sched_hook_func_t       signal;
                   /* aio(sched_task_t *task, NULL) -> int */
                   sched_hook_func_t       aio;
                   /* lio(sched_task_t *task, NULL) -> int */
                   sched_hook_func_t       lio;
                   /* user(sched_task_t *task, NULL) -> int */
                   sched_hook_func_t       user;
                 /* event(sched_task_t *task, NULL) -> int */                  /* event(sched_task_t *task, NULL) -> int */
                 sched_hook_func_t       event;                  sched_hook_func_t       event;
                 /* eventlo(sched_task_t *task, NULL) -> int */                  /* eventlo(sched_task_t *task, NULL) -> int */
Line 190  struct sched_RootTask { Line 200  struct sched_RootTask {
         struct timespec root_wait;          struct timespec root_wait;
         struct timespec root_poll;          struct timespec root_poll;
         intptr_t        root_cond;          intptr_t        root_cond;
           void            *root_ret;
   
         pthread_mutex_t root_mtx[taskMAX];          pthread_mutex_t root_mtx[taskMAX];
   
Line 199  struct sched_RootTask { Line 210  struct sched_RootTask {
         sched_queue_t   root_alarm;          sched_queue_t   root_alarm;
         sched_queue_t   root_node;          sched_queue_t   root_node;
         sched_queue_t   root_proc;          sched_queue_t   root_proc;
         sched_queue_t   root_user;  
         sched_queue_t   root_signal;          sched_queue_t   root_signal;
           sched_queue_t   root_aio;
           sched_queue_t   root_lio;
           sched_queue_t   root_user;
         sched_queue_t   root_event;          sched_queue_t   root_event;
         sched_queue_t   root_eventlo;          sched_queue_t   root_eventlo;
         sched_queue_t   root_suspend;          sched_queue_t   root_suspend;
Line 214  struct sched_RootTask { Line 227  struct sched_RootTask {
 #define ROOT_DATLEN(x)  (x)->root_data.iov_len  #define ROOT_DATLEN(x)  (x)->root_data.iov_len
 };  };
 #define ROOT_QUEUE_EMPTY(x, _q) TAILQ_EMPTY(&((x)->root_##_q))  #define ROOT_QUEUE_EMPTY(x, _q) TAILQ_EMPTY(&((x)->root_##_q))
   #define ROOT_RETURN(x)  (x)->root_ret
   
   
 inline int sched_GetErrno();  inline int sched_GetErrno();
Line 395  sched_task_t *schedSignal(sched_root_task_t * __restri Line 409  sched_task_t *schedSignal(sched_root_task_t * __restri
                 unsigned long sig, void *opt_data, size_t opt_dlen);                  unsigned long sig, void *opt_data, size_t opt_dlen);
 #define schedSignalSelf(x)      schedSignal(TASK_ROOT((x)), TASK_FUNC((x)), TASK_ARG((x)), \  #define schedSignalSelf(x)      schedSignal(TASK_ROOT((x)), TASK_FUNC((x)), TASK_ARG((x)), \
                 TASK_VAL((x)), TASK_DATA((x)), TASK_DATLEN((x)))                  TASK_VAL((x)), TASK_DATA((x)), TASK_DATLEN((x)))
   
   #ifdef EVFILT_LIO
   /*
    * schedAIO() - Add AIO task to scheduler queue
    *
    * @root = root task
    * @func = task execution function
    * @arg = 1st func argument
    * @acb = AIO cb structure address
    * @opt_data = Optional data
    * @opt_dlen = Optional data length
    * return: NULL error or !=NULL new queued task
    */
   sched_task_t *schedAIO(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, 
                   struct aiocb * __restrict acb, void *opt_data, size_t opt_dlen);
   /*
    * schedAIORead() - Add AIO read task to scheduler queue
    *
    * @root = root task
    * @func = task execution function
    * @arg = 1st func argument
    * @fd = file descriptor
    * @buffer = Buffer
    * @buflen = Buffer length
    * @offset = Offset from start of file, if =-1 from current position
    * return: NULL error or !=NULL new queued task
    */
   inline sched_task_t *schedAIORead(sched_root_task_t * __restrict root, sched_task_func_t func, 
                   void *arg, int fd, void *buffer, size_t buflen, off_t offset);
   /*
    * schedAIOWrite() - Add AIO write task to scheduler queue
    *
    * @root = root task
    * @func = task execution function
    * @arg = 1st func argument
    * @fd = file descriptor
    * @buffer = Buffer
    * @buflen = Buffer length
    * @offset = Offset from start of file, if =-1 from current position
    * return: NULL error or !=NULL new queued task
    */
   inline sched_task_t *schedAIOWrite(sched_root_task_t * __restrict root, sched_task_func_t func, 
                   void *arg, int fd, void *buffer, size_t buflen, off_t offset);
   
   /*
    * schedLIO() - Add AIO bulk tasks to scheduler queue
    *
    * @root = root task
    * @func = task execution function
    * @arg = 1st func argument
    * @acbs = AIO cb structure addresses
    * @opt_data = Optional data
    * @opt_dlen = Optional data length
    * return: NULL error or !=NULL new queued task
    */
   sched_task_t *schedLIO(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, 
                   struct aiocb ** __restrict acbs, void *opt_data, size_t opt_dlen);
   /*
    * schedLIORead() - Add list of AIO read tasks to scheduler queue
    *
    * @root = root task
    * @func = task execution function
    * @arg = 1st func argument
    * @fd = file descriptor
    * @bufs = Buffer's list
    * @nbufs = Number of Buffers
    * @offset = Offset from start of file, if =-1 from current position
    * return: NULL error or !=NULL new queued task
    */
   inline sched_task_t *schedLIORead(sched_root_task_t * __restrict root, sched_task_func_t func, 
                   void *arg, int fd, struct iovec *bufs, size_t nbufs, off_t offset);
   /*
    * schedLIOWrite() - Add list of AIO write tasks to scheduler queue
    *
    * @root = root task
    * @func = task execution function
    * @arg = 1st func argument
    * @fd = file descriptor
    * @bufs = Buffer's list
    * @nbufs = Number of Buffers
    * @offset = Offset from start of file, if =-1 from current position
    * return: NULL error or !=NULL new queued task
    */
   inline sched_task_t *schedLIOWrite(sched_root_task_t * __restrict root, sched_task_func_t func, 
                   void *arg, int fd, struct iovec *bufs, size_t nbufs, off_t offset);
   #endif  /* EVFILT_LIO */
   
 /*  /*
  * schedUser() - Add trigger USER task to scheduler queue   * schedUser() - Add trigger USER task to scheduler queue

Removed from v.1.11  
changed lines
  Added in v.1.12


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