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
78struct xwos_mtx {
79 struct xwosdl_mtx osmtx;
80};
81
85typedef struct {
86 struct xwos_mtx * mtx;
89
93#define XWOS_MTX_NILD ((xwos_mtx_d){NULL, 0,})
94
108{
109 return xwosdl_mtx_init(&mtx->osmtx, sprio);
110}
111
123{
124 return xwosdl_mtx_fini(&mtx->osmtx);
125}
126
142{
143 return xwosdl_mtx_grab(&mtx->osmtx);
144}
145
161{
162 return xwosdl_mtx_put(&mtx->osmtx);
163}
164
179{
180 return xwosdl_mtx_create((xwosdl_mtx_d *)mtxd, sprio);
181}
182
194{
195 return xwosdl_mtx_delete(&mtxd.mtx->osmtx, mtxd.tik);
196}
197
211{
212 return xwosdl_mtx_acquire(&mtxd.mtx->osmtx, mtxd.tik);
213}
214
228{
229 return xwosdl_mtx_release(&mtxd.mtx->osmtx, mtxd.tik);
230}
231
241{
242 return xwosdl_mtx_get_tik(&mtx->osmtx);
243}
244
254{
255 xwos_mtx_d mtxd;
256
257 mtxd.mtx = mtx;
258 mtxd.tik = xwosdl_mtx_get_tik(&mtx->osmtx);
259 return mtxd;
260}
261
276{
277 return xwosdl_mtx_unlock(&mtx->osmtx);
278}
279
299{
300 return xwosdl_mtx_lock(&mtx->osmtx);
301}
302
326{
327 return xwosdl_mtx_lock_to(&mtx->osmtx, to);
328}
329
345{
346 return xwosdl_mtx_lock_unintr(&mtx->osmtx);
347}
348
367{
368 return xwosdl_mtx_trylock(&mtx->osmtx);
369}
370
384{
385 return xwosdl_mtx_get_status(&mtx->osmtx, lkst);
386}
387
392#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:383
static xwer_t xwos_mtx_init(struct xwos_mtx *mtx, xwpr_t sprio)
XWOS API:静态方式初始化互斥锁
Definition mtx.h:107
static xwer_t xwos_mtx_grab(struct xwos_mtx *mtx)
XWOS API:增加互斥锁对象的引用计数
Definition mtx.h:141
static xwer_t xwos_mtx_lock_to(struct xwos_mtx *mtx, xwtm_t to)
XWOS API:限时等待上锁互斥锁
Definition mtx.h:325
static xwer_t xwos_mtx_trylock(struct xwos_mtx *mtx)
XWOS API:尝试上锁互斥锁,不会阻塞调用线程
Definition mtx.h:366
static xwer_t xwos_mtx_release(xwos_mtx_d mtxd)
XWOS API:检查对象的标签并减少引用计数
Definition mtx.h:227
static xwsq_t xwos_mtx_get_tik(struct xwos_mtx *mtx)
XWOS API:获取互斥锁对象的标签
Definition mtx.h:240
static xwos_mtx_d xwos_mtx_get_d(struct xwos_mtx *mtx)
XWOS API:获取互斥锁对象的描述符
Definition mtx.h:253
static xwer_t xwos_mtx_fini(struct xwos_mtx *mtx)
XWOS API:销毁静态方式初始化的互斥锁
Definition mtx.h:122
static xwer_t xwos_mtx_create(xwos_mtx_d *mtxd, xwpr_t sprio)
XWOS API:动态方式创建互斥锁
Definition mtx.h:178
static xwer_t xwos_mtx_acquire(xwos_mtx_d mtxd)
XWOS API:检查互斥锁对象的标签并增加引用计数
Definition mtx.h:210
static xwer_t xwos_mtx_delete(xwos_mtx_d mtxd)
XWOS API:删除动态方式创建的互斥锁
Definition mtx.h:193
static xwer_t xwos_mtx_unlock(struct xwos_mtx *mtx)
XWOS API:解锁互斥锁
Definition mtx.h:275
static xwer_t xwos_mtx_lock(struct xwos_mtx *mtx)
XWOS API:等待并上锁互斥锁
Definition mtx.h:298
static xwer_t xwos_mtx_lock_unintr(struct xwos_mtx *mtx)
XWOS API:等待并上锁互斥锁,且等待不可被中断
Definition mtx.h:344
static xwer_t xwos_mtx_put(struct xwos_mtx *mtx)
XWOS API:减少互斥锁对象的引用计数
Definition mtx.h:160
操作系统抽象层:互斥锁接口描述
操作系统抽象层:调度器
XWOS API:互斥锁对象描述符
Definition mtx.h:85
xwsq_t tik
Definition mtx.h:87
struct xwos_mtx * mtx
Definition mtx.h:86
XWOS API:互斥锁
Definition mtx.h:78
struct xwmp_mtx osmtx
Definition mtx.h:79
操作系统抽象层:时间
XWOS的标准头文件