XWOS API  4.0
XWOS C/C++ API参考手册
载入中...
搜索中...
未找到
sel.h
浏览该文件的文档.
1
13#ifndef __xwos_osal_sync_sel_h__
14#define __xwos_osal_sync_sel_h__
15
16#include <xwos/standard.h>
18#include <xwos/osal/time.h>
19
78struct xwos_sel {
79 struct xwosdl_sel ossel;
80};
81
85typedef struct {
86 struct xwos_sel * sel;
89
93#define XWOS_SEL_NILD ((xwos_sel_d){NULL, 0,})
94
109 xwbmp_t * bmp, xwbmp_t * msk)
110{
111 return xwosdl_sel_init(&sel->ossel, num, bmp, msk);
112}
113
125{
126 return xwosdl_sel_fini(&sel->ossel);
127}
128
144{
145 return xwosdl_sel_grab(&sel->ossel);
146}
147
163{
164 return xwosdl_sel_put(&sel->ossel);
165}
166
180{
181 return xwosdl_sel_create((xwosdl_sel_d *)seld, num);
182}
183
195{
196 return xwosdl_sel_delete(&seld.sel->ossel, seld.tik);
197}
198
212{
213 return xwosdl_sel_acquire(&seld.sel->ossel, seld.tik);
214}
215
229{
230 return xwosdl_sel_release(&seld.sel->ossel, seld.tik);
231}
232
242{
243 return xwosdl_sel_get_tik(&sel->ossel);
244}
245
255{
256 xwos_sel_d seld;
257
258 seld.sel = sel;
259 seld.tik = xwosdl_sel_get_tik(&sel->ossel);
260 return seld;
261}
262
282xwer_t xwos_sel_bind(struct xwos_sel * src, struct xwos_sel * dst, xwsq_t pos)
283{
284 return xwosdl_sel_bind(&src->ossel, &dst->ossel, pos);
285}
286
299xwer_t xwos_sel_unbind(struct xwos_sel * src, struct xwos_sel * dst)
300{
301 return xwosdl_sel_unbind(&src->ossel, &dst->ossel);
302}
303
315xwer_t xwos_sel_get_num(struct xwos_sel * sel, xwsz_t * numbuf)
316{
317 return xwosdl_sel_get_num(&sel->ossel, numbuf);
318}
319
334xwer_t xwos_sel_select(struct xwos_sel * sel, xwbmp_t msk[], xwbmp_t trg[])
335{
336 return xwosdl_sel_select(&sel->ossel, msk, trg);
337}
338
361 xwbmp_t msk[], xwbmp_t trg[],
362 xwtm_t to)
363{
364 return xwosdl_sel_select_to(&sel->ossel, msk, trg, to);
365}
366
383{
384 return xwosdl_sel_select(&sel->ossel, msk, trg);
385}
386
402{
403 return xwosdl_sel_select_unintr(&sel->ossel, msk, trg);
404}
405
410#endif /* xwos/osal/sync/sel.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
unsigned long xwsz_t
Definition type.h:339
unsigned long xwsq_t
Definition type.h:445
xwu32_t xwbmp_t
Definition type.h:574
static xwer_t xwos_sel_select_to(struct xwos_sel *sel, xwbmp_t msk[], xwbmp_t trg[], xwtm_t to)
XWOS API:限时等待信号选择器中的 选择信号
Definition sel.h:360
static xwer_t xwos_sel_fini(struct xwos_sel *sel)
XWOS API:销毁静态方式初始化的信号选择器
Definition sel.h:124
static xwer_t xwos_sel_get_num(struct xwos_sel *sel, xwsz_t *numbuf)
XWOS API:获取信号选择器中的信号槽的数量
Definition sel.h:315
static xwer_t xwos_sel_grab(struct xwos_sel *sel)
XWOS API:增加信号选择器对象的引用计数
Definition sel.h:143
static xwer_t xwos_sel_create(xwos_sel_d *seld, xwsz_t num)
XWOS API:动态方式创建信号选择器
Definition sel.h:179
static xwer_t xwos_sel_bind(struct xwos_sel *src, struct xwos_sel *dst, xwsq_t pos)
XWOS API:绑定源信号选择器到目的信号选择器
Definition sel.h:282
static xwer_t xwos_sel_unbind(struct xwos_sel *src, struct xwos_sel *dst)
XWOS API:从目的信号选择器上解绑源信号选择器
Definition sel.h:299
static xwsq_t xwos_sel_get_tik(struct xwos_sel *sel)
XWOS API:获取信号选择器对象的标签
Definition sel.h:241
static xwer_t xwos_sel_delete(xwos_sel_d seld)
XWOS API:删除动态方式创建的信号选择器
Definition sel.h:194
static xwer_t xwos_sel_acquire(xwos_sel_d seld)
XWOS API:检查信号选择器对象的标签并增加引用计数
Definition sel.h:211
static xwer_t xwos_sel_release(xwos_sel_d seld)
XWOS API:检查对象的标签并减少引用计数
Definition sel.h:228
static xwer_t xwos_sel_tryselect(struct xwos_sel *sel, xwbmp_t msk[], xwbmp_t trg[])
XWOS API:检测信号选择器中是否有 选择信号
Definition sel.h:382
static xwer_t xwos_sel_select_unintr(struct xwos_sel *sel, xwbmp_t msk[], xwbmp_t trg[])
XWOS API:等待信号选择器中的 选择信号 ,且等待不可被中断
Definition sel.h:401
static xwer_t xwos_sel_init(struct xwos_sel *sel, xwsz_t num, xwbmp_t *bmp, xwbmp_t *msk)
XWOS API:静态方式初始化信号选择器
Definition sel.h:108
static xwer_t xwos_sel_select(struct xwos_sel *sel, xwbmp_t msk[], xwbmp_t trg[])
XWOS API:等待信号选择器中的 选择信号
Definition sel.h:334
static xwos_sel_d xwos_sel_get_d(struct xwos_sel *sel)
XWOS API:获取信号选择器对象描述符
Definition sel.h:254
static xwer_t xwos_sel_put(struct xwos_sel *sel)
XWOS API:减少信号选择器对象的引用计数
Definition sel.h:162
操作系统抽象层:信号选择器接口描述
XWOS API:信号选择器对象描述符
Definition sel.h:85
struct xwos_sel * sel
Definition sel.h:86
xwsq_t tik
Definition sel.h:87
XWOS API:信号选择器对象
Definition sel.h:78
struct xwmp_evt ossel
Definition sel.h:79
操作系统抽象层:时间
XWOS的标准头文件