diff --git a/src/syscall/futex.rs b/src/syscall/futex.rs index d6f5696a7c7e77b36b7919370a5d58d3bacc1d4d..a05e8a7a331e01edc47646c6d639cc6d6b0fa868 100644 --- a/src/syscall/futex.rs +++ b/src/syscall/futex.rs @@ -1,3 +1,7 @@ +//! # Futex +//! Futex or Fast Userspace Mutex is "a method for waiting until a certain condition becomes true." +//! +//! For more information about futexes, please read [this](https://eli.thegreenplace.net/2018/basics-of-futexes/) blog post, and the [futex(2)](http://man7.org/linux/man-pages/man2/futex.2.html) man page use alloc::arc::Arc; use alloc::VecDeque; use core::intrinsics; diff --git a/src/syscall/mod.rs b/src/syscall/mod.rs index 4881acd84adcf99911c5c8c006f587d043c7c583..f06f1de64c44380d99048b48ccd6335839ef8de1 100644 --- a/src/syscall/mod.rs +++ b/src/syscall/mod.rs @@ -46,8 +46,8 @@ pub mod time; /// Validate input pub mod validate; -/// This function is composed of an inner function that returns a `Result<usize>`, then the syscall -/// function calls [`Error::mux`] on it +/// This function is the syscall handler of the kernel, it is composed of an inner function that returns a `Result<usize>`. After the inner function runs, the syscall +/// function calls [`Error::mux`] on it. pub fn syscall(a: usize, b: usize, c: usize, d: usize, e: usize, f: usize, bp: usize, stack: &mut SyscallStack) -> usize { #[inline(always)] fn inner(a: usize, b: usize, c: usize, d: usize, e: usize, f: usize, bp: usize, stack: &mut SyscallStack) -> Result<usize> {