#ifndef __LUNAIX_MUTEX_H #define __LUNAIX_MUTEX_H #include "semaphore.h" // TODO: implement mutex lock typedef struct sem_t mutex_t; static inline void mutex_init(mutex_t *mutex) { sem_init(mutex, 1); } static inline unsigned int mutex_on_hold(mutex_t *mutex) { return !atomic_load(&mutex->counter); } static inline void mutex_lock(mutex_t *mutex) { sem_wait(mutex); } static inline void mutex_unlock(mutex_t *mutex) { sem_post(mutex); } #endif /* __LUNAIX_MUTEX_H */