30 : mSpinlock(&spinlock)
41 if (
nullptr != mSpinlock) {
52 if (
nullptr != mSpinlock) {
75 if (
nullptr != mSpinlock) {
127 : mSpinlock(spinlock)
137 : mSpinlock(&spinlock)
148 if (
nullptr != mSpinlock) {
159 if (
nullptr != mSpinlock) {
182 if (
nullptr != mSpinlock) {
234 : mSpinlock(spinlock)
244 : mSpinlock(&spinlock)
255 if (
nullptr != mSpinlock) {
266 if (
nullptr != mSpinlock) {
289 if (
nullptr != mSpinlock) {
342 : mSpinlock(spinlock)
344 , mIrqs{TIrqList ...}
354 : mSpinlock(&spinlock)
356 , mIrqs{TIrqList ...}
367 if (
nullptr != mSpinlock) {
371 sizeof...(TIrqList));
380 if (
nullptr != mSpinlock) {
404 if (
nullptr != mSpinlock) {
435 sizeof...(TIrqList));
453 sizeof...(TIrqList));
xwer_t wait(sync::Cond *cond)
等待条件量
xwer_t wait(sync::Cond *cond)
等待条件量
~LkIrqsGrd()
析构自旋锁的RAII机制守卫
xwer_t wait(sync::Cond *cond)
等待条件量
xwreg_t mIrqFlags[sizeof...(TIrqList)]
xwirq_t mIrqs[sizeof...(TIrqList)]
xwer_t wait(sync::Cond *cond)
等待条件量
TryLkBhGrd(Spinlock *spinlock)
构造自旋锁的RAII机制守卫
TryLkGrd(Spinlock *spinlock)
构造自旋锁的RAII机制守卫
TryLkIrqsGrd(Spinlock *spinlock)
构造自旋锁的RAII机制守卫
TryLkThGrd(Spinlock *spinlock)
构造自旋锁的RAII机制守卫
struct xwos_cond * getXwosObj()
#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_bh(struct xwos_splk *spl)
XWOS API:上锁自旋锁,关闭本地CPU的中断底半部
static xwer_t xwos_splk_trylock_bh(struct xwos_splk *spl)
XWOS API:尝试上锁自旋锁,关闭本地CPU的中断底半部
static xwer_t xwos_splk_trylock_cpuirqsv(struct xwos_splk *spl, xwreg_t *cpuirq)
XWOS API:尝试上锁自旋锁,保存本地CPU的中断标志并关闭
static void xwos_splk_unlock(struct xwos_splk *spl)
XWOS API:解锁自旋锁
static void xwos_splk_lock(struct xwos_splk *spl)
XWOS API:上锁自旋锁,若自旋锁已开启临界区,就自旋等待
static void xwos_splk_unlock_cpuirqrs(struct xwos_splk *spl, xwreg_t cpuirq)
XWOS API:解锁自旋锁,并恢复本地CPU的中断标志
static void xwos_splk_init(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_cpuirqsv(struct xwos_splk *spl, xwreg_t *cpuirq)
XWOS API:上锁自旋锁,保存本地CPU的中断标志并关闭
static xwer_t xwos_splk_trylock(struct xwos_splk *spl)
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 void xwos_splk_unlock_bh(struct xwos_splk *spl)
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