13#ifndef __xwos_cxx_lock_Spinlock_hxx__
14#define __xwos_cxx_lock_Spinlock_hxx__
800 ,
mIrqs{ TIrqList... }
804 sizeof...(TIrqList));
816 ,
mIrqs{ TIrqList... }
820 sizeof...(TIrqList));
834 sizeof...(TIrqList));
850 sizeof...(TIrqList));
1016 sizeof...(TIrqList));
1038 sizeof...(TIrqList));
xwer_t wait(sync::Cond &cond)
等待条件量
xwer_t wait(sync::Cond *cond)
等待条件量
enum LockStatus getStatus()
获取锁状态
LkBhGrd(Spinlock *spinlock)
构造自旋锁的RAII机制守卫
xwer_t wait(sync::Cond &cond, xwtm_t to)
限时等待条件量
LkBhGrd(Spinlock &spinlock)
构造自旋锁的RAII机制守卫
xwer_t wait(sync::Cond *cond, xwtm_t to)
限时等待条件量
xwer_t wait(sync::Cond &cond, xwtm_t to)
限时等待条件量
xwer_t wait(sync::Cond &cond)
等待条件量
LkGrd(Spinlock *spinlock)
构造自旋锁的RAII机制守卫
xwer_t wait(sync::Cond *cond, xwtm_t to)
限时等待条件量
xwer_t wait(sync::Cond *cond)
等待条件量
LkGrd(Spinlock &spinlock)
构造自旋锁的RAII机制守卫
enum LockStatus getStatus()
获取锁状态
~LkIrqsGrd()
析构自旋锁的RAII机制守卫
xwer_t wait(sync::Cond *cond, xwtm_t to)
限时等待条件量
xwer_t wait(sync::Cond &cond)
等待条件量
LkIrqsGrd(Spinlock *spinlock)
构造自旋锁的RAII机制守卫
xwer_t wait(sync::Cond *cond)
等待条件量
LkIrqsGrd(Spinlock &spinlock)
构造自旋锁的RAII机制守卫
enum LockStatus getStatus()
获取锁状态
xwreg_t mIrqFlags[sizeof...(TIrqList)]
xwirq_t mIrqs[sizeof...(TIrqList)]
xwer_t wait(sync::Cond &cond, xwtm_t to)
限时等待条件量
xwer_t wait(sync::Cond &cond)
等待条件量
xwer_t wait(sync::Cond &cond, xwtm_t to)
限时等待条件量
xwer_t wait(sync::Cond *cond)
等待条件量
enum LockStatus getStatus()
获取锁状态
LkThGrd(Spinlock &spinlock)
构造自旋锁的RAII机制守卫
LkThGrd(Spinlock *spinlock)
构造自旋锁的RAII机制守卫
xwer_t wait(sync::Cond *cond, xwtm_t to)
限时等待条件量
~TryLkBhGrd()
析构自旋锁的RAII机制守卫
TryLkBhGrd(Spinlock *spinlock)
构造自旋锁的RAII机制守卫
TryLkBhGrd(Spinlock &spinlock)
构造自旋锁的RAII机制守卫
TryLkGrd(Spinlock &spinlock)
构造自旋锁的RAII机制守卫
TryLkGrd(Spinlock *spinlock)
构造自旋锁的RAII机制守卫
~TryLkGrd()
析构自旋锁的RAII机制守卫
~TryLkIrqsGrd()
析构自旋锁的RAII机制守卫
TryLkIrqsGrd(Spinlock &spinlock)
构造自旋锁的RAII机制守卫
TryLkIrqsGrd(Spinlock *spinlock)
构造自旋锁的RAII机制守卫
TryLkThGrd(Spinlock &spinlock)
构造自旋锁的RAII机制守卫
~TryLkThGrd()
析构自旋锁的RAII机制守卫
TryLkThGrd(Spinlock *spinlock)
构造自旋锁的RAII机制守卫
struct xwos_splk * getXwosObj()
struct xwos_cond * getXwosObj()
获取XWOS对象指针
#define EFAULT
Bad address
xws64_t xwtm_t
XWOS系统时间 (有符号)
static void xwos_splk_unlock_irqsrs(struct xwos_splk *spl, const xwirq_t irqs[], xwreg_t flags[], xwsz_t num)
XWOS API:解锁自旋锁,并恢复部分中断的中断标志
static void xwos_splk_lock(struct xwos_splk *spl)
XWOS API:上锁自旋锁,若自旋锁已开启临界区,就自旋等待
static xwer_t xwos_splk_trylock_irqssv(struct xwos_splk *spl, const xwirq_t irqs[], xwreg_t flags[], xwsz_t num)
XWOS API:尝试上锁自旋锁,保存部分中断的中断标志并关闭
static void xwos_splk_lock_irqssv(struct xwos_splk *spl, const xwirq_t irqs[], xwreg_t flags[], xwsz_t num)
XWOS API:上锁自旋锁,保存部分中断的中断标志并关闭
static xwer_t xwos_cond_wait(struct xwos_cond *cond, union xwos_ulock lock, xwsq_t lktype, void *lkdata, xwsq_t *lkst)
XWOS API:等待条件量
static xwer_t xwos_cond_wait_to(struct xwos_cond *cond, union xwos_ulock lock, xwsq_t lktype, void *lkdata, xwtm_t to, xwsq_t *lkst)
XWOS API:限时等待条件量
union xwos_ulock::@8 osal