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};