# 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](https://github.com/torvalds/linux), [kernel archives](https://www.kernel.org/), or wherever. ## Make nolibc from arches `[/tools/include/nolibc] make ARCH= OUTPUT=/include-kernel-headers// headers_standalone`. `` is where the linux sources are installed. `` is the Linux naming for the architecture, `aarch64` is `arm64` here. `` is this repo's root directory `` 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.](LICENSE)