r_efi/protocols/
driver_diagnostics2.rs

1//! Driver Diagnostics Protocol
2//!
3//! Defined in UEFI Specification, Section 11.4
4//! Used to perform diagnostics on a controller that a UEFI driver is managing.
5
6pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields(
7    0x4d330321,
8    0x025f,
9    0x4aac,
10    0x90,
11    0xd8,
12    &[0x5e, 0xd9, 0x00, 0x17, 0x3b, 0x63],
13);
14
15pub type Type = u32;
16
17pub const TYPE_STANDARD: Type = 0;
18pub const TYPE_EXTENDED: Type = 1;
19pub const TYPE_MANUFACTURING: Type = 2;
20pub const TYPE_CANCEL: Type = 3;
21pub const TYPE_MAXIMUM: Type = 4;
22
23pub type RunDiagnostics = eficall! {fn(
24    *mut Protocol,
25    crate::base::Handle,
26    crate::base::Handle,
27    Type,
28    *mut crate::base::Char8,
29    *mut *mut crate::base::Guid,
30    *mut usize,
31    *mut *mut crate::base::Char16,
32) -> crate::base::Status};
33
34#[repr(C)]
35pub struct Protocol {
36    pub run_diagnostics: RunDiagnostics,
37    pub supported_languages: *mut crate::base::Char8,
38}