diff --git a/rules/eventfd/src.c b/rules/eventfd/src.c new file mode 100644 index 00000000..ca105d08 --- /dev/null +++ b/rules/eventfd/src.c @@ -0,0 +1,21 @@ +#define _GNU_SOURCE + +#ifdef __linux__ +#include + +int f1() { + return EFD_CLOEXEC; +} + +int f2() { + return EFD_NONBLOCK; +} + +int f3() { + return EFD_SEMAPHORE; +} + +int f4(unsigned int initval, int flags) { + return eventfd(initval, flags); +} +#endif diff --git a/rules/eventfd/tgt_unsafe.rs b/rules/eventfd/tgt_unsafe.rs new file mode 100644 index 00000000..4ee66a55 --- /dev/null +++ b/rules/eventfd/tgt_unsafe.rs @@ -0,0 +1,19 @@ +#[cfg(target_os = "linux")] +unsafe fn f1() -> i32 { + libc::EFD_CLOEXEC +} + +#[cfg(target_os = "linux")] +unsafe fn f2() -> i32 { + libc::EFD_NONBLOCK +} + +#[cfg(target_os = "linux")] +unsafe fn f3() -> i32 { + libc::EFD_SEMAPHORE +} + +#[cfg(target_os = "linux")] +unsafe fn f4(a0: u32, a1: i32) -> i32 { + libc::eventfd(a0, a1) +} diff --git a/rules/src/modules.rs b/rules/src/modules.rs index 9a7971c5..43f66902 100644 --- a/rules/src/modules.rs +++ b/rules/src/modules.rs @@ -40,6 +40,8 @@ pub mod deque_tgt_unsafe; pub mod dirent_tgt_unsafe; #[path = r#"../errno/tgt_unsafe.rs"#] pub mod errno_tgt_unsafe; +#[path = r#"../eventfd/tgt_unsafe.rs"#] +pub mod eventfd_tgt_unsafe; #[path = r#"../fnmatch/tgt_unsafe.rs"#] pub mod fnmatch_tgt_unsafe; #[path = r#"../fstream/tgt_refcount.rs"#]