r_efi/protocols/
driver_binding.rs

1//! Driver Binding Protocol
2//!
3//! Provides the services required to determine if a driver supports a given controller. If
4//! a controller is supported, then it also provides routines to start and stop the controller.
5
6pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields(
7    0x18a031ab,
8    0xb443,
9    0x4d1a,
10    0xa5,
11    0xc0,
12    &[0x0c, 0x09, 0x26, 0x1e, 0x9f, 0x71],
13);
14
15pub type ProtocolSupported = eficall! {fn(
16    *mut Protocol,
17    crate::base::Handle,
18    *mut crate::protocols::device_path::Protocol,
19) -> crate::base::Status};
20
21pub type ProtocolStart = eficall! {fn(
22    *mut Protocol,
23    crate::base::Handle,
24    *mut crate::protocols::device_path::Protocol,
25) -> crate::base::Status};
26
27pub type ProtocolStop = eficall! {fn(
28    *mut Protocol,
29    crate::base::Handle,
30    usize,
31    *mut crate::base::Handle,
32) -> crate::base::Status};
33
34#[repr(C)]
35pub struct Protocol {
36    pub supported: ProtocolSupported,
37    pub start: ProtocolStart,
38    pub stop: ProtocolStop,
39    pub version: u32,
40    pub image_handle: crate::base::Handle,
41    pub driver_binding_handle: crate::base::Handle,
42}