Diff for /libaitsched/inc/aitsched.h between versions 1.34.2.1 and 1.35.2.3

version 1.34.2.1, 2026/05/19 00:39:51 version 1.35.2.3, 2026/05/20 04:04:10
Line 57  SUCH DAMAGE. Line 57  SUCH DAMAGE.
 #ifdef EVFILT_LIO  #ifdef EVFILT_LIO
 #include <aio.h>  #include <aio.h>
 #endif  #endif
   #ifdef ATOMIC_SUPPORT
   #ifndef __cplusplus
           #include <stdatomic.h>
   #else
           #include <atomic>
           #define _Atomic(X) std::atomic<X>
   #endif
   #endif
   
   
 /* criteria type */  /* criteria type */
 #define CRITERIA_ANY    0  #define CRITERIA_ANY    0
 #define CRITERIA_CALL   1  #define CRITERIA_CALL   1
Line 146  struct sched_HooksTask { Line 153  struct sched_HooksTask {
                 sched_hook_func_t       exception;                  sched_hook_func_t       exception;
                 /* condition(sched_root_task_t *root, intptr_t *stopValue) -> int */                  /* condition(sched_root_task_t *root, intptr_t *stopValue) -> int */
                 sched_hook_func_t       condition;                  sched_hook_func_t       condition;
                /* profile(sched_root_task_t *root, intptr_t *stageValue) -> int */                /* profile(sched_task_t *root, intptr_t *stageValue) -> int */
                 sched_hook_func_t       profile;                  sched_hook_func_t       profile;
         }       hook_exec;          }       hook_exec;
         struct {          struct {
Line 165  typedef void *(*sched_task_func_t)(sched_task_t * /* c Line 172  typedef void *(*sched_task_func_t)(sched_task_t * /* c
 #define SCHED_TASK_DEFINE(x)    void *(x)(sched_task_t*)  #define SCHED_TASK_DEFINE(x)    void *(x)(sched_task_t*)
   
 /* task lock helpers */  /* task lock helpers */
#define TASK_LOCK(x)            ((x)->task_lock = 42)#ifdef ATOMIC_SUPPORT
#define TASK_UNLOCK(x)          ((x)->task_lock ^= (x)->task_lock)        #define TASK_LOCK(x)            atomic_store_explicit(&(x)->task_lock, 42, memory_order_release)
#define TASK_ISLOCKED(x)        ((x)->task_lock)        #define TASK_UNLOCK(x)          atomic_store_explicit(&(x)->task_lock, 0, memory_order_release)
         #define TASK_ISLOCKED(x)        atomic_load_explicit(&(x)->task_lock, memory_order_acquire)
 #else
         #define TASK_LOCK(x)            ((x)->task_lock = 42)
         #define TASK_UNLOCK(x)          ((x)->task_lock ^= (x)->task_lock)
         #define TASK_ISLOCKED(x)        ((x)->task_lock)
 #endif
   
 /* task & queue */  /* task & queue */
 struct sched_Task {  struct sched_Task {
Line 175  struct sched_Task { Line 188  struct sched_Task {
 #define TASK_ID(x)      ((struct sched_Task*) (x)->task_id)  #define TASK_ID(x)      ((struct sched_Task*) (x)->task_id)
         sched_task_type_t               task_type;          sched_task_type_t               task_type;
 #define TASK_TYPE(x)    (x)->task_type  #define TASK_TYPE(x)    (x)->task_type
   #ifdef ATOMIC_SUPPORT
           atomic_int                      task_lock;
   #else
         volatile int                    task_lock;          volatile int                    task_lock;
   #endif
   
         sched_root_task_t               *task_root;          sched_root_task_t               *task_root;
 #define TASK_ROOT(x)    (x)->task_root  #define TASK_ROOT(x)    (x)->task_root

Removed from v.1.34.2.1  
changed lines
  Added in v.1.35.2.3


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