Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/marcusgrass/linux-rust-bindings
- Owner: MarcusGrass
- License: mpl-2.0
- Created: 2022-12-08T22:18:59.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-02-17T17:02:27.000Z (11 months ago)
- Last Synced: 2024-10-19T14:02:04.728Z (3 months ago)
- Topics: generated-code, linux, rust
- Language: Rust
- Homepage:
- Size: 114 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
- Changelog: Changelog.md
- License: LICENSE
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)