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