linux-rust-bindings

Crates.iolinux-rust-bindings
lib.rslinux-rust-bindings
version0.1.3
sourcesrc
created_at2023-07-23 08:43:06.883527
updated_at2023-12-13 22:54:40.832227
descriptionRust structs for Linux kernel structures
homepagehttps://github.com/MarcusGrass/linux-rust-bindings
repositoryhttps://github.com/MarcusGrass/linux-rust-bindings
max_upload_size
id923656
size193,517
(MarcusGrass)

documentation

https://docs.rs/linux-rust-bindings

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, 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.

Commit count: 29

cargo fmt