2 * D header file for GNU/Linux.
4 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
5 * Authors: Nemanja Boric
7 module core.sys.linux.sys.eventfd;
15 import core.stdc.stdint: uint64_t;
17 /// Type for the event counter
18 alias uint64_t eventfd_t;
20 /* Return file descriptor for generic event channel. Set initial
22 int eventfd (uint count, int flags);
24 /* Read event counter and possibly wait for events. */
25 int eventfd_read (int fd, eventfd_t* value);
27 /* Increment event counter. */
28 int eventfd_write (int fd, eventfd_t value);
32 enum EFD_SEMAPHORE = 1;
33 enum EFD_CLOEXEC = 0x80000; // octal!2000000
34 enum EFD_NONBLOCK = 0x800; // octal!4000
38 enum EFD_SEMAPHORE = 1;
39 enum EFD_CLOEXEC = 0x80000; // octal!2000000
40 enum EFD_NONBLOCK = 0x800; // octal!4000
44 enum EFD_SEMAPHORE = 1;
45 enum EFD_CLOEXEC = 0x80000; // octal!2000000
46 enum EFD_NONBLOCK = 0x80; // octal!200
50 enum EFD_SEMAPHORE = 1;
51 enum EFD_CLOEXEC = 0x80000; // octal!2000000
52 enum EFD_NONBLOCK = 0x80; // octal!200
56 enum EFD_SEMAPHORE = 1;
57 enum EFD_CLOEXEC = 0x80000; // octal!2000000
58 enum EFD_NONBLOCK = 0x800; // octal!4000
62 enum EFD_SEMAPHORE = 1;
63 enum EFD_CLOEXEC = 0x80000; // octal!2000000
64 enum EFD_NONBLOCK = 0x800; // octal!4000
68 enum EFD_SEMAPHORE = 1;
69 enum EFD_CLOEXEC = 0x80000; // octal!2000000
70 enum EFD_NONBLOCK = 0x800; // octal!4000
72 else version (AArch64)
74 enum EFD_SEMAPHORE = 1;
75 enum EFD_CLOEXEC = 0x80000; // octal!2000000
76 enum EFD_NONBLOCK = 0x800; // octal!4000
78 else version (SPARC64)
80 enum EFD_SEMAPHORE = 1;
81 enum EFD_CLOEXEC = 0x80000; // octal!2000000
82 enum EFD_NONBLOCK = 0x800; // octal!4000
84 else version (SystemZ)
86 enum EFD_SEMAPHORE = 1;
87 enum EFD_CLOEXEC = 0x80000; // octal!2000000
88 enum EFD_NONBLOCK = 0x800; // octal!4000
91 static assert(0, "unimplemented");