Files
RTOS/Kernel/SingleCore/os_fairlock.h
T

38 lines
816 B
C
Raw Normal View History

2026-05-19 11:49:22 +08:00
#ifndef INCLUDED_OS_FAIRLOCK_H
#define INCLUDED_OS_FAIRLOCK_H
#ifndef INCLUDED_OS_MUTEX_H
#include <os_mutex.h>
#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*/