Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/marcusgrass/linux-rust-bindings

Rust libgen from Linux kernel headers
https://github.com/marcusgrass/linux-rust-bindings

generated-code linux rust

Last synced: 2 months ago
JSON representation

Rust libgen from Linux kernel headers

Awesome Lists containing this project

README

        

# 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)