| /** | |
| * D header file for GNU/Linux. | |
| * | |
| * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) | |
| * Authors: Nemanja Boric | |
| */ | |
| module core.sys.linux.sys.eventfd; | |
| version (linux): | |
| extern (C): | |
| @nogc: | |
| nothrow: | |
| version (ARM) version = ARM_Any; | |
| version (AArch64) version = ARM_Any; | |
| version (HPPA) version = HPPA_Any; | |
| version (MIPS32) version = MIPS_Any; | |
| version (MIPS64) version = MIPS_Any; | |
| version (PPC) version = PPC_Any; | |
| version (PPC64) version = PPC_Any; | |
| version (RISCV32) version = RISCV_Any; | |
| version (RISCV64) version = RISCV_Any; | |
| version (S390) version = IBMZ_Any; | |
| version (SPARC) version = SPARC_Any; | |
| version (SPARC64) version = SPARC_Any; | |
| version (SystemZ) version = IBMZ_Any; | |
| version (X86) version = X86_Any; | |
| version (X86_64) version = X86_Any; | |
| import core.stdc.stdint: uint64_t; | |
| /// Type for the event counter | |
| alias uint64_t eventfd_t; | |
| /* Return file descriptor for generic event channel. Set initial | |
| value to count. */ | |
| int eventfd (uint count, int flags); | |
| /* Read event counter and possibly wait for events. */ | |
| int eventfd_read (int fd, eventfd_t* value); | |
| /* Increment event counter. */ | |
| int eventfd_write (int fd, eventfd_t value); | |
| version (CRuntime_UClibc) | |
| { | |
| version (MIPS_Any) | |
| { | |
| enum EFD_SEMAPHORE = 1; | |
| enum EFD_CLOEXEC = 0x80000; // octal!02000000 | |
| enum EFD_NONBLOCK = 0x80; // octal!00000200 | |
| } | |
| else version (SPARC_Any) | |
| { | |
| enum EFD_SEMAPHORE = 1; | |
| enum EFD_CLOEXEC = 0x400000; | |
| enum EFD_NONBLOCK = 0x004000; | |
| } | |
| else | |
| { | |
| enum EFD_SEMAPHORE = 1; | |
| enum EFD_CLOEXEC = 0x80000; // octal!02000000 | |
| enum EFD_NONBLOCK = 0x800; // octal!00004000 | |
| } | |
| } | |
| else version (X86_Any) | |
| { | |
| enum EFD_SEMAPHORE = 1; | |
| enum EFD_CLOEXEC = 0x80000; // octal!2000000 | |
| enum EFD_NONBLOCK = 0x800; // octal!4000 | |
| } | |
| else version (HPPA_Any) | |
| { | |
| enum EFD_SEMAPHORE = 1; | |
| enum EFD_CLOEXEC = 0x200000; // octal!10000000 | |
| enum EFD_NONBLOCK = 0x10004; // octal!00200004 | |
| } | |
| else version (MIPS_Any) | |
| { | |
| enum EFD_SEMAPHORE = 1; | |
| enum EFD_CLOEXEC = 0x80000; // octal!2000000 | |
| enum EFD_NONBLOCK = 0x80; // octal!200 | |
| } | |
| else version (PPC_Any) | |
| { | |
| enum EFD_SEMAPHORE = 1; | |
| enum EFD_CLOEXEC = 0x80000; // octal!2000000 | |
| enum EFD_NONBLOCK = 0x800; // octal!4000 | |
| } | |
| else version (ARM_Any) | |
| { | |
| enum EFD_SEMAPHORE = 1; | |
| enum EFD_CLOEXEC = 0x80000; // octal!2000000 | |
| enum EFD_NONBLOCK = 0x800; // octal!4000 | |
| } | |
| else version (RISCV_Any) | |
| { | |
| enum EFD_SEMAPHORE = 1; | |
| enum EFD_CLOEXEC = 0x80000; // octal!2000000 | |
| enum EFD_NONBLOCK = 0x800; // octal!4000 | |
| } | |
| else version (SPARC_Any) | |
| { | |
| enum EFD_SEMAPHORE = 1; | |
| enum EFD_CLOEXEC = 0x80000; // octal!2000000 | |
| enum EFD_NONBLOCK = 0x800; // octal!4000 | |
| } | |
| else version (IBMZ_Any) | |
| { | |
| enum EFD_SEMAPHORE = 1; | |
| enum EFD_CLOEXEC = 0x80000; // octal!2000000 | |
| enum EFD_NONBLOCK = 0x800; // octal!4000 | |
| } | |
| else version (LoongArch64) | |
| { | |
| enum EFD_SEMAPHORE = 1; | |
| enum EFD_CLOEXEC = 0x80000; // octal!2000000 | |
| enum EFD_NONBLOCK = 0x800; // octal!4000 | |
| } | |
| else | |
| static assert(0, "unimplemented"); |