#ifndef INCLUDED_OS_FAIRLOCK_H #define INCLUDED_OS_FAIRLOCK_H #ifndef INCLUDED_OS_MUTEX_H #include #endif /*INCLUDED_OS_MUTEX_H*/ typedef struct { os_mutex_t lock; }os_fairlock_t; OS_STATIC_FORCE_INLINE void os_fairlock_init(os_fairlock_t* self){ os_mutex_init(&self->lock); } OS_STATIC_FORCE_INLINE os_err_t os_fairlock_trylock(os_fairlock_t* self){ return os_mutex_trylock(&self->lock); } OS_STATIC_FORCE_INLINE void os_fairlock_lock(os_fairlock_t* self){ os_mutex_lock(&self->lock); } OS_STATIC_FORCE_INLINE os_err_t os_fairlock_timed_lock(os_fairlock_t* self, os_tick_t ticks){ return os_mutex_timed_lock(&self->lock, ticks); } OS_STATIC_FORCE_INLINE void os_fairlock_unlock(os_fairlock_t* self){ os_mutex_unlock_one(&self->lock); } #endif /*INCLUDED_OS_FAIRLOCK_H*/