From 04d2f296a991ebcb2d86f8c5c753597f40748a0e Mon Sep 17 00:00:00 2001 From: Jeremy Soller <jackpot51@gmail.com> Date: Fri, 3 Mar 2023 19:58:05 -0700 Subject: [PATCH] Fix for epoll on i686 redox --- src/header/sys_epoll/cbindgen.toml | 1 + src/header/sys_epoll/mod.rs | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/header/sys_epoll/cbindgen.toml b/src/header/sys_epoll/cbindgen.toml index 45aac6c16..af85975df 100644 --- a/src/header/sys_epoll/cbindgen.toml +++ b/src/header/sys_epoll/cbindgen.toml @@ -8,6 +8,7 @@ cpp_compat = true [defines] "target_os=linux" = "__linux__" "target_os=redox" = "__redox__" +"target_pointer_width=64" = "__LP64__" [enum] prefix_with_name = true diff --git a/src/header/sys_epoll/mod.rs b/src/header/sys_epoll/mod.rs index 3cae6cfa6..831d6dca0 100644 --- a/src/header/sys_epoll/mod.rs +++ b/src/header/sys_epoll/mod.rs @@ -35,6 +35,7 @@ impl Default for epoll_data { } } +#[cfg(all(target_os = "redox", target_pointer_width = "64"))] #[repr(C)] #[derive(Clone, Copy, Default)] // This will match in size with syscall::Event (24 bytes on 64-bit @@ -45,10 +46,17 @@ pub struct epoll_event { // 4 automatic alignment bytes pub data: epoll_data, // 8 bytes - #[cfg(target_os = "redox")] pub _pad: u64, // 8 bytes } +#[cfg(not(all(target_os = "redox", target_pointer_width = "64")))] +#[repr(C)] +#[derive(Clone, Copy, Default)] +pub struct epoll_event { + pub events: u32, + pub data: epoll_data, +} + #[no_mangle] pub extern "C" fn epoll_create(_size: c_int) -> c_int { epoll_create1(0) -- GitLab