Diff for /libaitsched/inc/aitsched.h between versions 1.9.2.3 and 1.11.2.2

version 1.9.2.3, 2012/05/31 21:36:40 version 1.11.2.2, 2012/08/01 12:49:26
Line 62  SUCH DAMAGE. Line 62  SUCH DAMAGE.
 #define CRITERIA_VAL    4  #define CRITERIA_VAL    4
 #define CRITERIA_TS     5  #define CRITERIA_TS     5
 #define CRITERIA_DATA   6  #define CRITERIA_DATA   6
   #define CRITERIA_ID     7
   
   
 /* early declaration for root & task */  /* early declaration for root & task */
Line 75  typedef enum { Line 76  typedef enum {
         taskALARM,          taskALARM,
         taskNODE,          taskNODE,
         taskPROC,          taskPROC,
         taskUSER,  
         taskSIGNAL,          taskSIGNAL,
           taskAIO,
           taskUSER,
         taskEVENT,          taskEVENT,
         taskEVENTLO,          taskEVENTLO,
           taskSUSPEND, 
         taskREADY,          taskREADY,
         taskUNUSE,          taskUNUSE,
         taskMAX          taskMAX
Line 100  struct sched_HooksTask { Line 103  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;
                   /* 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 */
                 sched_hook_func_t       eventlo;                  sched_hook_func_t       eventlo;
                   /* suspend(sched_task_t *task, NULL) -> int */
                   sched_hook_func_t       suspend;
         }       hook_add;          }       hook_add;
         struct {          struct {
                 /* cancel(sched_task_t *task, NULL) -> int */                  /* cancel(sched_task_t *task, NULL) -> int */
                 sched_hook_func_t       cancel;                  sched_hook_func_t       cancel;
                   /* resume(sched_task_t *task, NULL) -> int */
                   sched_hook_func_t       resume;
                 /* run(sched_root_task_t *root, NULL) -> int */                  /* run(sched_root_task_t *root, NULL) -> int */
                 sched_hook_func_t       run;                  sched_hook_func_t       run;
                 /* fetch(sched_root_task_t *root, NULL) -> sched_task_t* */                  /* fetch(sched_root_task_t *root, NULL) -> sched_task_t* */
Line 184  struct sched_RootTask { Line 193  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 193  struct sched_RootTask { Line 203  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_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_ready;          sched_queue_t   root_ready;
         sched_queue_t   root_unuse;          sched_queue_t   root_unuse;
         int             root_eventlo_miss;          int             root_eventlo_miss;
Line 207  struct sched_RootTask { Line 219  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 289  int schedCancel(sched_task_t * __restrict task); Line 302  int schedCancel(sched_task_t * __restrict task);
  * @root = root task   * @root = root task
  * @type = cancel from queue type, if =taskMAX cancel same task from all queues   * @type = cancel from queue type, if =taskMAX cancel same task from all queues
  * @criteria = find task by criteria    * @criteria = find task by criteria 
 *      [CRITERIA_ANY|CRITERIA_CALL|CRITERIA_ARG|CRITERIA_FD|CRITERIA_VAL|CRITERIA_TS|CRITERIA_DATA] *      [CRITERIA_ANY|CRITERIA_CALL|CRITERIA_ARG|CRITERIA_FD|CRITERIA_VAL|CRITERIA_ID|CRITERIA_TS|CRITERIA_DATA]
  * @param = search parameter   * @param = search parameter
  * @hook = custom cleanup hook function, may be NULL   * @hook = custom cleanup hook function, may be NULL
  * return: -1 error, -2 error in sub-stage cancel execution, -3 error from custom hook or 0 ok   * return: -1 error, -2 error in sub-stage cancel execution, -3 error from custom hook or 0 ok
Line 390  sched_task_t *schedSignal(sched_root_task_t * __restri Line 403  sched_task_t *schedSignal(sched_root_task_t * __restri
                 TASK_VAL((x)), TASK_DATA((x)), TASK_DATLEN((x)))                  TASK_VAL((x)), TASK_DATA((x)), TASK_DATLEN((x)))
   
 /*  /*
    * 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, 
                   unsigned long acb, void *opt_data, size_t opt_dlen);
   #define schedAIOSelf(x) schedAIO(TASK_ROOT((x)), TASK_FUNC((x)), TASK_ARG((x)), \
                   TASK_VAL((x)), TASK_DATA((x)), TASK_DATLEN((x)))
   
   /*
  * schedUser() - Add trigger USER task to scheduler queue   * schedUser() - Add trigger USER task to scheduler queue
  *   *
  * @root = root task   * @root = root task
Line 457  sched_task_t *schedEventLo(sched_root_task_t * __restr Line 486  sched_task_t *schedEventLo(sched_root_task_t * __restr
                 unsigned long val, void *opt_data, size_t opt_dlen);                  unsigned long val, void *opt_data, size_t opt_dlen);
 #define schedEventLoSelf(x)     schedEventLo(TASK_ROOT((x)), TASK_FUNC((x)), TASK_ARG((x)), \  #define schedEventLoSelf(x)     schedEventLo(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)))
   /*
    * schedSuspend() - Add Suspended task to scheduler queue
    *
    * @root = root task
    * @func = task execution function
    * @arg = 1st func argument
    * @id = Trigger ID
    * @opt_data = Optional data
    * @opt_dlen = Optional user's trigger flags
    * return: NULL error or !=NULL new queued task
    */
   sched_task_t *schedSuspend(sched_root_task_t * __restrict root, sched_task_func_t func, void *arg, 
                   unsigned long id, void *opt_data, size_t opt_dlen);
   #define schedSuspendSelf(x)     schedUser(TASK_ROOT((x)), TASK_FUNC((x)), TASK_ARG((x)), \
                   TASK_VAL((x)), TASK_DATA((x)), TASK_DATLEN((x)))
   /*
    * schedResumeby() - Resume suspended task
    *
    * @root = root task
    * @criteria = find task by criteria 
    *      [CRITERIA_ANY|CRITERIA_ID|CRITERIA_DATA]
    * @param = search parameter (sched_task_t *task| u_long id)
    * return: -1 error or 0 resumed ok
    */
   int schedResumeby(sched_root_task_t * __restrict root, unsigned char criteria, void *param);
   
 /*  /*
  * schedCallOnce() - Call once from scheduler   * schedCallOnce() - Call once from scheduler

Removed from v.1.9.2.3  
changed lines
  Added in v.1.11.2.2


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