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> {