XWOS API  4.0
XWOS C/C++ API参考手册
载入中...
搜索中...
未找到
br.h
浏览该文件的文档.
1
13#ifndef __xwos_osal_sync_br_h__
14#define __xwos_osal_sync_br_h__
15
16#include <xwos/standard.h>
18#include <xwos/osal/time.h>
19#include <xwos/osal/sync/sel.h>
20
83struct xwos_br {
84 struct xwosdl_br osbr;
85};
86
90typedef struct {
91 struct xwos_br * br;
93} xwos_br_d;
94
98#define XWOS_BR_NILD ((xwos_br_d){NULL, 0,})
99
114 xwbmp_t * bmp, xwbmp_t * msk)
115{
116 return xwosdl_br_init(&br->osbr, num, bmp, msk);
117}
118
130{
131 return xwosdl_br_fini(&br->osbr);
132}
133
149{
150 return xwosdl_br_grab(&br->osbr);
151}
152
168{
169 return xwosdl_br_put(&br->osbr);
170}
171
185{
186 return xwosdl_br_create((xwosdl_br_d *)brd, num);
187}
188
200{
201 return xwosdl_br_delete(&brd.br->osbr, brd.tik);
202}
203
217{
218 return xwosdl_br_acquire(&brd.br->osbr, brd.tik);
219}
220
234{
235 return xwosdl_br_release(&brd.br->osbr, brd.tik);
236}
237
247{
248 return xwosdl_br_get_tik(&br->osbr);
249}
250
260{
261 xwos_br_d brd;
262
263 brd.br = br;
264 brd.tik = xwosdl_br_get_tik(&br->osbr);
265 return brd;
266}
267
286xwer_t xwos_br_bind(struct xwos_br * br, struct xwos_sel * sel, xwsq_t pos)
287{
288 return xwosdl_br_bind(&br->osbr, &sel->ossel, pos);
289}
290
303xwer_t xwos_br_unbind(struct xwos_br * br, struct xwos_sel * sel)
304{
305 return xwosdl_br_unbind(&br->osbr, &sel->ossel);
306}
307
319xwer_t xwos_br_get_num(struct xwos_br * br, xwsz_t * numbuf)
320{
321 return xwosdl_br_get_num(&br->osbr, numbuf);
322}
323
338{
339 return xwosdl_br_wait(&br->osbr);
340}
341
363{
364 return xwosdl_br_wait_to(&br->osbr, to);
365}
366
381{
382 return xwosdl_br_wait_unintr(&br->osbr);
383}
384
389#endif /* xwos/osal/sync/br.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_br_create(xwos_br_d *brd, xwsz_t num)
XWOS API:动态方式创建线程栅栏
Definition br.h:184
static xwer_t xwos_br_delete(xwos_br_d brd)
XWOS API:删除动态方式创建的线程栅栏
Definition br.h:199
static xwer_t xwos_br_init(struct xwos_br *br, xwsz_t num, xwbmp_t *bmp, xwbmp_t *msk)
XWOS API:静态方式初始化线程栅栏
Definition br.h:113
static xwer_t xwos_br_wait_to(struct xwos_br *br, xwtm_t to)
XWOS API:限时等待所有线程到达栅栏
Definition br.h:362
static xwer_t xwos_br_wait_unintr(struct xwos_br *br)
XWOS API:等待所有线程到达栅栏,且等待不可被中断
Definition br.h:380
static xwer_t xwos_br_acquire(xwos_br_d brd)
XWOS API:检查线程栅栏对象的标签并增加引用计数
Definition br.h:216
static xwer_t xwos_br_unbind(struct xwos_br *br, struct xwos_sel *sel)
XWOS API:从信号选择器上解绑线程栅栏
Definition br.h:303
static xwer_t xwos_br_wait(struct xwos_br *br)
XWOS API:等待所有线程到达栅栏
Definition br.h:337
static xwer_t xwos_br_grab(struct xwos_br *br)
XWOS API:增加线程栅栏对象的引用计数
Definition br.h:148
static xwsq_t xwos_br_get_tik(struct xwos_br *br)
XWOS API:获取线程栅栏对象的标签
Definition br.h:246
static xwer_t xwos_br_get_num(struct xwos_br *br, xwsz_t *numbuf)
XWOS API:获取线程栅栏中线程槽数量
Definition br.h:319
static xwer_t xwos_br_fini(struct xwos_br *br)
XWOS API:销毁静态方式初始化的线程栅栏
Definition br.h:129
static xwos_br_d xwos_br_get_d(struct xwos_br *br)
XWOS API:获取线程栅栏对象描述符
Definition br.h:259
static xwer_t xwos_br_put(struct xwos_br *br)
XWOS API:减少线程栅栏对象的引用计数
Definition br.h:167
static xwer_t xwos_br_bind(struct xwos_br *br, struct xwos_sel *sel, xwsq_t pos)
XWOS API:绑定线程栅栏到信号选择器
Definition br.h:286
static xwer_t xwos_br_release(xwos_br_d brd)
XWOS API:检查对象的标签并减少引用计数
Definition br.h:233
操作系统抽象层:线程栅栏接口描述
XWOS API:线程栅栏对象描述符
Definition br.h:90
xwsq_t tik
Definition br.h:92
struct xwos_br * br
Definition br.h:91
XWOS API:线程栅栏
Definition br.h:83
struct xwmp_evt osbr
Definition br.h:84
XWOS API:信号选择器对象
Definition sel.h:82
struct xwmp_evt ossel
Definition sel.h:83
操作系统抽象层:信号选择器
操作系统抽象层:时间
XWOS的标准头文件