36 #ifndef __METAL_MUTEX__H__ 37 #error "Include metal/mutex.h instead of metal/generic/mutex.h" 40 #ifndef __METAL_GENERIC_MUTEX__H__ 41 #define __METAL_GENERIC_MUTEX__H__ 43 #include "metal/atomic.h" 53 #define METAL_MUTEX_INIT { ATOMIC_VAR_INIT(0) }
static void metal_mutex_init(metal_mutex_t *mutex)
Definition: mutex.h:55
static int metal_mutex_is_acquired(metal_mutex_t *mutex)
Definition: mutex.h:82
static void metal_mutex_deinit(metal_mutex_t *mutex)
Definition: mutex.h:60
#define atomic_flag_test_and_set(FLAG)
Definition: atomic.h:67
static void metal_mutex_acquire(metal_mutex_t *mutex)
Definition: mutex.h:70
static int metal_mutex_try_acquire(metal_mutex_t *mutex)
Definition: mutex.h:65
#define atomic_flag_clear(FLAG)
Definition: atomic.h:71
#define atomic_store(OBJ, VAL)
Definition: atomic.h:79
#define atomic_load(OBJ)
Definition: atomic.h:83
static void metal_mutex_release(metal_mutex_t *mutex)
Definition: mutex.h:77
int atomic_int
Definition: atomic.h:48