XWOS API  4.0
XWOS C/C++ API参考手册
载入中...
搜索中...
未找到
mtx.h
浏览该文件的文档.
1
13#ifndef __xwos_osal_lock_mtx_h__
14#define __xwos_osal_lock_mtx_h__
15
16#include <xwos/standard.h>
18#include <xwos/osal/time.h>
19#include <xwos/osal/skd.h>
20
82struct xwos_mtx {
83 struct xwosdl_mtx osmtx;
84};
85
89typedef struct {
90 struct xwos_mtx * mtx;
93
97#define XWOS_MTX_NILD ((xwos_mtx_d){NULL, 0,})
98
112{
113 return xwosdl_mtx_init(&mtx->osmtx, sprio);
114}
115
127{
128 return xwosdl_mtx_fini(&mtx->osmtx);
129}
130
146{
147 return xwosdl_mtx_grab(&mtx->osmtx);
148}
149
165{
166 return xwosdl_mtx_put(&mtx->osmtx);
167}
168
183{
184 return xwosdl_mtx_create((xwosdl_mtx_d *)mtxd, sprio);
185}
186
198{
199 return xwosdl_mtx_delete(&mtxd.mtx->osmtx, mtxd.tik);
200}
201
215{
216 return xwosdl_mtx_acquire(&mtxd.mtx->osmtx, mtxd.tik);
217}
218
232{
233 return xwosdl_mtx_release(&mtxd.mtx->osmtx, mtxd.tik);
234}
235
245{
246 return xwosdl_mtx_get_tik(&mtx->osmtx);
247}
248
258{
259 xwos_mtx_d mtxd;
260
261 mtxd.mtx = mtx;
262 mtxd.tik = xwosdl_mtx_get_tik(&mtx->osmtx);
263 return mtxd;
264}
265
280{
281 return xwosdl_mtx_unlock(&mtx->osmtx);
282}
283
303{
304 return xwosdl_mtx_lock(&mtx->osmtx);
305}
306
330{
331 return xwosdl_mtx_lock_to(&mtx->osmtx, to);
332}
333
349{
350 return xwosdl_mtx_lock_unintr(&mtx->osmtx);
351}
352
371{
372 return xwosdl_mtx_trylock(&mtx->osmtx);
373}
374
388{
389 return xwosdl_mtx_get_status(&mtx->osmtx, lkst);
390}
391
396#endif /* xwos/osal/lock/mtx.h */
#define __xwos_inline_api
Definition compiler.h:179
xws64_t xwtm_t
XWOS系统时间 (有符号)
Definition type.h:742
signed long xwer_t
Definition type.h:554
xws32_t xwpr_t
Definition type.h:534
unsigned long xwsq_t
Definition type.h:445
static xwer_t xwos_mtx_get_status(struct xwos_mtx *mtx, xwsq_t *lkst)
XWOS API:获取锁的状态
Definition mtx.h:387
static xwer_t xwos_mtx_init(struct xwos_mtx *mtx, xwpr_t sprio)
XWOS API:静态方式初始化互斥锁
Definition mtx.h:111
static xwer_t xwos_mtx_grab(struct xwos_mtx *mtx)
XWOS API:增加互斥锁对象的引用计数
Definition mtx.h:145
static xwer_t xwos_mtx_lock_to(struct xwos_mtx *mtx, xwtm_t to)
XWOS API:限时等待上锁互斥锁
Definition mtx.h:329
static xwer_t xwos_mtx_trylock(struct xwos_mtx *mtx)
XWOS API:尝试上锁互斥锁,不会阻塞调用线程
Definition mtx.h:370
static xwer_t xwos_mtx_release(xwos_mtx_d mtxd)
XWOS API:检查对象的标签并减少引用计数
Definition mtx.h:231
static xwsq_t xwos_mtx_get_tik(struct xwos_mtx *mtx)
XWOS API:获取互斥锁对象的标签
Definition mtx.h:244
static xwos_mtx_d xwos_mtx_get_d(struct xwos_mtx *mtx)
XWOS API:获取互斥锁对象的描述符
Definition mtx.h:257
static xwer_t xwos_mtx_fini(struct xwos_mtx *mtx)
XWOS API:销毁静态方式初始化的互斥锁
Definition mtx.h:126
static xwer_t xwos_mtx_create(xwos_mtx_d *mtxd, xwpr_t sprio)
XWOS API:动态方式创建互斥锁
Definition mtx.h:182
static xwer_t xwos_mtx_acquire(xwos_mtx_d mtxd)
XWOS API:检查互斥锁对象的标签并增加引用计数
Definition mtx.h:214
static xwer_t xwos_mtx_delete(xwos_mtx_d mtxd)
XWOS API:删除动态方式创建的互斥锁
Definition mtx.h:197
static xwer_t xwos_mtx_unlock(struct xwos_mtx *mtx)
XWOS API:解锁互斥锁
Definition mtx.h:279
static xwer_t xwos_mtx_lock(struct xwos_mtx *mtx)
XWOS API:等待并上锁互斥锁
Definition mtx.h:302
static xwer_t xwos_mtx_lock_unintr(struct xwos_mtx *mtx)
XWOS API:等待并上锁互斥锁,且等待不可被中断
Definition mtx.h:348
static xwer_t xwos_mtx_put(struct xwos_mtx *mtx)
XWOS API:减少互斥锁对象的引用计数
Definition mtx.h:164
操作系统抽象层:互斥锁接口描述
操作系统抽象层:调度器
XWOS API:互斥锁对象描述符
Definition mtx.h:89
xwsq_t tik
Definition mtx.h:91
struct xwos_mtx * mtx
Definition mtx.h:90
XWOS API:互斥锁
Definition mtx.h:82
struct xwmp_mtx osmtx
Definition mtx.h:83
操作系统抽象层:时间
XWOS的标准头文件