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
82 downloads per month
Used in 5 crates
(via rusl)
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.