r_efi/protocols/
shell_dynamic_command.rs

1//! Shell Dynamic Command Protocol
2//!
3//! Defined in UEFI Shell Specification, Section 2.4
4
5use super::{shell, shell_parameters};
6
7pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields(
8    0x3c7200e9,
9    0x005f,
10    0x4ea4,
11    0x87,
12    0xde,
13    &[0xa3, 0xdf, 0xac, 0x8a, 0x27, 0xc3],
14);
15
16pub type CommandHandler = eficall! {fn(
17    *mut Protocol,
18    *mut crate::system::SystemTable,
19    *mut shell_parameters::Protocol,
20    *mut shell::Protocol,
21) -> crate::base::Status};
22
23pub type CommandGetHelp = eficall! {fn(
24    *mut Protocol,
25    *mut crate::base::Char8,
26) -> crate::base::Status};
27
28#[repr(C)]
29pub struct Protocol {
30    pub command_name: *mut crate::base::Char16,
31    pub handler: CommandHandler,
32    pub get_help: CommandGetHelp,
33}