diff --git a/include/sys/types.h b/include/sys/types.h
index 0db183a79686cb004db55240b67f0d7a017adcbc..3efc6300b3afd8658afb6d7eba0bb6b4d979a0c5 100644
--- a/include/sys/types.h
+++ b/include/sys/types.h
@@ -8,6 +8,7 @@ typedef long dev_t;
 typedef unsigned long ino_t;
 
 typedef int gid_t;
+
 typedef int uid_t;
 
 typedef int mode_t;
@@ -18,6 +19,8 @@ typedef long off_t;
 
 typedef int pid_t;
 
+typedef unsigned id_t;
+
 typedef long ssize_t;
 
 typedef long time_t;
diff --git a/src/mman/build.rs b/src/mman/build.rs
index 652a2ae435bed32fd9f38deafb6cf95bbfd50497..19d21bd491f769e36dd29ade3296f5e3263e1216 100644
--- a/src/mman/build.rs
+++ b/src/mman/build.rs
@@ -7,5 +7,5 @@ fn main() {
     fs::create_dir_all("../../target/include").expect("failed to create include directory");
     cbindgen::generate(crate_dir)
         .expect("failed to generate bindings")
-        .write_to_file("../../target/include/mman.h");
+        .write_to_file("../../target/include/sys/mman.h");
 }
diff --git a/src/mman/cbindgen.toml b/src/mman/cbindgen.toml
index 84677294aa2cab886f5ff8b4e454eaabaa78b056..783348bace7698cb6f958d9452d886cc035a5120 100644
--- a/src/mman/cbindgen.toml
+++ b/src/mman/cbindgen.toml
@@ -1,5 +1,5 @@
-sys_includes = []
-include_guard = "_MMAN_H"
+sys_includes = ["sys/types.h"]
+include_guard = "_SYS_MMAN_H"
 language = "C"
 
 [enum]
diff --git a/src/platform/src/types.rs b/src/platform/src/types.rs
index 45ae64499d508ff2d7c5307a623ca10624751a99..9268bf55c319265d6cd424479ae4394720993799 100644
--- a/src/platform/src/types.rs
+++ b/src/platform/src/types.rs
@@ -50,6 +50,7 @@ pub type off_t = i64;
 pub type mode_t = u16;
 pub type time_t = i64;
 pub type pid_t = usize;
+pub type id_t = usize;
 pub type gid_t = usize;
 pub type uid_t = usize;
 pub type dev_t = usize;