13#ifndef __xwos_osal_lock_mtx_h__
14#define __xwos_osal_lock_mtx_h__
93#define XWOS_MTX_NILD ((xwos_mtx_d){NULL, 0,})
109 return xwosdl_mtx_init(&mtx->
osmtx, sprio);
124 return xwosdl_mtx_fini(&mtx->
osmtx);
143 return xwosdl_mtx_grab(&mtx->
osmtx);
162 return xwosdl_mtx_put(&mtx->
osmtx);
180 return xwosdl_mtx_create((xwosdl_mtx_d *)mtxd, sprio);
195 return xwosdl_mtx_delete(&mtxd.
mtx->
osmtx, mtxd.
tik);
212 return xwosdl_mtx_acquire(&mtxd.
mtx->
osmtx, mtxd.
tik);
229 return xwosdl_mtx_release(&mtxd.
mtx->
osmtx, mtxd.
tik);
242 return xwosdl_mtx_get_tik(&mtx->
osmtx);
258 mtxd.
tik = xwosdl_mtx_get_tik(&mtx->
osmtx);
277 return xwosdl_mtx_unlock(&mtx->
osmtx);
300 return xwosdl_mtx_lock(&mtx->
osmtx);
327 return xwosdl_mtx_lock_to(&mtx->
osmtx, to);
346 return xwosdl_mtx_lock_unintr(&mtx->
osmtx);
368 return xwosdl_mtx_trylock(&mtx->
osmtx);
385 return xwosdl_mtx_get_status(&mtx->
osmtx, lkst);
#define __xwos_inline_api
xws64_t xwtm_t
XWOS系统时间 (有符号)
static xwer_t xwos_mtx_get_status(struct xwos_mtx *mtx, xwsq_t *lkst)
XWOS API:获取锁的状态
static xwer_t xwos_mtx_init(struct xwos_mtx *mtx, xwpr_t sprio)
XWOS API:静态方式初始化互斥锁
static xwer_t xwos_mtx_grab(struct xwos_mtx *mtx)
XWOS API:增加互斥锁对象的引用计数
static xwer_t xwos_mtx_lock_to(struct xwos_mtx *mtx, xwtm_t to)
XWOS API:限时等待上锁互斥锁
static xwer_t xwos_mtx_trylock(struct xwos_mtx *mtx)
XWOS API:尝试上锁互斥锁,不会阻塞调用线程
static xwer_t xwos_mtx_release(xwos_mtx_d mtxd)
XWOS API:检查对象的标签并减少引用计数
static xwsq_t xwos_mtx_get_tik(struct xwos_mtx *mtx)
XWOS API:获取互斥锁对象的标签
static xwos_mtx_d xwos_mtx_get_d(struct xwos_mtx *mtx)
XWOS API:获取互斥锁对象的描述符
static xwer_t xwos_mtx_fini(struct xwos_mtx *mtx)
XWOS API:销毁静态方式初始化的互斥锁
static xwer_t xwos_mtx_create(xwos_mtx_d *mtxd, xwpr_t sprio)
XWOS API:动态方式创建互斥锁
static xwer_t xwos_mtx_acquire(xwos_mtx_d mtxd)
XWOS API:检查互斥锁对象的标签并增加引用计数
static xwer_t xwos_mtx_delete(xwos_mtx_d mtxd)
XWOS API:删除动态方式创建的互斥锁
static xwer_t xwos_mtx_unlock(struct xwos_mtx *mtx)
XWOS API:解锁互斥锁
static xwer_t xwos_mtx_lock(struct xwos_mtx *mtx)
XWOS API:等待并上锁互斥锁
static xwer_t xwos_mtx_lock_unintr(struct xwos_mtx *mtx)
XWOS API:等待并上锁互斥锁,且等待不可被中断
static xwer_t xwos_mtx_put(struct xwos_mtx *mtx)
XWOS API:减少互斥锁对象的引用计数