VSF Documented
eventfd.h
Go to the documentation of this file.
1#ifndef __VSF_LINUX_SYS_EVENTFD_H__
2#define __VSF_LINUX_SYS_EVENTFD_H__
3
5
6#if VSF_LINUX_CFG_RELATIVE_PATH == ENABLED
7# include "../sys/types.h"
8# include "../fcntl.h"
9#else
10# include <sys/types.h>
11# include <fcntl.h>
12#endif
13#include <stdint.h>
14
15#ifdef __cplusplus
16extern "C" {
17#endif
18
19#if VSF_LINUX_CFG_WRAPPER == ENABLED
20#define eventfd VSF_LINUX_WRAPPER(eventfd)
21#define eventfd_read VSF_LINUX_WRAPPER(eventfd_read)
22#define eventfd_write VSF_LINUX_WRAPPER(eventfd_write)
23#endif
24
25// syscalls
26
27#define __NR_eventfd(__count) eventfd((__count), 0)
28#define __NR_eventfd2 eventfd
29
30#define EFD_SEMAPHORE (1 << 0)
31#define EFD_CLOEXEC O_CLOEXEC
32#define EFD_NONBLOCK O_NONBLOCK
33
35
36#if VSF_LINUX_APPLET_USE_SYS_EVENTFD == ENABLED
39
44# ifndef __VSF_APPLET__
46# endif
47#endif
48
49#if defined(__VSF_APPLET__) && (defined(__VSF_APPLET_LIB__) || defined(__VSF_APPLET_LINUX_SYS_EVENTFD_LIB__))\
50 && VSF_APPLET_CFG_ABI_PATCH != ENABLED && VSF_LINUX_APPLET_USE_SYS_EVENTFD == ENABLED
51
52#ifndef VSF_LINUX_APPLET_SYS_EVENTFD_VPLT
53# if VSF_LINUX_USE_APPLET == ENABLED
54# define VSF_LINUX_APPLET_SYS_EVENTFD_VPLT \
55 ((vsf_linux_sys_eventfd_vplt_t *)(VSF_LINUX_APPLET_VPLT->sys_eventfd_vplt))
56# else
57# define VSF_LINUX_APPLET_SYS_EVENTFD_VPLT \
58 ((vsf_linux_sys_eventfd_vplt_t *)vsf_vplt((void *)0))
59# endif
60#endif
61
62#define VSF_LINUX_APPLET_SYS_EVENTFD_ENTRY(__NAME) \
63 VSF_APPLET_VPLT_ENTRY_FUNC_ENTRY(VSF_LINUX_APPLET_SYS_EVENTFD_VPLT, __NAME)
64#define VSF_LINUX_APPLET_SYS_EVENTFD_IMP(...) \
65 VSF_APPLET_VPLT_ENTRY_FUNC_IMP(VSF_LINUX_APPLET_SYS_EVENTFD_VPLT, __VA_ARGS__)
66
67VSF_LINUX_APPLET_SYS_EVENTFD_IMP(eventfd, int, int count, int flags) {
69 return VSF_LINUX_APPLET_SYS_EVENTFD_ENTRY(eventfd)(count, flags);
70}
71VSF_LINUX_APPLET_SYS_EVENTFD_IMP(eventfd_read, int, int fd, eventfd_t *value) {
73 return VSF_LINUX_APPLET_SYS_EVENTFD_ENTRY(eventfd_read)(fd, value);
74}
75VSF_LINUX_APPLET_SYS_EVENTFD_IMP(eventfd_write, int, int fd, eventfd_t value) {
77 return VSF_LINUX_APPLET_SYS_EVENTFD_ENTRY(eventfd_write)(fd, value);
78}
79
80#else // __VSF_APPLET__ && VSF_LINUX_APPLET_USE_SYS_EVENTFD
81
82int eventfd(int count, int flags);
83int eventfd_read(int fd, eventfd_t *value);
84int eventfd_write(int fd, eventfd_t value);
85
86#endif // __VSF_APPLET__ && VSF_LINUX_APPLET_USE_SYS_EVENTFD
87
88#ifdef __cplusplus
89}
90#endif
91
92#endif // __VSF_LINUX_EVENTFD_H__
__VSF_VPLT_DECORATOR__ vsf_linux_sys_eventfd_vplt_t vsf_linux_sys_eventfd_vplt
Definition vsf_linux_fs.c:3615
#define eventfd_write
Definition eventfd.h:22
#define eventfd
Definition eventfd.h:20
uint64_t eventfd_t
Definition eventfd.h:34
#define eventfd_read
Definition eventfd.h:21
unsigned long long uint64_t
Definition stdint.h:11
Definition eventfd.h:37
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(eventfd_read)
vsf_vplt_info_t info
Definition eventfd.h:38
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(eventfd_write)
Definition vsf_cfg.h:95
vk_av_control_value_t value
Definition vsf_audio.h:171
#define __VSF_VPLT_DECORATOR__
Definition vsf_cfg.h:93
#define VSF_APPLET_VPLT_ENTRY_FUNC_TRACE()
Definition vsf_cfg.h:165