XWOS API
4.0
XWOS C/C++ API参考手册
|
结构体 | |
struct | xwos_splk |
XWOS API:自旋锁 更多... | |
宏定义 | |
#define | XWOS_SPLK_INITIALIZER { .osspl = XWOSDL_SPLK_INITIALIZER, } |
XWOS API:自旋锁的初始值 | |
函数 | |
static void | xwos_splk_init (struct xwos_splk *spl) |
XWOS API:初始化自旋锁 | |
static void | xwos_splk_lock (struct xwos_splk *spl) |
XWOS API:上锁自旋锁,若自旋锁已开启临界区,就自旋等待 | |
static xwer_t | xwos_splk_trylock (struct xwos_splk *spl) |
XWOS API:尝试上锁自旋锁 | |
static void | xwos_splk_unlock (struct xwos_splk *spl) |
XWOS API:解锁自旋锁 | |
static void | xwos_splk_lock_cpuirq (struct xwos_splk *spl) |
XWOS API:上锁自旋锁,并关闭本地CPU的中断 | |
static xwer_t | xwos_splk_trylock_cpuirq (struct xwos_splk *spl) |
XWOS API:尝试上锁自旋锁,并关闭本地CPU的中断 | |
static void | xwos_splk_unlock_cpuirq (struct xwos_splk *spl) |
XWOS API:解锁自旋锁,并开启本地CPU的中断 | |
static void | xwos_splk_lock_cpuirqsv (struct xwos_splk *spl, xwreg_t *cpuirq) |
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_cpuirqrs (struct xwos_splk *spl, xwreg_t cpuirq) |
XWOS API:解锁自旋锁,并恢复本地CPU的中断标志 | |
static void | xwos_splk_lock_irqs (struct xwos_splk *spl, const xwirq_t irqs[], xwsz_t num) |
XWOS API:上锁自旋锁,并关闭部分中断 | |
static xwer_t | xwos_splk_trylock_irqs (struct xwos_splk *spl, const xwirq_t irqs[], xwsz_t num) |
XWOS API:尝试上锁自旋锁,并关闭部分中断 | |
static void | xwos_splk_unlock_irqs (struct xwos_splk *spl, const xwirq_t irqs[], 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_splk_trylock_irqssv (struct xwos_splk *spl, const xwirq_t irqs[], xwreg_t flags[], xwsz_t num) |
XWOS API:尝试上锁自旋锁,保存部分中断的中断标志并关闭 | |
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 void | xwos_splk_unlock_bh (struct xwos_splk *spl) |
XWOS API:解锁自旋锁,开启本地CPU的中断底半部 | |
技术参考手册: 自旋锁
xwos_splk_init()
:静态初始化xwos_splk_lock()
:上锁,关闭抢占xwos_splk_trylock()
:尝试上锁,关闭抢占xwos_splk_unlock()
:解锁,开启抢占xwos_splk_lock_cpuirq()
:上锁,关闭抢占、CPU中断xwos_splk_trylock_cpuirq()
:尝试上锁,关闭抢占、CPU中断xwos_splk_unlock_cpuirq()
:解锁,开启抢占、CPU中断xwos_splk_lock_cpuirqsv()
:上锁,关闭抢占,保存CPU中断标志并关闭xwos_splk_trylock_cpuirqsv()
:尝试上锁,关闭抢占,保存CPU中断标志并关闭xwos_splk_unlock_cpuirqrs()
:解锁,开启抢占,恢复CPU中断xwos_splk_lock_irqs()
:上锁,关闭抢占,关闭部分中断xwos_splk_trylock_irqs()
:尝试上锁,关闭抢占,关闭部分中断xwos_splk_unlock_irqs()
:解锁,开启抢占、开启部分中断xwos_splk_lock_irqssv()
:上锁,关闭抢占,保存部分中断标志并关闭xwos_splk_trylock_irqssv()
:尝试上锁,关闭抢占,保存部分中断标志并关闭xwos_splk_unlock_irqsrs()
:解锁,开启抢占、恢复部分中断xwos_splk_lock_bh()
:上锁,关闭抢占、中断底半部xwos_splk_trylock_bh()
:尝试上锁,关闭抢占、中断底半部xwos_splk_unlock_bh()
:解锁,开启抢占、中断底半部C++头文件: xwos/osal/lock/spinlock.hxx
#define XWOS_SPLK_INITIALIZER { .osspl = XWOSDL_SPLK_INITIALIZER, } |
XWOS API:自旋锁的初始值
在文件 spinlock.h 第 80 行定义.
|
inlinestatic |
XWOS API:初始化自旋锁
[in] | spl | 自旋锁的指针 |
在文件 spinlock.h 第 89 行定义.
|
inlinestatic |
XWOS API:上锁自旋锁,若自旋锁已开启临界区,就自旋等待
[in] | spl | 自旋锁的指针 |
在文件 spinlock.h 第 103 行定义.
|
inlinestatic |
XWOS API:上锁自旋锁,关闭本地CPU的中断底半部
[in] | spl | 自旋锁的指针 |
在文件 spinlock.h 第 358 行定义.
|
inlinestatic |
XWOS API:上锁自旋锁,并关闭本地CPU的中断
[in] | spl | 自旋锁的指针 |
在文件 spinlock.h 第 147 行定义.
XWOS API:上锁自旋锁,保存本地CPU的中断标志并关闭
[in] | spl | 自旋锁的指针 |
[out] | cpuirq | 缓冲区指针,用于返回本地CPU的中断标志 |
在文件 spinlock.h 第 192 行定义.
|
inlinestatic |
XWOS API:上锁自旋锁,并关闭部分中断
[in] | spl | 自旋锁的指针 |
[in] | irqs | 中断资源数组指针 |
[in] | num | 数组中元素数量 |
在文件 spinlock.h 第 241 行定义.
|
inlinestatic |
XWOS API:上锁自旋锁,保存部分中断的中断标志并关闭
[in] | spl | 自旋锁的指针 |
[in] | irqs | 中断资源数组指针 |
[out] | flags | 缓冲区指针,用于返回部分中断的中断标志 |
[in] | num | 数组中元素数量 |
在文件 spinlock.h 第 300 行定义.
XWOS API:尝试上锁自旋锁
[in] | spl | 自旋锁的指针 |
XWOK | 没有错误 |
-EAGAIN | 获得自旋锁失败 |
在文件 spinlock.h 第 121 行定义.
XWOS API:尝试上锁自旋锁,关闭本地CPU的中断底半部
[in] | spl | 自旋锁的指针 |
XWOK | 没有错误 |
-EAGAIN | 获得自旋锁失败 |
在文件 spinlock.h 第 377 行定义.
XWOS API:尝试上锁自旋锁,并关闭本地CPU的中断
[in] | spl | 自旋锁的指针 |
XWOK | 没有错误 |
-EAGAIN | 获得自旋锁失败 |
在文件 spinlock.h 第 165 行定义.
XWOS API:尝试上锁自旋锁,保存本地CPU的中断标志并关闭
[in] | spl | 自旋锁的指针 |
[out] | cpuirq | 缓冲区指针,用于返回本地CPU的中断标志 |
XWOK | 没有错误 |
-EAGAIN | 获得自旋锁失败 |
在文件 spinlock.h 第 211 行定义.
|
inlinestatic |
XWOS API:尝试上锁自旋锁,并关闭部分中断
[in] | spl | 自旋锁的指针 |
[in] | irqs | 中断资源数组指针 |
[in] | num | 数组中元素数量 |
XWOK | 没有错误 |
-EAGAIN | 获得自旋锁失败 |
在文件 spinlock.h 第 264 行定义.
|
inlinestatic |
XWOS API:尝试上锁自旋锁,保存部分中断的中断标志并关闭
[in] | spl | 自旋锁的指针 |
[in] | irqs | 中断资源数组指针 |
[out] | flags | 缓冲区指针,用于返回部分中断的中断标志 |
[in] | num | 数组中元素数量 |
XWOK | 没有错误 |
-EAGAIN | 获得自旋锁失败 |
在文件 spinlock.h 第 324 行定义.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
XWOS API:解锁自旋锁,并恢复本地CPU的中断标志
[in] | spl | 自旋锁的指针 |
[in] | cpuirq | 本地CPU的中断标志 |
在文件 spinlock.h 第 224 行定义.
|
inlinestatic |
XWOS API:解锁自旋锁,并开启部分中断
[in] | spl | 自旋锁的指针 |
[in] | irqs | 中断资源数组指针 |
[in] | num | 数组中元素数量 |
在文件 spinlock.h 第 280 行定义.