uefi_raw/protocol/
driver.rs1use crate::protocol::device_path::DevicePathProtocol;
4use crate::{guid, Guid, Handle, Status};
5
6#[derive(Debug)]
7#[repr(C)]
8pub struct DriverBindingProtocol {
9 pub supported: unsafe extern "efiapi" fn(
10 this: *const Self,
11 controller_handle: Handle,
12 remaining_device_path: *const DevicePathProtocol,
13 ) -> Status,
14 pub start: unsafe extern "efiapi" fn(
15 this: *const Self,
16 controller_handle: Handle,
17 remaining_device_path: *const DevicePathProtocol,
18 ) -> Status,
19 pub stop: unsafe extern "efiapi" fn(
20 this: *const Self,
21 controller_handle: Handle,
22 number_of_children: usize,
23 child_handle_buffer: *const Handle,
24 ) -> Status,
25 pub version: u32,
26 pub image_handle: Handle,
27 pub driver_binding_handle: Handle,
28}
29
30impl DriverBindingProtocol {
31 pub const GUID: Guid = guid!("18a031ab-b443-4d1a-a5c0-0c09261e9f71");
32}
33
34#[derive(Debug)]
35#[repr(C)]
36pub struct ComponentName2Protocol {
37 pub get_driver_name: unsafe extern "efiapi" fn(
38 this: *const Self,
39 language: *const u8,
40 driver_name: *mut *const u16,
41 ) -> Status,
42 pub get_controller_name: unsafe extern "efiapi" fn(
43 this: *const Self,
44 controller_handle: Handle,
45 child_handle: Handle,
46 language: *const u8,
47 controller_name: *mut *const u16,
48 ) -> Status,
49 pub supported_languages: *const u8,
50}
51
52impl ComponentName2Protocol {
53 pub const GUID: Guid = guid!("6a7a5cff-e8d9-4f70-bada-75ab3025ce14");
54
55 pub const DEPRECATED_COMPONENT_NAME_GUID: Guid = guid!("107a772c-d5e1-11d4-9a46-0090273fc14d");
61}
62
63#[derive(Debug)]
64#[repr(C)]
65pub struct ServiceBindingProtocol {
66 pub create_child:
67 unsafe extern "efiapi" fn(this: *mut Self, child_handle: *mut Handle) -> Status,
68 pub destroy_child: unsafe extern "efiapi" fn(this: *mut Self, child_handle: Handle) -> Status,
69}