43 #ifndef __METAL_CONDITION__H__ 44 #error "Include metal/condition.h instead of metal/linux/condition.h" 47 #ifndef __METAL_LINUX_CONDITION__H__ 48 #define __METAL_LINUX_CONDITION__H__ 51 #include <sys/syscall.h> 52 #include <linux/futex.h> 53 #include "metal/atomic.h" 74 #define METAL_CONDITION_INIT { NULL, ATOMIC_VAR_INIT(0), ATOMIC_VAR_INIT(0) } 90 syscall(SYS_futex, &cv->
wakeups, FUTEX_WAKE, 1, NULL, NULL, 0);
101 syscall(SYS_futex, &cv->
wakeups, FUTEX_WAKE, INT_MAX, NULL, NULL, 0);
#define atomic_init(OBJ, VAL)
Definition: atomic.h:75
static int metal_condition_signal(struct metal_condition *cv)
Definition: condition.h:83
static void metal_condition_init(struct metal_condition *cv)
Definition: condition.h:76
#define atomic_fetch_add(OBJ, VAL)
Definition: atomic.h:118
#define atomic_load(OBJ)
Definition: atomic.h:83
static int metal_condition_broadcast(struct metal_condition *cv)
Definition: condition.h:94
int atomic_int
Definition: atomic.h:48