4 releases

0.1.3 Dec 13, 2023
0.1.2 Dec 7, 2023
0.1.1 Jul 23, 2023
0.1.0 Jul 23, 2023

#10 in #operating

Download history 25/week @ 2024-06-16 21/week @ 2024-06-23 4/week @ 2024-06-30 2/week @ 2024-07-07 21/week @ 2024-07-14 11/week @ 2024-07-21 12/week @ 2024-07-28 13/week @ 2024-08-04 13/week @ 2024-08-11 16/week @ 2024-08-18 28/week @ 2024-08-25 13/week @ 2024-09-01 14/week @ 2024-09-08 11/week @ 2024-09-15 38/week @ 2024-09-22 17/week @ 2024-09-29

82 downloads per month
Used in 5 crates (via rusl)

MPL-2.0 license

195KB
5.5K SLoC

Rust bindings directly from the Linux sources

Constants only, since there is to my knowledge only one way to call functions directly from the kernel, and that's through the vDSO, only constants needed to communicate through the syscall API are generated.

The generated code is separated into features based on kernel headers, structs from fcntl.h is under the feature #[cfg(feature = "fcntl)], and so forth.

Get sources

Get from git, kernel archives, or wherever.

Make nolibc from arches

[<Linux source root>/tools/include/nolibc] make ARCH=<arch-linux> OUTPUT=<here>/include-kernel-headers/<arch>/ headers_standalone.
<Linux source root> is where the linux sources are installed.
<arch-linux> is the Linux naming for the architecture, aarch64 is arm64 here.
<here> is this repo's root directory <arch> is the rust notation of the architecture, ie 64-bit arm is aarch64.

Will generate the kernel headers, mind that they are licensed under LGPL or MIT.

License

This project is licensed under MPL-2.0, see the license here.

No runtime deps

Features