Rusty wrapper for the Unified Extensible Firmware Interface.
The top-level module contains some of the most used types, such as the result and error types, or other common data structures such as GUIDs and handles.
table module contains definitions of the UEFI tables,
which are structures containing some basic functions and references to other tables.
Most importantly, the boot services table also provides a way to obtain protocol handles.
proto module contains the standard UEFI protocols, which are normally provided
by the various UEFI drivers and firmware layers.
Unlike system tables, which are present on all UEFI implementations, protocols may or may not be present on a certain system.
For example, a PC with no network card might not contain a network driver, therefore all the network protocols will be unavailable.
pub use self::data_types::Char16;
pub use self::data_types::Char8;
pub use self::data_types::Event;
pub use self::data_types::Handle;
This module implements Rust’s global allocator interface using UEFI’s memory allocation functions.
Data type definitions
Utility functions for the most common UEFI patterns.
This optional feature adds support for the
log crate, providing
a custom logger implementation which writes to a UEFI text output protocol.
This module is used to simplify importing the most common UEFI types.
Standard UEFI tables.
Interface a C-style enum as an integer newtype.
A Latin-1 null-terminated string
An UCS-2 null-terminated string
An owned UCS-2 null-terminated string.
Errors emitted from UEFI entry point must propagate erronerous UEFI statuses, and may optionally propagate additional entry point-specific data.
A globally unique identifier
UEFI uses status codes in order to report successes, errors, and warnings.
Several entities in the UEFI specification can be referred to by their GUID, this trait is a building block to interface them in uefi-rs.
Return type of most UEFI functions. Both success and error payloads are optional.
unsafe_guid attribute macro, implements the
Identify trait for any type
(mostly works like a custom derive, but also supports type aliases)