13#ifndef __xwos_cxx_lock_Seqlock_hxx__
14#define __xwos_cxx_lock_Seqlock_hxx__
1031 ,
mIrqs{ TIrqList... }
1035 sizeof...(TIrqList));
1047 ,
mIrqs{ TIrqList... }
1051 sizeof...(TIrqList));
1065 sizeof...(TIrqList));
1081 sizeof...(TIrqList));
1182 nullptr, to, &lkst);
1826 ,
mIrqs{ TIrqList... }
1830 sizeof...(TIrqList));
1842 ,
mIrqs{ TIrqList... }
1846 sizeof...(TIrqList));
1860 sizeof...(TIrqList));
1876 sizeof...(TIrqList));
1977 nullptr, to, &lkst);
独占读中断底半部上锁模式下的顺序锁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)
等待条件量
RdexLkBhGrd(Seqlock &seqlock)
构造顺序锁的RAII机制守卫
enum LockStatus getStatus()
获取锁状态
~RdexLkBhGrd()
析构顺序锁的RAII机制守卫
RdexLkBhGrd(Seqlock *seqlock)
构造顺序锁的RAII机制守卫
xwer_t wait(sync::Cond &cond)
等待条件量
xwer_t wait(sync::Cond &cond, xwtm_t to)
限时等待条件量
~RdexLkGrd()
析构顺序锁的RAII机制守卫
RdexLkGrd(Seqlock *seqlock)
构造顺序锁的RAII机制守卫
xwer_t wait(sync::Cond &cond)
等待条件量
xwer_t wait(sync::Cond *cond, xwtm_t to)
限时等待条件量
enum LockStatus getStatus()
获取锁状态
RdexLkGrd(Seqlock &seqlock)
构造顺序锁的RAII机制守卫
xwer_t wait(sync::Cond *cond)
等待条件量
xwer_t wait(sync::Cond *cond, xwtm_t to)
限时等待条件量
enum LockStatus getStatus()
获取锁状态
RdexLkIrqsGrd(Seqlock *seqlock)
构造顺序锁的RAII机制守卫
xwer_t wait(sync::Cond &cond)
等待条件量
xwreg_t mIrqFlags[sizeof...(TIrqList)]
xwer_t wait(sync::Cond *cond)
等待条件量
xwer_t wait(sync::Cond &cond, xwtm_t to)
限时等待条件量
xwirq_t mIrqs[sizeof...(TIrqList)]
~RdexLkIrqsGrd()
析构顺序锁的RAII机制守卫
RdexLkIrqsGrd(Seqlock &seqlock)
构造顺序锁的RAII机制守卫
独占读CPU中断上锁模式下的顺序锁RAII机制守卫
enum LockStatus getStatus()
获取锁状态
xwer_t wait(sync::Cond &cond)
等待条件量
RdexLkThGrd(Seqlock *seqlock)
构造顺序锁的RAII机制守卫
xwer_t wait(sync::Cond *cond)
等待条件量
~RdexLkThGrd()
析构顺序锁的RAII机制守卫
xwer_t wait(sync::Cond *cond, xwtm_t to)
限时等待条件量
xwer_t wait(sync::Cond &cond, xwtm_t to)
限时等待条件量
RdexLkThGrd(Seqlock &seqlock)
构造顺序锁的RAII机制守卫
独占读中断底半部尝试上锁模式下的顺序锁RAII机制守卫
TryRdexLkBhGrd(Seqlock *seqlock)
构造顺序锁的RAII机制守卫
~TryRdexLkBhGrd()
析构顺序锁的RAII机制守卫
TryRdexLkBhGrd(Seqlock &seqlock)
构造顺序锁的RAII机制守卫
TryRdexLkGrd(Seqlock *seqlock)
构造顺序锁的RAII机制守卫
~TryRdexLkGrd()
析构顺序锁的RAII机制守卫
TryRdexLkGrd(Seqlock &seqlock)
构造顺序锁的RAII机制守卫
独占读部分中断尝试上锁模式下的顺序锁RAII机制守卫
~TryRdexLkIrqsGrd()
析构顺序锁的RAII机制守卫
TryRdexLkIrqsGrd(Seqlock *seqlock)
构造顺序锁的RAII机制守卫
TryRdexLkIrqsGrd(Seqlock &seqlock)
构造顺序锁的RAII机制守卫
独占读CPU中断尝试上锁模式下的顺序锁RAII机制守卫
TryRdexLkThGrd(Seqlock *seqlock)
构造顺序锁的RAII机制守卫
TryRdexLkThGrd(Seqlock &seqlock)
构造顺序锁的RAII机制守卫
~TryRdexLkThGrd()
析构顺序锁的RAII机制守卫
独占写中断底半部尝试上锁模式下的顺序锁RAII机制守卫
TryWrLkBhGrd(Seqlock *seqlock)
构造顺序锁的RAII机制守卫
~TryWrLkBhGrd()
析构顺序锁的RAII机制守卫
TryWrLkBhGrd(Seqlock &seqlock)
构造顺序锁的RAII机制守卫
TryWrLkGrd(Seqlock *seqlock)
构造顺序锁的RAII机制守卫
~TryWrLkGrd()
析构顺序锁的RAII机制守卫
TryWrLkGrd(Seqlock &seqlock)
构造顺序锁的RAII机制守卫
独占写部分中断尝试上锁模式下的顺序锁RAII机制守卫
~TryWrLkIrqsGrd()
析构顺序锁的RAII机制守卫
TryWrLkIrqsGrd(Seqlock *seqlock)
构造顺序锁的RAII机制守卫
TryWrLkIrqsGrd(Seqlock &seqlock)
构造顺序锁的RAII机制守卫
独占写CPU中断尝试上锁模式下的顺序锁RAII机制守卫
~TryWrLkThGrd()
析构顺序锁的RAII机制守卫
TryWrLkThGrd(Seqlock *seqlock)
构造顺序锁的RAII机制守卫
TryWrLkThGrd(Seqlock &seqlock)
构造顺序锁的RAII机制守卫
独占写中断底半部上锁模式下的顺序锁RAII机制守卫
xwer_t wait(sync::Cond &cond)
等待条件量
xwer_t wait(sync::Cond *cond, xwtm_t to)
限时等待条件量
WrLkBhGrd(Seqlock &seqlock)
构造顺序锁的RAII机制守卫
xwer_t wait(sync::Cond *cond)
等待条件量
WrLkBhGrd(Seqlock *seqlock)
构造顺序锁的RAII机制守卫
~WrLkBhGrd()
析构顺序锁的RAII机制守卫
xwer_t wait(sync::Cond &cond, xwtm_t to)
限时等待条件量
enum LockStatus getStatus()
获取锁状态
enum LockStatus getStatus()
获取锁状态
xwer_t wait(sync::Cond *cond)
等待条件量
xwer_t wait(sync::Cond *cond, xwtm_t to)
限时等待条件量
WrLkGrd(Seqlock *seqlock)
构造顺序锁的RAII机制守卫
WrLkGrd(Seqlock &seqlock)
构造顺序锁的RAII机制守卫
xwer_t wait(sync::Cond &cond, xwtm_t to)
限时等待条件量
xwer_t wait(sync::Cond &cond)
等待条件量
xwirq_t mIrqs[sizeof...(TIrqList)]
xwer_t wait(sync::Cond &cond)
等待条件量
WrLkIrqsGrd(Seqlock &seqlock)
构造顺序锁的RAII机制守卫
xwreg_t mIrqFlags[sizeof...(TIrqList)]
xwer_t wait(sync::Cond *cond, xwtm_t to)
限时等待条件量
WrLkIrqsGrd(Seqlock *seqlock)
构造顺序锁的RAII机制守卫
xwer_t wait(sync::Cond &cond, xwtm_t to)
限时等待条件量
enum LockStatus getStatus()
获取锁状态
~WrLkIrqsGrd()
析构顺序锁的RAII机制守卫
xwer_t wait(sync::Cond *cond)
等待条件量
独占写CPU中断上锁模式下的顺序锁RAII机制守卫
xwer_t wait(sync::Cond *cond, xwtm_t to)
限时等待条件量
enum LockStatus getStatus()
获取锁状态
xwer_t wait(sync::Cond &cond, xwtm_t to)
限时等待条件量
xwer_t wait(sync::Cond &cond)
等待条件量
WrLkThGrd(Seqlock &seqlock)
构造顺序锁的RAII机制守卫
WrLkThGrd(Seqlock *seqlock)
构造顺序锁的RAII机制守卫
~WrLkThGrd()
析构顺序锁的RAII机制守卫
xwer_t wait(sync::Cond *cond)
等待条件量
struct xwos_sqlk * getXwosObj()
xwsq_t readBegin()
开启共享读临界区
bool readRetry(xwsq_t start)
关闭共享读临界区,并检查是否需要重试
struct xwos_cond * getXwosObj()
获取XWOS对象指针
#define EFAULT
Bad address
xws64_t xwtm_t
XWOS系统时间 (有符号)
static void xwos_sqlk_rdex_lock(struct xwos_sqlk *sql)
XWOS API:开启独占读临界区
static void xwos_sqlk_rdex_unlock_irqsrs(struct xwos_sqlk *sql, const xwirq_t irqs[], xwreg_t flags[], xwsz_t num)
XWOS API:关闭独占读临界区,恢复部分中断的中断标志
static void xwos_sqlk_wr_lock(struct xwos_sqlk *sql)
XWOS API:开启写临界区
static xwer_t xwos_sqlk_wr_trylock_irqssv(struct xwos_sqlk *sql, const xwirq_t irqs[], xwreg_t flags[], xwsz_t num)
XWOS API:尝试开启写临界区,保存部分中断的中断标志并关闭
static void xwos_sqlk_wr_lock_irqssv(struct xwos_sqlk *sql, const xwirq_t irqs[], xwreg_t flags[], xwsz_t num)
XWOS API:开启写临界区,保存部分中断的中断标志并关闭
static void xwos_sqlk_rdex_lock_irqssv(struct xwos_sqlk *sql, const xwirq_t irqs[], xwreg_t flags[], xwsz_t num)
XWOS API:开启独占读临界区,保存部分中断的中断标志并关闭
static void xwos_sqlk_wr_unlock_irqsrs(struct xwos_sqlk *sql, const xwirq_t irqs[], xwreg_t flags[], xwsz_t num)
XWOS API:关闭写临界区,恢复部分中断的中断标志
static xwer_t xwos_sqlk_rdex_trylock_irqssv(struct xwos_sqlk *sql, 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