summaryrefslogtreecommitdiffstats
path: root/vendor/r-efi/src/protocols/hii_database.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/r-efi/src/protocols/hii_database.rs')
-rw-r--r--vendor/r-efi/src/protocols/hii_database.rs299
1 files changed, 299 insertions, 0 deletions
diff --git a/vendor/r-efi/src/protocols/hii_database.rs b/vendor/r-efi/src/protocols/hii_database.rs
new file mode 100644
index 000000000..579c43cf2
--- /dev/null
+++ b/vendor/r-efi/src/protocols/hii_database.rs
@@ -0,0 +1,299 @@
+//! Human Interface Infrastructure (HII) Protocol
+//!
+//! Database manager for HII-related data structures.
+
+pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields(
+ 0xef9fc172,
+ 0xa1b2,
+ 0x4693,
+ 0xb3,
+ 0x27,
+ &[0x6d, 0x32, 0xfc, 0x41, 0x60, 0x42],
+);
+
+pub const SET_KEYBOARD_LAYOUT_EVENT_GUID: crate::base::Guid = crate::base::Guid::from_fields(
+ 0x14982a4f,
+ 0xb0ed,
+ 0x45b8,
+ 0xa8,
+ 0x11,
+ &[0x5a, 0x7a, 0x9b, 0xc2, 0x32, 0xdf],
+);
+
+pub type ProtocolNewPackageList = eficall! {fn(
+ *const Protocol,
+ *const crate::hii::PackageListHeader,
+ crate::base::Handle,
+ *mut crate::hii::Handle,
+) -> crate::base::Status};
+
+pub type ProtocolRemovePackageList = eficall! {fn(
+ *const Protocol,
+ crate::hii::Handle,
+) -> crate::base::Status};
+
+pub type ProtocolUpdatePackageList = eficall! {fn(
+ *const Protocol,
+ crate::hii::Handle,
+ *const crate::hii::PackageListHeader,
+) -> crate::base::Status};
+
+pub type ProtocolListPackageLists = eficall! {fn(
+ *const Protocol,
+ u8,
+ *const crate::base::Guid,
+ *mut usize,
+ *mut crate::hii::Handle,
+) -> crate::base::Status};
+
+pub type ProtocolExportPackageLists = eficall! {fn(
+ *const Protocol,
+ crate::hii::Handle,
+ *mut usize,
+ *mut crate::hii::PackageListHeader,
+) -> crate::base::Status};
+
+pub type ProtocolRegisterPackageNotify = eficall! {fn(
+ *const Protocol,
+ u8,
+ *const crate::base::Guid,
+ Notify,
+ NotifyType,
+ *mut crate::base::Handle,
+) -> crate::base::Status};
+
+pub type ProtocolUnregisterPackageNotify = eficall! {fn(
+ *const Protocol,
+ crate::base::Handle,
+) -> crate::base::Status};
+
+pub type ProtocolFindKeyboardLayouts = eficall! {fn(
+ *const Protocol,
+ *mut u16,
+ *mut crate::base::Guid,
+) -> crate::base::Status};
+
+pub type ProtocolGetKeyboardLayout = eficall! {fn(
+ *const Protocol,
+ *const crate::base::Guid,
+ *mut u16,
+ *mut KeyboardLayout,
+) -> crate::base::Status};
+
+pub type ProtocolSetKeyboardLayout = eficall! {fn(
+ *const Protocol,
+ *mut crate::base::Guid,
+) -> crate::base::Status};
+
+pub type ProtocolGetPackageListHandle = eficall! {fn(
+ *const Protocol,
+ crate::hii::Handle,
+ *mut crate::base::Handle,
+) -> crate::base::Status};
+
+#[repr(C)]
+pub struct Protocol {
+ pub new_package_list: ProtocolNewPackageList,
+ pub remove_package_list: ProtocolRemovePackageList,
+ pub update_package_list: ProtocolUpdatePackageList,
+ pub list_package_lists: ProtocolListPackageLists,
+ pub export_package_lists: ProtocolExportPackageLists,
+ pub register_package_notify: ProtocolRegisterPackageNotify,
+ pub unregister_package_notify: ProtocolUnregisterPackageNotify,
+ pub find_keyboard_layouts: ProtocolFindKeyboardLayouts,
+ pub get_keyboard_layout: ProtocolGetKeyboardLayout,
+ pub set_keyboard_layout: ProtocolSetKeyboardLayout,
+ pub get_package_list_handle: ProtocolGetPackageListHandle,
+}
+
+#[repr(C)]
+#[derive(Clone, Copy, Debug)]
+pub struct KeyboardLayout<const N: usize = 0> {
+ pub layout_length: u16,
+ pub guid: crate::base::Guid,
+ pub layout_descriptor_string_offset: u32,
+ pub descriptor_count: u8,
+ pub descriptors: [KeyDescriptor; N],
+}
+
+#[repr(C)]
+#[derive(Clone, Copy, Debug)]
+pub struct KeyDescriptor {
+ pub key: Key,
+ pub unicode: crate::base::Char16,
+ pub shifted_unicode: crate::base::Char16,
+ pub alt_gr_unicode: crate::base::Char16,
+ pub shifted_alt_gr_unicode: crate::base::Char16,
+ pub modifier: u16,
+ pub affected_attribute: u16,
+}
+
+pub const AFFECTED_BY_STANDARD_SHIFT: u16 = 0x0001;
+pub const AFFECTED_BY_CAPS_LOCK: u16 = 0x0002;
+pub const AFFECTED_BY_NUM_LOCK: u16 = 0x0004;
+
+pub type Key = u32;
+
+pub const EFI_KEY_LCTRL: Key = 0x00000000;
+pub const EFI_KEY_A0: Key = 0x00000001;
+pub const EFI_KEY_LALT: Key = 0x00000002;
+pub const EFI_KEY_SPACE_BAR: Key = 0x00000003;
+pub const EFI_KEY_A2: Key = 0x00000004;
+pub const EFI_KEY_A3: Key = 0x00000005;
+pub const EFI_KEY_A4: Key = 0x00000006;
+pub const EFI_KEY_RCTRL: Key = 0x00000007;
+pub const EFI_KEY_LEFT_ARROW: Key = 0x00000008;
+pub const EFI_KEY_DOWN_ARROW: Key = 0x00000009;
+pub const EFI_KEY_RIGHT_ARROW: Key = 0x0000000a;
+pub const EFI_KEY_ZERO: Key = 0x0000000b;
+pub const EFI_KEY_PERIOD: Key = 0x0000000c;
+pub const EFI_KEY_ENTER: Key = 0x0000000d;
+pub const EFI_KEY_LSHIFT: Key = 0x0000000e;
+pub const EFI_KEY_B0: Key = 0x0000000f;
+pub const EFI_KEY_B1: Key = 0x00000010;
+pub const EFI_KEY_B2: Key = 0x00000011;
+pub const EFI_KEY_B3: Key = 0x00000012;
+pub const EFI_KEY_B4: Key = 0x00000013;
+pub const EFI_KEY_B5: Key = 0x00000014;
+pub const EFI_KEY_B6: Key = 0x00000015;
+pub const EFI_KEY_B7: Key = 0x00000016;
+pub const EFI_KEY_B8: Key = 0x00000017;
+pub const EFI_KEY_B9: Key = 0x00000018;
+pub const EFI_KEY_B10: Key = 0x00000019;
+pub const EFI_KEY_RSHIFT: Key = 0x0000001a;
+pub const EFI_KEY_UP_ARROW: Key = 0x0000001b;
+pub const EFI_KEY_ONE: Key = 0x0000001c;
+pub const EFI_KEY_TWO: Key = 0x0000001d;
+pub const EFI_KEY_THREE: Key = 0x0000001e;
+pub const EFI_KEY_CAPS_LOCK: Key = 0x0000001f;
+pub const EFI_KEY_C1: Key = 0x00000020;
+pub const EFI_KEY_C2: Key = 0x00000021;
+pub const EFI_KEY_C3: Key = 0x00000022;
+pub const EFI_KEY_C4: Key = 0x00000023;
+pub const EFI_KEY_C5: Key = 0x00000024;
+pub const EFI_KEY_C6: Key = 0x00000025;
+pub const EFI_KEY_C7: Key = 0x00000026;
+pub const EFI_KEY_C8: Key = 0x00000027;
+pub const EFI_KEY_C9: Key = 0x00000028;
+pub const EFI_KEY_C10: Key = 0x00000029;
+pub const EFI_KEY_C11: Key = 0x0000002a;
+pub const EFI_KEY_C12: Key = 0x0000002b;
+pub const EFI_KEY_FOUR: Key = 0x0000002c;
+pub const EFI_KEY_FIVE: Key = 0x0000002d;
+pub const EFI_KEY_SIX: Key = 0x0000002e;
+pub const EFI_KEY_PLUS: Key = 0x0000002f;
+pub const EFI_KEY_TAB: Key = 0x00000030;
+pub const EFI_KEY_D1: Key = 0x00000031;
+pub const EFI_KEY_D2: Key = 0x00000032;
+pub const EFI_KEY_D3: Key = 0x00000033;
+pub const EFI_KEY_D4: Key = 0x00000034;
+pub const EFI_KEY_D5: Key = 0x00000035;
+pub const EFI_KEY_D6: Key = 0x00000036;
+pub const EFI_KEY_D7: Key = 0x00000037;
+pub const EFI_KEY_D8: Key = 0x00000038;
+pub const EFI_KEY_D9: Key = 0x00000039;
+pub const EFI_KEY_D10: Key = 0x0000003a;
+pub const EFI_KEY_D11: Key = 0x0000003b;
+pub const EFI_KEY_D12: Key = 0x0000003c;
+pub const EFI_KEY_D13: Key = 0x0000003d;
+pub const EFI_KEY_DEL: Key = 0x0000003e;
+pub const EFI_KEY_END: Key = 0x0000003f;
+pub const EFI_KEY_PGDN: Key = 0x00000040;
+pub const EFI_KEY_SEVEN: Key = 0x00000041;
+pub const EFI_KEY_EIGHT: Key = 0x00000042;
+pub const EFI_KEY_NINE: Key = 0x00000043;
+pub const EFI_KEY_E0: Key = 0x00000044;
+pub const EFI_KEY_E1: Key = 0x00000045;
+pub const EFI_KEY_E2: Key = 0x00000046;
+pub const EFI_KEY_E3: Key = 0x00000047;
+pub const EFI_KEY_E4: Key = 0x00000048;
+pub const EFI_KEY_E5: Key = 0x00000049;
+pub const EFI_KEY_E6: Key = 0x0000004a;
+pub const EFI_KEY_E7: Key = 0x0000004b;
+pub const EFI_KEY_E8: Key = 0x0000004c;
+pub const EFI_KEY_E9: Key = 0x0000004d;
+pub const EFI_KEY_E10: Key = 0x0000004e;
+pub const EFI_KEY_E11: Key = 0x0000004f;
+pub const EFI_KEY_E12: Key = 0x00000050;
+pub const EFI_KEY_BACK_SPACE: Key = 0x00000051;
+pub const EFI_KEY_INS: Key = 0x00000052;
+pub const EFI_KEY_HOME: Key = 0x00000053;
+pub const EFI_KEY_PGUP: Key = 0x00000054;
+pub const EFI_KEY_NLCK: Key = 0x00000055;
+pub const EFI_KEY_SLASH: Key = 0x00000056;
+pub const EFI_KEY_ASTERISK: Key = 0x00000057;
+pub const EFI_KEY_MINUS: Key = 0x00000058;
+pub const EFI_KEY_ESC: Key = 0x00000059;
+pub const EFI_KEY_F1: Key = 0x0000005a;
+pub const EFI_KEY_F2: Key = 0x0000005b;
+pub const EFI_KEY_F3: Key = 0x0000005c;
+pub const EFI_KEY_F4: Key = 0x0000005d;
+pub const EFI_KEY_F5: Key = 0x0000005e;
+pub const EFI_KEY_F6: Key = 0x0000005f;
+pub const EFI_KEY_F7: Key = 0x00000060;
+pub const EFI_KEY_F8: Key = 0x00000061;
+pub const EFI_KEY_F9: Key = 0x00000062;
+pub const EFI_KEY_F10: Key = 0x00000063;
+pub const EFI_KEY_F11: Key = 0x00000064;
+pub const EFI_KEY_F12: Key = 0x00000065;
+pub const EFI_KEY_PRINT: Key = 0x00000066;
+pub const EFI_KEY_SLCK: Key = 0x00000067;
+pub const EFI_KEY_PAUSE: Key = 0x00000068;
+
+pub const NULL_MODIFIER: u16 = 0x0000;
+pub const LEFT_CONTROL_MODIFIER: u16 = 0x0001;
+pub const RIGHT_CONTROL_MODIFIER: u16 = 0x0002;
+pub const LEFT_ALT_MODIFIER: u16 = 0x0003;
+pub const RIGHT_ALT_MODIFIER: u16 = 0x0004;
+pub const ALT_GR_MODIFIER: u16 = 0x0005;
+pub const INSERT_MODIFIER: u16 = 0x0006;
+pub const DELETE_MODIFIER: u16 = 0x0007;
+pub const PAGE_DOWN_MODIFIER: u16 = 0x0008;
+pub const PAGE_UP_MODIFIER: u16 = 0x0009;
+pub const HOME_MODIFIER: u16 = 0x000A;
+pub const END_MODIFIER: u16 = 0x000B;
+pub const LEFT_SHIFT_MODIFIER: u16 = 0x000C;
+pub const RIGHT_SHIFT_MODIFIER: u16 = 0x000D;
+pub const CAPS_LOCK_MODIFIER: u16 = 0x000E;
+pub const NUM_LOCK_MODIFIER: u16 = 0x000F;
+pub const LEFT_ARROW_MODIFIER: u16 = 0x0010;
+pub const RIGHT_ARROW_MODIFIER: u16 = 0x0011;
+pub const DOWN_ARROW_MODIFIER: u16 = 0x0012;
+pub const UP_ARROW_MODIFIER: u16 = 0x0013;
+pub const NS_KEY_MODIFIER: u16 = 0x0014;
+pub const NS_KEY_DEPENDENCY_MODIFIER: u16 = 0x0015;
+pub const FUNCTION_KEY_ONE_MODIFIER: u16 = 0x0016;
+pub const FUNCTION_KEY_TWO_MODIFIER: u16 = 0x0017;
+pub const FUNCTION_KEY_THREE_MODIFIER: u16 = 0x0018;
+pub const FUNCTION_KEY_FOUR_MODIFIER: u16 = 0x0019;
+pub const FUNCTION_KEY_FIVE_MODIFIER: u16 = 0x001A;
+pub const FUNCTION_KEY_SIX_MODIFIER: u16 = 0x001B;
+pub const FUNCTION_KEY_SEVEN_MODIFIER: u16 = 0x001C;
+pub const FUNCTION_KEY_EIGHT_MODIFIER: u16 = 0x001D;
+pub const FUNCTION_KEY_NINE_MODIFIER: u16 = 0x001E;
+pub const FUNCTION_KEY_TEN_MODIFIER: u16 = 0x001F;
+pub const FUNCTION_KEY_ELEVEN_MODIFIER: u16 = 0x0020;
+pub const FUNCTION_KEY_TWELVE_MODIFIER: u16 = 0x0021;
+pub const PRINT_MODIFIER: u16 = 0x0022;
+pub const SYS_REQUEST_MODIFIER: u16 = 0x0023;
+pub const SCROLL_LOCK_MODIFIER: u16 = 0x0024;
+pub const PAUSE_MODIFIER: u16 = 0x0025;
+pub const BREAK_MODIFIER: u16 = 0x0026;
+pub const LEFT_LOGO_MODIFIER: u16 = 0x0027;
+pub const RIGHT_LOGO_MODIFIER: u16 = 0x0028;
+pub const MENU_MODIFIER: u16 = 0x0029;
+
+pub type Notify = eficall! {fn(
+ u8,
+ *const crate::base::Guid,
+ *const crate::hii::PackageHeader,
+ crate::hii::Handle,
+ NotifyType,
+) -> crate::base::Status};
+
+pub type NotifyType = usize;
+
+pub const NOTIFY_NEW_PACK: NotifyType = 0x00000001;
+pub const NOTIFY_REMOVE_PACK: NotifyType = 0x00000002;
+pub const NOTIFY_EXPORT_PACK: NotifyType = 0x00000004;
+pub const NOTIFY_ADD_PACK: NotifyType = 0x00000008;