syscall/lib.rs
1//!
2//! This file is part of syscall-rs
3//!
4
5#![deny(clippy::all)]
6
7/// System call wrapper.
8///
9/// Wrapper around `libc` system calls that checks `errno` on failure.
10#[macro_export]
11macro_rules! syscall {
12 ($fn: ident ( $($arg: expr),* $(,)* ) ) => {{
13 let res = unsafe { libc::$fn($($arg, )*) };
14
15 if res == -1 {
16 Err($crate::Error::Syscall(std::io::Error::last_os_error()))
17 } else {
18 Ok(res)
19 }
20 }};
21}
22
23mod error;
24mod signal;
25mod wait;
26
27pub use error::{Error, Result};
28pub use signal::{signal_block, signal_restore, Signal, SignalFd, SignalSet};
29pub use wait::{wait, WaitStatus};