Convert PalEpoll to Rusty error handling.

This commit is contained in:
4lDO2
2024-09-27 11:22:36 +02:00
parent 1a46a24c70
commit 4da5ad37d1
6 changed files with 96 additions and 101 deletions
+16 -12
View File
@@ -1,34 +1,38 @@
use super::{
super::{types::*, PalEpoll},
e, Sys,
use super::{e_raw, Sys};
use crate::{
error::Result,
header::{signal::sigset_t, sys_epoll::epoll_event},
platform::{types::*, PalEpoll},
};
use crate::header::{signal::sigset_t, sys_epoll::epoll_event};
impl PalEpoll for Sys {
fn epoll_create1(flags: c_int) -> c_int {
unsafe { e(syscall!(EPOLL_CREATE1, flags)) as c_int }
fn epoll_create1(flags: c_int) -> Result<c_int> {
Ok(unsafe { e_raw(syscall!(EPOLL_CREATE1, flags))? as c_int })
}
fn epoll_ctl(epfd: c_int, op: c_int, fd: c_int, event: *mut epoll_event) -> c_int {
unsafe { e(syscall!(EPOLL_CTL, epfd, op, fd, event)) as c_int }
unsafe fn epoll_ctl(epfd: c_int, op: c_int, fd: c_int, event: *mut epoll_event) -> Result<()> {
unsafe {
e_raw(syscall!(EPOLL_CTL, epfd, op, fd, event))?;
}
Ok(())
}
fn epoll_pwait(
unsafe fn epoll_pwait(
epfd: c_int,
events: *mut epoll_event,
maxevents: c_int,
timeout: c_int,
sigmask: *const sigset_t,
) -> c_int {
) -> Result<usize> {
unsafe {
e(syscall!(
e_raw(syscall!(
EPOLL_PWAIT,
epfd,
events,
maxevents,
timeout,
sigmask
)) as c_int
))
}
}
}