41 if (
nullptr != mSeqlock) {
52 if (
nullptr != mSeqlock) {
76 if (
nullptr != mSeqlock) {
145 if (
nullptr != mSeqlock) {
156 if (
nullptr != mSeqlock) {
180 if (
nullptr != mSeqlock) {
249 if (
nullptr != mSeqlock) {
260 if (
nullptr != mSeqlock) {
284 if (
nullptr != mSeqlock) {
335 , mIrqs{TIrqList ...}
339 sizeof...(TIrqList));
348 , mIrqs{TIrqList ...}
352 sizeof...(TIrqList));
360 if (
nullptr != mSeqlock) {
364 sizeof...(TIrqList));
373 if (
nullptr != mSeqlock) {
398 if (
nullptr != mSeqlock) {
429 sizeof...(TIrqList));
445 sizeof...(TIrqList));
475 if (
nullptr != mSeqlock) {
486 if (
nullptr != mSeqlock) {
510 if (
nullptr != mSeqlock) {
579 if (
nullptr != mSeqlock) {
590 if (
nullptr != mSeqlock) {
614 if (
nullptr != mSeqlock) {
683 if (
nullptr != mSeqlock) {
694 if (
nullptr != mSeqlock) {
718 if (
nullptr != mSeqlock) {
769 , mIrqs{TIrqList ...}
773 sizeof...(TIrqList));
782 , mIrqs{TIrqList ...}
786 sizeof...(TIrqList));
794 if (
nullptr != mSeqlock) {
798 sizeof...(TIrqList));
807 if (
nullptr != mSeqlock) {
832 if (
nullptr != mSeqlock) {
863 sizeof...(TIrqList));
879 sizeof...(TIrqList));
独占读中断底半部上锁模式下的顺序锁RAII机制守卫
xwer_t wait(sync::Cond *cond)
等待条件量
~RdexLkBhGrd()
析构顺序锁的RAII机制守卫
~RdexLkGrd()
析构顺序锁的RAII机制守卫
xwer_t wait(sync::Cond *cond)
等待条件量
xwreg_t mIrqFlags[sizeof...(TIrqList)]
xwer_t wait(sync::Cond *cond)
等待条件量
xwirq_t mIrqs[sizeof...(TIrqList)]
~RdexLkIrqsGrd()
析构顺序锁的RAII机制守卫
独占读CPU中断上锁模式下的顺序锁RAII机制守卫
xwer_t wait(sync::Cond *cond)
等待条件量
~RdexLkThGrd()
析构顺序锁的RAII机制守卫
TryRdexLkBhGrd(Seqlock *seqlock)
构造顺序锁的RAII机制守卫
TryRdexLkGrd(Seqlock *seqlock)
构造顺序锁的RAII机制守卫
TryRdexLkIrqsGrd(Seqlock *seqlock)
构造顺序锁的RAII机制守卫
TryRdexLkThGrd(Seqlock *seqlock)
构造顺序锁的RAII机制守卫
TryWrLkBhGrd(Seqlock *seqlock)
构造顺序锁的RAII机制守卫
TryWrLkGrd(Seqlock *seqlock)
构造顺序锁的RAII机制守卫
TryWrLkIrqsGrd(Seqlock *seqlock)
构造顺序锁的RAII机制守卫
TryWrLkThGrd(Seqlock *seqlock)
构造顺序锁的RAII机制守卫
独占写中断底半部上锁模式下的顺序锁RAII机制守卫
xwer_t wait(sync::Cond *cond)
等待条件量
~WrLkBhGrd()
析构顺序锁的RAII机制守卫
xwer_t wait(sync::Cond *cond)
等待条件量
xwirq_t mIrqs[sizeof...(TIrqList)]
xwreg_t mIrqFlags[sizeof...(TIrqList)]
~WrLkIrqsGrd()
析构顺序锁的RAII机制守卫
xwer_t wait(sync::Cond *cond)
等待条件量
独占写CPU中断上锁模式下的顺序锁RAII机制守卫
~WrLkThGrd()
析构顺序锁的RAII机制守卫
xwer_t wait(sync::Cond *cond)
等待条件量
xwsq_t readBegin()
开启共享读临界区
bool readRetry(xwsq_t start)
关闭共享读临界区,并检查是否需要重试
struct xwos_cond * getXwosObj()
#define EFAULT
Bad address
xws64_t xwtm_t
XWOS系统时间 (有符号)
static xwer_t xwos_sqlk_wr_trylock_cpuirqsv(struct xwos_sqlk *sql, xwreg_t *cpuirq)
XWOS API:尝试开启写临界区,保存本地CPU的中断标志并关闭
static void xwos_sqlk_rdex_lock(struct xwos_sqlk *sql)
XWOS API:开启独占读临界区
static void xwos_sqlk_wr_unlock(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 void xwos_sqlk_init(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_rdex_unlock(struct xwos_sqlk *sql)
XWOS API:关闭独占读临界区
static void xwos_sqlk_wr_unlock_bh(struct xwos_sqlk *sql)
XWOS API:关闭写临界区,开启本地CPU的中断底半部
static xwsq_t xwos_sqlk_get_seq(struct xwos_sqlk *sql)
XWOS API:获取顺序锁的顺序值
static xwer_t xwos_sqlk_wr_trylock_bh(struct xwos_sqlk *sql)
XWOS API:尝试开启写临界区,关闭本地CPU的中断底半部
static void xwos_sqlk_rdex_unlock_bh(struct xwos_sqlk *sql)
XWOS API:关闭独占读临界区,开启本地CPU的中断底半部
static xwer_t xwos_sqlk_wr_trylock(struct xwos_sqlk *sql)
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_unlock_cpuirqrs(struct xwos_sqlk *sql, xwreg_t cpuirq)
XWOS API:关闭独占读临界区,恢复本地CPU的中断标志
static void xwos_sqlk_rdex_lock_irqssv(struct xwos_sqlk *sql, const xwirq_t irqs[], xwreg_t flags[], xwsz_t num)
XWOS API:开启独占读临界区,保存部分中断的中断标志并关闭
static xwer_t xwos_sqlk_rdex_trylock_cpuirqsv(struct xwos_sqlk *sql, xwreg_t *cpuirq)
XWOS API:尝试开启独占读临界区,保存本地CPU的中断标志并关闭
static xwsq_t xwos_sqlk_rd_begin(struct xwos_sqlk *sql)
XWOS API:开启共享读临界区
static void xwos_sqlk_rdex_lock_cpuirqsv(struct xwos_sqlk *sql, xwreg_t *cpuirq)
XWOS API:开启独占读临界区,保存本地CPU的中断标志并关闭
static xwer_t xwos_sqlk_rdex_trylock(struct xwos_sqlk *sql)
XWOS API:尝试开启独占读临界区
static xwer_t xwos_sqlk_rdex_trylock_bh(struct xwos_sqlk *sql)
XWOS API:尝试开启独占读临界区,关闭本地CPU的中断底半部
static void xwos_sqlk_wr_lock_cpuirqsv(struct xwos_sqlk *sql, xwreg_t *cpuirq)
XWOS API:开启写临界区,保存本地CPU的中断标志并关闭
static bool xwos_sqlk_rd_retry(struct xwos_sqlk *sql, xwsq_t start)
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 void xwos_sqlk_rdex_lock_bh(struct xwos_sqlk *sql)
XWOS API:开启独占读临界区,关闭本地CPU的中断底半部
static void xwos_sqlk_wr_unlock_cpuirqrs(struct xwos_sqlk *sql, xwreg_t cpuirq)
XWOS API:关闭写临界区,恢复本地CPU的中断标志
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 void xwos_sqlk_wr_lock_bh(struct xwos_sqlk *sql)
XWOS API:开启写临界区,关闭本地CPU的中断底半部
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