Diff for /libaitsched/inc/aitsched.h between versions 1.5 and 1.6

version 1.5, 2012/01/24 21:59:46 version 1.6, 2012/03/13 10:01:59
Line 12  terms: Line 12  terms:
 All of the documentation and software included in the ELWIX and AITNET  All of the documentation and software included in the ELWIX and AITNET
 Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org>  Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org>
   
Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
         by Michael Pounov <misho@elwix.org>.  All rights reserved.          by Michael Pounov <misho@elwix.org>.  All rights reserved.
   
 Redistribution and use in source and binary forms, with or without  Redistribution and use in source and binary forms, with or without
Line 101  struct sched_HooksTask { Line 101  struct sched_HooksTask {
                 sched_hook_func_t       fetch;                  sched_hook_func_t       fetch;
                 /* exception(sched_root_task_t *root, NULL) -> int */                  /* exception(sched_root_task_t *root, NULL) -> int */
                 sched_hook_func_t       exception;                  sched_hook_func_t       exception;
                   /* condition(sched_root_task_t *root, intptr_t *stopValue) -> int */
                   sched_hook_func_t       condition;
         }       hook_exec;          }       hook_exec;
         struct {          struct {
                 /* init(sched_root_task_t *root, void *data) -> int */                  /* init(sched_root_task_t *root, void *data) -> int */
Line 162  struct sched_RootTask { Line 164  struct sched_RootTask {
         int             root_kq;          int             root_kq;
         struct timespec root_wait;          struct timespec root_wait;
         struct timespec root_poll;          struct timespec root_poll;
           intptr_t        root_cond;
   
         pthread_mutex_t root_mtx[taskMAX];          pthread_mutex_t root_mtx[taskMAX];
   
         sched_queue_t   root_read;          sched_queue_t   root_read;
Line 186  inline const char *sched_GetError(); Line 190  inline const char *sched_GetError();
   
 /*  /*
  * schedInit() - Init scheduler   * schedInit() - Init scheduler
    *
  * @data = optional data if !=NULL   * @data = optional data if !=NULL
  * @datlen = data len if data is set   * @datlen = data len if data is set
  * return: allocated root task if ok or NULL error   * return: allocated root task if ok or NULL error
Line 194  sched_root_task_t *schedInit(void ** __restrict data,  Line 199  sched_root_task_t *schedInit(void ** __restrict data, 
 #define schedBegin()    schedInit((void**) &schedRegisterHooks, 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
  * return: -1 error or 0 ok   * return: -1 error or 0 ok
  */   */
 int schedEnd(sched_root_task_t ** __restrict root);  int schedEnd(sched_root_task_t ** __restrict root);
 /*  /*
  * schedRegisterHooks() - 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 schedRegisterHooks(sched_root_task_t * __restrict root);  int schedRegisterHooks(sched_root_task_t * __restrict root);
 /*  /*
  * schedPolling() - Polling timeout period if no timer task is present   * schedPolling() - Polling timeout period if no timer task is present
    *
  * @root = root task   * @root = root task
  * @ts = timeout polling period, if ==NULL INFINIT timeout   * @ts = timeout polling period, if ==NULL INFINIT timeout
  * @tsold = old timeout polling if !=NULL   * @tsold = old timeout polling if !=NULL
Line 214  int schedRegisterHooks(sched_root_task_t * __restrict  Line 222  int schedRegisterHooks(sched_root_task_t * __restrict 
 inline int schedPolling(sched_root_task_t * __restrict root,   inline int schedPolling(sched_root_task_t * __restrict root, 
                 struct timespec * __restrict ts, struct timespec * __restrict tsold);                  struct timespec * __restrict ts, struct timespec * __restrict tsold);
 /*  /*
    * schedTermCondition() - Activate hook for scheduler condition kill
    *
    * @root = root task
    * @condValue = condition value, kill schedRun() if condValue == killState
    * return: -1 error ok 0 ok
    */
   inline int schedTermCondition(sched_root_task_t * __restrict root, intptr_t condValue);
   /*
  * schedCall() - Call task execution function   * schedCall() - Call task execution function
    *
  * @task = current task   * @task = current task
  * return: !=NULL error or =NULL ok   * return: !=NULL error or =NULL ok
  */   */
 inline void *schedCall(sched_task_t * __restrict task);  inline void *schedCall(sched_task_t * __restrict task);
 /*  /*
  * schedFetch() - Fetch ready task   * schedFetch() - Fetch ready task
    *
  * @root = root task   * @root = root task
  * return: =NULL error or !=NULL ready task   * return: =NULL error or !=NULL ready task
  */   */
 inline void *schedFetch(sched_root_task_t * __restrict root);  inline void *schedFetch(sched_root_task_t * __restrict root);
 /*  /*
  * schedRun() - Scheduler *run loop*   * schedRun() - Scheduler *run loop*
    *
  * @root = root task   * @root = root task
  * @killState = kill condition variable, if !=0 stop scheduler loop   * @killState = kill condition variable, if !=0 stop scheduler loop
  * return: -1 error or 0 ok   * return: -1 error or 0 ok
Line 234  inline void *schedFetch(sched_root_task_t * __restrict Line 253  inline void *schedFetch(sched_root_task_t * __restrict
 int schedRun(sched_root_task_t * __restrict root, volatile intptr_t * __restrict killState);  int schedRun(sched_root_task_t * __restrict root, volatile intptr_t * __restrict killState);
 /*  /*
  * schedCancel() - Cancel task from scheduler   * schedCancel() - Cancel task from scheduler
    *
  * @task = task   * @task = task
  * return: -1 error or 0 ok   * return: -1 error or 0 ok
  */   */
 int schedCancel(sched_task_t * __restrict task);  int schedCancel(sched_task_t * __restrict task);
 /*  /*
  * schedCancelby() - Cancel task from scheduler by criteria   * schedCancelby() - Cancel task from scheduler by criteria
    *
  * @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_CALL|CRITERIA_ARG|CRITERIA_FD|CRITERIA_VAL|CRITERIA_TV]   * @criteria = find task by criteria [CRITERIA_CALL|CRITERIA_ARG|CRITERIA_FD|CRITERIA_VAL|CRITERIA_TV]
Line 253  int schedCancelby(sched_root_task_t * __restrict root, Line 274  int schedCancelby(sched_root_task_t * __restrict root,
   
 /*  /*
  * schedRead() - Add READ I/O 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
Line 265  sched_task_t *schedRead(sched_root_task_t * __restrict Line 287  sched_task_t *schedRead(sched_root_task_t * __restrict
                 int fd, void *opt_data, size_t opt_dlen);                  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
Line 277  sched_task_t *schedWrite(sched_root_task_t * __restric Line 300  sched_task_t *schedWrite(sched_root_task_t * __restric
                 int fd, void *opt_data, size_t opt_dlen);                  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
Line 289  sched_task_t *schedTimer(sched_root_task_t * __restric Line 313  sched_task_t *schedTimer(sched_root_task_t * __restric
                 struct timespec ts, void *opt_data, size_t opt_dlen);                  struct timespec ts, 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
Line 301  sched_task_t *schedEvent(sched_root_task_t * __restric Line 326  sched_task_t *schedEvent(sched_root_task_t * __restric
                 unsigned long val, void *opt_data, size_t opt_dlen);                  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
Line 313  sched_task_t *schedEventLo(sched_root_task_t * __restr Line 339  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);
 /*  /*
  * 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

Removed from v.1.5  
changed lines
  Added in v.1.6


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