XFusion API v1.3.0
载入中...
搜索中...
未找到
xf_vfs_sys_select.h
浏览该文件的文档.
1
12#ifndef __XF_VFS_SYS_SELECT_H__
13#define __XF_VFS_SYS_SELECT_H__
14
15/* ==================== [Includes] ========================================== */
16
18
19#include "xf_vfs_sys_types.h"
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
31/* ==================== [Defines] =========================================== */
32
33/* ==================== [Typedefs] ========================================== */
34
35#if XF_VFS_CUSTOM_FD_SETSIZE_IS_ENABLE
36# define XF_FD_SETSIZE XF_VFS_CUSTOM_FD_SETSIZE
37#else
38# define XF_FD_SETSIZE FD_SETSIZE
39#endif
40
41typedef unsigned long xf__fd_mask;
43
44#define XF__NFDBITS ((int)sizeof(xf__fd_mask) * 8) /* bits per mask */
45#define XF_NFDBITS XF__NFDBITS
46
47#ifndef xf__howmany
48#define xf__howmany(x,y) (((x) + ((y) - 1)) / (y))
49#endif
50
54#define xf_fds_bits __fds_bits
55
56#define xf___fdset_mask(n) ((xf__fd_mask)1 << ((n) % XF__NFDBITS))
57#define XF_FD_CLR(n, p) ((p)->__fds_bits[(n)/XF__NFDBITS] &= ~xf___fdset_mask(n))
58#define XF_FD_COPY(f, t) (void)(*(t) = *(f))
59#define XF_FD_ISSET(n, p) (((p)->__fds_bits[(n)/XF__NFDBITS] & xf___fdset_mask(n)) != 0)
60#define XF_FD_SET(n, p) ((p)->__fds_bits[(n)/XF__NFDBITS] |= xf___fdset_mask(n))
61#define XF_FD_ZERO(p) do { \
62 xf_fd_set *_p; \
63 size_t _n; \
64 \
65 _p = (p); \
66 _n = xf__howmany(XF_FD_SETSIZE, XF__NFDBITS); \
67 while (_n > 0) \
68 _p->__fds_bits[--_n] = 0; \
69} while (0)
70
71/* ==================== [Global Prototypes] ================================= */
72
73/* ==================== [Macros] ============================================ */
74
80#ifdef __cplusplus
81} /* extern "C" */
82#endif
83
84#endif // __XF_VFS_SYS_SELECT_H__
xf__fd_mask __fds_bits[xf__howmany(XF_FD_SETSIZE, XF__NFDBITS)]
xf_vfs 模块内部配置总头文件。 确保 xf_vfs_config.h 的所有定义都有默认值。
unsigned long xf__fd_mask
xf__fd_mask xf_fd_mask
#define XF__NFDBITS
#define XF_FD_SETSIZE
#define xf__howmany(x, y)