UEFI Reference Specification Protocol Constants and Definitions
The r-efi project provides the protocol constants and definitions of the UEFI Reference Specification as native rust code. The scope of this project is limited to those protocol definitions. The protocols are not actually implemented. As such, this project serves as base for any UEFI application that needs to interact with UEFI, or implement (parts of) the UEFI specification.
The requirements for this project are:
rustc >= 1.31.0
To build this project, run:
sh
cargo build
Available configuration options are:
No special requirements exist to compile for UEFI targets. Native compilations
work out of the box without any adjustments. For cross-compilations, you have
to use either cargo-xbuild
or the nightly versions of cargo
and rustc
. In
both cases, you need a nightly toolchain and the compiler sources:
```sh rustup toolchain install nightly
rustup update
rustup component add --toolchain nightly rust-src ```
Be sure to update all components to the most recent version.
sh
cargo +nightly build \
-Zbuild-std=core,compiler_builtins,alloc \
-Zbuild-std-features=compiler-builtins-mem \
--target x86_64-unknown-uefi \
--features examples \
--examples
```sh cargo install --force cargo-xbuild
cargo \ +nightly \ xbuild \ --target x86_64-unknown-uefi \ --features examples \ --examples ```
https://github.com/r-efi/r-efi.git
git@github.com:r-efi/r-efi.git