Skip to content
Snippets Groups Projects
Verified Commit 887d89c2 authored by Jeremy Soller's avatar Jeremy Soller
Browse files

Add epoll (WIP)

parent 74d0b249
No related branches found
No related tags found
No related merge requests found
...@@ -13,3 +13,5 @@ pub const O_DIRECTORY: c_int = 0x1_0000; ...@@ -13,3 +13,5 @@ pub const O_DIRECTORY: c_int = 0x1_0000;
pub const O_NOFOLLOW: c_int = 0x2_0000; pub const O_NOFOLLOW: c_int = 0x2_0000;
pub const O_CLOEXEC: c_int = 0x8_0000; pub const O_CLOEXEC: c_int = 0x8_0000;
pub const O_PATH: c_int = 0x20_0000; pub const O_PATH: c_int = 0x20_0000;
pub const FD_CLOEXEC: c_int = 0x8_0000;
...@@ -23,8 +23,6 @@ pub const F_GETLK: c_int = 5; ...@@ -23,8 +23,6 @@ pub const F_GETLK: c_int = 5;
pub const F_SETLK: c_int = 6; pub const F_SETLK: c_int = 6;
pub const F_SETLKW: c_int = 7; pub const F_SETLKW: c_int = 7;
pub const FD_CLOEXEC: c_int = 0x0100_0000;
pub const F_RDLCK: c_int = 0; pub const F_RDLCK: c_int = 0;
pub const F_WRLCK: c_int = 1; pub const F_WRLCK: c_int = 1;
pub const F_UNLCK: c_int = 2; pub const F_UNLCK: c_int = 2;
......
...@@ -18,3 +18,5 @@ pub const O_DIRECTORY: c_int = 0x1000_0000; ...@@ -18,3 +18,5 @@ pub const O_DIRECTORY: c_int = 0x1000_0000;
pub const O_PATH: c_int = 0x2000_0000; pub const O_PATH: c_int = 0x2000_0000;
pub const O_SYMLINK: c_int = 0x4000_0000; pub const O_SYMLINK: c_int = 0x4000_0000;
pub const O_NOFOLLOW: c_int = 0x8000_0000; pub const O_NOFOLLOW: c_int = 0x8000_0000;
pub const FD_CLOEXEC: c_int = 0x0100_0000;
...@@ -30,6 +30,7 @@ pub mod stdio; ...@@ -30,6 +30,7 @@ pub mod stdio;
pub mod stdlib; pub mod stdlib;
pub mod string; pub mod string;
pub mod strings; pub mod strings;
pub mod sys_epoll;
pub mod sys_file; pub mod sys_file;
pub mod sys_ioctl; pub mod sys_ioctl;
pub mod sys_mman; pub mod sys_mman;
......
sys_includes = []
include_guard = "_SYS_EPOLL_H"
language = "C"
style = "Tag"
[defines]
"target_os=linux" = "__linux__"
"target_os=redox" = "__redox__"
[enum]
prefix_with_name = true
use platform::types::*;
pub const EPOLL_CLOEXEC: c_int = 0x8_0000;
//! sys/epoll.h implementation for Redox, following http://man7.org/linux/man-pages/man7/epoll.7.html
use core::ptr;
use header::signal::sigset_t;
use platform::types::*;
pub use self::sys::*;
#[cfg(target_os = "linux")]
#[path = "linux.rs"]
pub mod sys;
#[cfg(target_os = "redox")]
#[path = "redox.rs"]
pub mod sys;
pub const EPOLL_CTL_ADD: c_int = 1;
pub const EPOLL_CTL_DEL: c_int = 2;
pub const EPOLL_CTL_MOD: c_int = 3;
#[repr(C)]
pub union epoll_data {
ptr: *mut c_void,
fd: c_int,
u32: u32,
u64: u64,
}
#[repr(C)]
pub struct epoll_event {
events: u32,
data: epoll_data,
}
#[no_mangle]
pub extern "C" fn epoll_create(_size: c_int) -> c_int {
epoll_create1(0)
}
#[no_mangle]
pub extern "C" fn epoll_create1(flags: c_int) -> c_int {
unimplemented!()
//Sys::epoll_create1(flags)
}
#[no_mangle]
pub extern "C" fn epoll_ctl(epfd: c_int, op: c_int, fd: c_int, event: *mut epoll_event) -> c_int {
unimplemented!()
//Sys::epoll_ctl(epfd, op, fd, event)
}
#[no_mangle]
pub extern "C" fn epoll_wait(epfd: c_int, events: *mut epoll_event, maxevents: c_int, timeout: c_int) -> c_int {
epoll_pwait(epfd, events, maxevents, timeout, ptr::null())
}
#[no_mangle]
pub extern "C" fn epoll_pwait(epfd: c_int, events: *mut epoll_event, maxevents: c_int, timeout: c_int, sigmask: *const sigset_t) -> c_int {
unimplemented!()
//Sys::epoll_pwait(epfd, events, maxevents, timeout, sigmask)
}
use platform::types::*;
pub const EPOLL_CLOEXEC: c_int = 0x0100_0000;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment