uefi_raw/protocol/
mod.rs

1// SPDX-License-Identifier: MIT OR Apache-2.0
2
3//! Protocol definitions.
4//!
5//! # TL;DR
6//! Technically, a protocol is a `C` struct holding functions and/or data, with
7//! an associated [`GUID`].
8//!
9//! # About
10//! UEFI protocols are a structured collection of functions and/or data,
11//! identified by a [`GUID`], which defines an interface between components in
12//! the UEFI environment, such as between drivers, applications, or firmware
13//! services.
14//!
15//! Protocols are central to UEFI’s handle-based object model, and they provide
16//! a clean, extensible way for components to discover and use services from one
17//! another.
18//!
19//! Implementation-wise, a protocol is a `C` struct holding function pointers
20//! and/or data. Please note that some protocols may use [`core::ptr::null`] as
21//! interface. For example, the device path protocol can be implemented but
22//! return `null`.
23//!
24//! [`GUID`]: crate::Guid
25
26pub mod acpi;
27pub mod ata;
28pub mod block;
29pub mod console;
30pub mod device_path;
31pub mod disk;
32pub mod driver;
33pub mod file_system;
34pub mod firmware_volume;
35pub mod hii;
36pub mod iommu;
37pub mod loaded_image;
38pub mod media;
39pub mod memory_protection;
40pub mod misc;
41pub mod network;
42pub mod nvme;
43pub mod pci;
44pub mod rng;
45pub mod scsi;
46pub mod shell;
47pub mod shell_params;
48pub mod string;
49pub mod tcg;
50pub mod usb;