1301 lines
27 KiB
Rust
1301 lines
27 KiB
Rust
//! Human Interface Infrastructure (HII)
|
|
//!
|
|
//! This module contains bindings and definitions copied from Section 33.3 of
|
|
//! the UEFI spec, as well as the core HII related definitions.
|
|
|
|
//
|
|
// Core HII Definitions
|
|
//
|
|
|
|
// This is the exception to the rule. It's defined in 34.8 (HII_DATABASE
|
|
// protocol), not 33.3, but it's used throughout the HII protocols, so it makes
|
|
// sense to be defined at the base.
|
|
pub type Handle = *mut core::ffi::c_void;
|
|
|
|
//
|
|
// 33.3.1 Package Lists and Package Headers
|
|
//
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct PackageHeader<const N: usize = 0> {
|
|
pub length: [u8; 3],
|
|
pub r#type: u8,
|
|
pub data: [u8; N],
|
|
}
|
|
|
|
pub const PACKAGE_TYPE_ALL: u8 = 0x00;
|
|
pub const PACKAGE_TYPE_GUID: u8 = 0x01;
|
|
pub const PACKAGE_FORMS: u8 = 0x02;
|
|
pub const PACKAGE_STRINGS: u8 = 0x04;
|
|
pub const PACKAGE_FONTS: u8 = 0x05;
|
|
pub const PACKAGE_IMAGES: u8 = 0x06;
|
|
pub const PACKAGE_SIMPLE_FONTS: u8 = 0x07;
|
|
pub const PACKAGE_DEVICE_PATH: u8 = 0x08;
|
|
pub const PACKAGE_KEYBOARD_LAYOUT: u8 = 0x09;
|
|
pub const PACKAGE_ANIMATIONS: u8 = 0x0A;
|
|
pub const PACKAGE_END: u8 = 0xDF;
|
|
pub const PACKAGE_TYPE_SYSTEM_BEGIN: u8 = 0xE0;
|
|
pub const PACKAGE_TYPE_SYSTEM_END: u8 = 0xFF;
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct PackageListHeader {
|
|
pub package_list_guid: crate::base::Guid,
|
|
pub package_length: u32,
|
|
}
|
|
|
|
//
|
|
// 33.3.3 Font Package
|
|
//
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct FontPackageHdr<const N: usize = 0> {
|
|
pub header: PackageHeader,
|
|
pub hdr_size: u32,
|
|
pub glyph_block_offset: u32,
|
|
pub cell: GlyphInfo,
|
|
pub font_style: FontStyle,
|
|
pub font_family: [crate::base::Char16; N],
|
|
}
|
|
|
|
pub type FontStyle = u32;
|
|
|
|
pub const FONT_STYLE_NORMAL: FontStyle = 0x00000000;
|
|
pub const FONT_STYLE_BOLD: FontStyle = 0x00000001;
|
|
pub const FONT_STYLE_ITALIC: FontStyle = 0x00000002;
|
|
pub const FONT_STYLE_EMBOSS: FontStyle = 0x00010000;
|
|
pub const FONT_STYLE_OUTLINE: FontStyle = 0x00020000;
|
|
pub const FONT_STYLE_SHADOW: FontStyle = 0x00040000;
|
|
pub const FONT_STYLE_UNDERLINE: FontStyle = 0x00080000;
|
|
pub const FONT_STYLE_DBL_UNDER: FontStyle = 0x00100000;
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct GlyphBlock<const N: usize = 0> {
|
|
pub block_type: u8,
|
|
pub block_body: [u8; N],
|
|
}
|
|
|
|
pub const GIBT_END: u8 = 0x00;
|
|
pub const GIBT_GLYPH: u8 = 0x10;
|
|
pub const GIBT_GLYPHS: u8 = 0x11;
|
|
pub const GIBT_GLYPH_DEFAULT: u8 = 0x12;
|
|
pub const GIBT_GLYPHS_DEFAULT: u8 = 0x13;
|
|
pub const GIBT_GLYPH_VARIABILITY: u8 = 0x14;
|
|
pub const GIBT_DUPLICATE: u8 = 0x20;
|
|
pub const GIBT_SKIP2: u8 = 0x21;
|
|
pub const GIBT_SKIP1: u8 = 0x22;
|
|
pub const GIBT_DEFAULTS: u8 = 0x23;
|
|
pub const GIBT_EXT1: u8 = 0x30;
|
|
pub const GIBT_EXT2: u8 = 0x31;
|
|
pub const GIBT_EXT4: u8 = 0x32;
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct GlyphInfo {
|
|
pub width: u16,
|
|
pub height: u16,
|
|
pub offset_x: i16,
|
|
pub offset_y: i16,
|
|
pub advance_x: i16,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct GibtDefaultsBlock {
|
|
pub header: GlyphBlock,
|
|
pub cell: GlyphInfo,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct GibtDuplicateBlock {
|
|
pub header: GlyphBlock,
|
|
pub char_value: crate::base::Char16,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct GlyphGibtEndBlock {
|
|
pub header: GlyphBlock,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct GibtExt1Block {
|
|
pub header: GlyphBlock,
|
|
pub block_type_2: u8,
|
|
pub length: u8,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct GibtExt2Block {
|
|
pub header: GlyphBlock,
|
|
pub block_type_2: u8,
|
|
pub length: u16,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct GibtExt4Block {
|
|
pub header: GlyphBlock,
|
|
pub block_type_2: u8,
|
|
pub length: u32,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct GibtGlyphBlock<const N: usize = 0> {
|
|
pub header: GlyphBlock,
|
|
pub cell: GlyphInfo,
|
|
pub bitmap_data: [u8; N],
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct GibtGlyphsBlock<const N: usize = 0> {
|
|
pub header: GlyphBlock,
|
|
pub cell: GlyphInfo,
|
|
pub count: u16,
|
|
pub bitmap_data: [u8; N],
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct GibtGlyphDefaultBlock<const N: usize = 0> {
|
|
pub header: GlyphBlock,
|
|
pub bitmap_data: [u8; N],
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct GibtGlypshDefaultBlock<const N: usize = 0> {
|
|
pub header: GlyphBlock,
|
|
pub count: u16,
|
|
pub bitmap_data: [u8; N],
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct GibtSkip2Block {
|
|
pub header: GlyphBlock,
|
|
pub skip_count: u16,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct GibtSkip1Block {
|
|
pub header: GlyphBlock,
|
|
pub skip_count: u8,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct GibtVariabilityBlock<const N: usize = 0> {
|
|
pub header: GlyphBlock,
|
|
pub cell: GlyphInfo,
|
|
pub glyph_pack_in_bits: u8,
|
|
pub bitmap_data: [u8; N],
|
|
}
|
|
|
|
//
|
|
// 33.3.8 Forms Package
|
|
//
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct FormPackageHdr {
|
|
pub header: PackageHeader,
|
|
pub op_code_header: IfrOpHeader,
|
|
// Op-Codes Follow...
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrOpHeader {
|
|
pub op_code: u8,
|
|
pub length_and_scope: u8, // Length:7, Scope:1
|
|
}
|
|
|
|
pub type QuestionId = u16;
|
|
pub type ImageId = u16;
|
|
pub type StringId = u16;
|
|
pub type FormId = u16;
|
|
pub type VarstoreId = u16;
|
|
pub type AnimationId = u16;
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy)]
|
|
pub struct IfrQuestionHeader {
|
|
pub header: IfrStatementHeader,
|
|
pub question_id: QuestionId,
|
|
pub var_store_id: VarstoreId,
|
|
pub var_store_info: IfrQuestionHeaderVarstoreInfo,
|
|
pub flags: u8,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy)]
|
|
pub union IfrQuestionHeaderVarstoreInfo {
|
|
pub var_name: StringId,
|
|
pub var_offset: u16,
|
|
}
|
|
|
|
pub const IFR_FLAG_READ_ONLY: u8 = 0x01;
|
|
pub const IFR_FLAG_CALLBACK: u8 = 0x04;
|
|
pub const IFR_FLAG_RESET_REQUIRED: u8 = 0x10;
|
|
pub const IFR_FLAG_REST_STYLE: u8 = 0x20;
|
|
pub const IFR_FLAG_RECONNECT_REQUIRED: u8 = 0x40;
|
|
pub const IFR_FLAG_OPTIONS_ONLY: u8 = 0x80;
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrStatementHeader {
|
|
pub prompt: StringId,
|
|
pub help: StringId,
|
|
}
|
|
|
|
pub const IFR_FORM_OP: u8 = 0x01;
|
|
pub const IFR_SUBTITLE_OP: u8 = 0x02;
|
|
pub const IFR_TEXT_OP: u8 = 0x03;
|
|
pub const IFR_IMAGE_OP: u8 = 0x04;
|
|
pub const IFR_ONE_OF_OP: u8 = 0x05;
|
|
pub const IFR_CHECKBOX_OP: u8 = 0x06;
|
|
pub const IFR_NUMERIC_OP: u8 = 0x07;
|
|
pub const IFR_PASSWORD_OP: u8 = 0x08;
|
|
pub const IFR_ONE_OF_OPTION_OP: u8 = 0x09;
|
|
pub const IFR_SUPPRESS_IF_OP: u8 = 0x0A;
|
|
pub const IFR_LOCKED_OP: u8 = 0x0B;
|
|
pub const IFR_ACTION_OP: u8 = 0x0C;
|
|
pub const IFR_RESET_BUTTON_OP: u8 = 0x0D;
|
|
pub const IFR_FORM_SET_OP: u8 = 0x0E;
|
|
pub const IFR_REF_OP: u8 = 0x0F;
|
|
pub const IFR_NO_SUBMIT_IF_OP: u8 = 0x10;
|
|
pub const IFR_INCONSISTENT_IF_OP: u8 = 0x11;
|
|
pub const IFR_EQ_ID_VAL_OP: u8 = 0x12;
|
|
pub const IFR_EQ_ID_ID_OP: u8 = 0x13;
|
|
pub const IFR_EQ_ID_VAL_LIST_OP: u8 = 0x14;
|
|
pub const IFR_AND_OP: u8 = 0x15;
|
|
pub const IFR_OR_OP: u8 = 0x16;
|
|
pub const IFR_NOT_OP: u8 = 0x17;
|
|
pub const IFR_RULE_OP: u8 = 0x18;
|
|
pub const IFR_GRAY_OUT_IF_OP: u8 = 0x19;
|
|
pub const IFR_DATE_OP: u8 = 0x1A;
|
|
pub const IFR_TIME_OP: u8 = 0x1B;
|
|
pub const IFR_STRING_OP: u8 = 0x1C;
|
|
pub const IFR_REFRESH_OP: u8 = 0x1D;
|
|
pub const IFR_DISABLE_IF_OP: u8 = 0x1E;
|
|
pub const IFR_ANIMATION_OP: u8 = 0x1F;
|
|
pub const IFR_TO_LOWER_OP: u8 = 0x20;
|
|
pub const IFR_TO_UPPER_OP: u8 = 0x21;
|
|
pub const IFR_MAP_OP: u8 = 0x22;
|
|
pub const IFR_ORDERED_LIST_OP: u8 = 0x23;
|
|
pub const IFR_VARSTORE_OP: u8 = 0x24;
|
|
pub const IFR_VARSTORE_NAME_VALUE_OP: u8 = 0x25;
|
|
pub const IFR_VARSTORE_EFI_OP: u8 = 0x26;
|
|
pub const IFR_VARSTORE_DEVICE_OP: u8 = 0x27;
|
|
pub const IFR_VERSION_OP: u8 = 0x28;
|
|
pub const IFR_END_OP: u8 = 0x29;
|
|
pub const IFR_MATCH_OP: u8 = 0x2A;
|
|
pub const IFR_GET_OP: u8 = 0x2B;
|
|
pub const IFR_SET_OP: u8 = 0x2C;
|
|
pub const IFR_READ_OP: u8 = 0x2D;
|
|
pub const IFR_WRITE_OP: u8 = 0x2E;
|
|
pub const IFR_EQUAL_OP: u8 = 0x2F;
|
|
pub const IFR_NOT_EQUAL_OP: u8 = 0x30;
|
|
pub const IFR_GREATER_THAN_OP: u8 = 0x31;
|
|
pub const IFR_GREATER_EQUAL_OP: u8 = 0x32;
|
|
pub const IFR_LESS_THAN_OP: u8 = 0x33;
|
|
pub const IFR_LESS_EQUAL_OP: u8 = 0x34;
|
|
pub const IFR_BITWISE_AND_OP: u8 = 0x35;
|
|
pub const IFR_BITWISE_OR_OP: u8 = 0x36;
|
|
pub const IFR_BITWISE_NOT_OP: u8 = 0x37;
|
|
pub const IFR_SHIFT_LEFT_OP: u8 = 0x38;
|
|
pub const IFR_SHIFT_RIGHT_OP: u8 = 0x39;
|
|
pub const IFR_ADD_OP: u8 = 0x3A;
|
|
pub const IFR_SUBTRACT_OP: u8 = 0x3B;
|
|
pub const IFR_MULTIPLY_OP: u8 = 0x3C;
|
|
pub const IFR_DIVIDE_OP: u8 = 0x3D;
|
|
pub const IFR_MODULO_OP: u8 = 0x3E;
|
|
pub const IFR_RULE_REF_OP: u8 = 0x3F;
|
|
pub const IFR_QUESTION_REF1_OP: u8 = 0x40;
|
|
pub const IFR_QUESTION_REF2_OP: u8 = 0x41;
|
|
pub const IFR_UINT8_OP: u8 = 0x42;
|
|
pub const IFR_UINT16_OP: u8 = 0x43;
|
|
pub const IFR_UINT32_OP: u8 = 0x44;
|
|
pub const IFR_UINT64_OP: u8 = 0x45;
|
|
pub const IFR_TRUE_OP: u8 = 0x46;
|
|
pub const IFR_FALSE_OP: u8 = 0x47;
|
|
pub const IFR_TO_UINT_OP: u8 = 0x48;
|
|
pub const IFR_TO_STRING_OP: u8 = 0x49;
|
|
pub const IFR_TO_BOOLEAN_OP: u8 = 0x4A;
|
|
pub const IFR_MID_OP: u8 = 0x4B;
|
|
pub const IFR_FIND_OP: u8 = 0x4C;
|
|
pub const IFR_TOKEN_OP: u8 = 0x4D;
|
|
pub const IFR_STRING_REF1_OP: u8 = 0x4E;
|
|
pub const IFR_STRING_REF2_OP: u8 = 0x4F;
|
|
pub const IFR_CONDITIONAL_OP: u8 = 0x50;
|
|
pub const IFR_QUESTION_REF3_OP: u8 = 0x51;
|
|
pub const IFR_ZERO_OP: u8 = 0x52;
|
|
pub const IFR_ONE_OP: u8 = 0x53;
|
|
pub const IFR_ONES_OP: u8 = 0x54;
|
|
pub const IFR_UNDEFINED_OP: u8 = 0x55;
|
|
pub const IFR_LENGTH_OP: u8 = 0x56;
|
|
pub const IFR_DUP_OP: u8 = 0x57;
|
|
pub const IFR_THIS_OP: u8 = 0x58;
|
|
pub const IFR_SPAN_OP: u8 = 0x59;
|
|
pub const IFR_VALUE_OP: u8 = 0x5A;
|
|
pub const IFR_DEFAULT_OP: u8 = 0x5B;
|
|
pub const IFR_DEFAULTSTORE_OP: u8 = 0x5C;
|
|
pub const IFR_FORM_MAP_OP: u8 = 0x5D;
|
|
pub const IFR_CATENATE_OP: u8 = 0x5E;
|
|
pub const IFR_GUID_OP: u8 = 0x5F;
|
|
pub const IFR_SECURITY_OP: u8 = 0x60;
|
|
pub const IFR_MODAL_TAG_OP: u8 = 0x61;
|
|
pub const IFR_REFRESH_ID_OP: u8 = 0x62;
|
|
pub const IFR_WARNING_IF_OP: u8 = 0x63;
|
|
pub const IFR_MATCH2_OP: u8 = 0x64;
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy)]
|
|
pub struct IfrAction {
|
|
pub header: IfrOpHeader,
|
|
pub question: IfrQuestionHeader,
|
|
pub question_config: StringId,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy)]
|
|
pub struct IfrAction1 {
|
|
pub header: IfrOpHeader,
|
|
pub question: IfrQuestionHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrAnimation {
|
|
pub header: IfrOpHeader,
|
|
pub id: AnimationId,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrAdd {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrAnd {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrBitwiseAnd {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrBitwiseNot {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrBitwiseOr {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrCatenate {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy)]
|
|
pub struct IfrCheckbox {
|
|
pub header: IfrOpHeader,
|
|
pub question: IfrQuestionHeader,
|
|
pub flags: u8,
|
|
}
|
|
|
|
pub const IFR_CHECKBOX_DEFAULT: u8 = 0x01;
|
|
pub const IFR_CHECKBOX_DEFAULT_MFG: u8 = 0x02;
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrConditional {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy)]
|
|
pub struct IfrDate {
|
|
pub header: IfrOpHeader,
|
|
pub question: IfrQuestionHeader,
|
|
pub flags: u8,
|
|
}
|
|
|
|
pub const QF_DATE_YEAR_SUPPRESS: u8 = 0x01;
|
|
pub const QF_DATE_MONTH_SUPPRESS: u8 = 0x02;
|
|
pub const QF_DATE_DAY_SUPPRESS: u8 = 0x04;
|
|
pub const QF_DATE_STORAGE: u8 = 0x30;
|
|
|
|
pub const QF_DATE_STORAGE_NORMAL: u8 = 0x00;
|
|
pub const QF_DATE_STORAGE_TIME: u8 = 0x10;
|
|
pub const QF_DATE_STORAGE_WAKEUP: u8 = 0x20;
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy)]
|
|
pub struct IfrDefault {
|
|
pub header: IfrOpHeader,
|
|
pub default_id: u16,
|
|
pub r#type: u8,
|
|
pub value: IfrTypeValue,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrDefault2 {
|
|
pub header: IfrOpHeader,
|
|
pub default_id: u16,
|
|
pub r#type: u8,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrDefaultstore {
|
|
pub header: IfrOpHeader,
|
|
pub default_name: StringId,
|
|
pub default_id: u16,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrDisableIf {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrDivide {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrDup {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrEnd {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrEqual {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrEqIdId {
|
|
pub header: IfrOpHeader,
|
|
pub question_id_1: QuestionId,
|
|
pub question_id_2: QuestionId,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrEqIdValList<const N: usize = 0> {
|
|
pub header: IfrOpHeader,
|
|
pub question_id: QuestionId,
|
|
pub list_length: u16,
|
|
pub value_list: [u16; N],
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrEqIdVal {
|
|
pub header: IfrOpHeader,
|
|
pub question_id: QuestionId,
|
|
pub value: u16,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrFalse {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrFind {
|
|
pub header: IfrOpHeader,
|
|
pub format: u8,
|
|
}
|
|
|
|
pub const IFR_FF_CASE_SENSITIVE: u8 = 0x00;
|
|
pub const IFR_FF_CASE_INSENSITIVE: u8 = 0x01;
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrForm {
|
|
pub header: IfrOpHeader,
|
|
pub form_id: FormId,
|
|
pub form_title: StringId,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrFormMapMethod {
|
|
pub method_title: StringId,
|
|
pub method_identifier: crate::base::Guid,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrFormMap<const N: usize = 0> {
|
|
pub header: IfrOpHeader,
|
|
pub form_id: FormId,
|
|
pub methods: [IfrFormMapMethod; N],
|
|
}
|
|
|
|
pub const STANDARD_FORM_GUID: crate::base::Guid = crate::base::Guid::from_fields(
|
|
0x3bd2f4ec,
|
|
0xe524,
|
|
0x46e4,
|
|
0xa9,
|
|
0xd8,
|
|
&[0x51, 0x01, 0x17, 0x42, 0x55, 0x62],
|
|
);
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrFormSet<const N: usize = 0> {
|
|
pub header: IfrOpHeader,
|
|
pub guid: crate::base::Guid,
|
|
pub form_set_title: StringId,
|
|
pub help: StringId,
|
|
pub flags: u8,
|
|
pub class_guid: [crate::base::Guid; N],
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy)]
|
|
pub struct IfrGet {
|
|
pub header: IfrOpHeader,
|
|
pub var_store_id: VarstoreId,
|
|
pub var_store_info: IfrGetVarStoreInfo,
|
|
pub var_store_type: u8,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy)]
|
|
pub union IfrGetVarStoreInfo {
|
|
pub var_name: StringId,
|
|
pub var_offset: u16,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrGrayOutIf {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrGreaterEqual {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrGreaterThan {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrGuid {
|
|
pub header: IfrOpHeader,
|
|
pub guid: crate::base::Guid,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrImage {
|
|
pub id: ImageId,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrInconsistentIf {
|
|
pub header: IfrOpHeader,
|
|
pub error: StringId,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrLength {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrLessEqual {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrLessThan {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrLocked {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrMap {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrMatch {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrMid {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrModalTag {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrModulo {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrMultiply {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrNot {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrNotEqual {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrNoSubmitIf {
|
|
pub header: IfrOpHeader,
|
|
pub error: StringId,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrNumericDataU8 {
|
|
pub min_value: u8,
|
|
pub max_value: u8,
|
|
pub step: u8,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrNumericDataU16 {
|
|
pub min_value: u16,
|
|
pub max_value: u16,
|
|
pub step: u16,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrNumericDataU32 {
|
|
pub min_value: u32,
|
|
pub max_value: u32,
|
|
pub step: u32,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrNumericDataU64 {
|
|
pub min_value: u64,
|
|
pub max_value: u64,
|
|
pub step: u64,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy)]
|
|
pub union IfrNumericData {
|
|
pub r#u8: IfrNumericDataU8,
|
|
pub r#u16: IfrNumericDataU16,
|
|
pub r#u32: IfrNumericDataU32,
|
|
pub r#u64: IfrNumericDataU64,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy)]
|
|
pub struct IfrNumeric {
|
|
pub header: IfrOpHeader,
|
|
pub question: IfrQuestionHeader,
|
|
pub flags: u8,
|
|
pub data: IfrNumericData,
|
|
}
|
|
|
|
pub const IFR_NUMERIC_SIZE: u8 = 0x03;
|
|
pub const IFR_NUMERIC_SIZE_1: u8 = 0x00;
|
|
pub const IFR_NUMERIC_SIZE_2: u8 = 0x01;
|
|
pub const IFR_NUMERIC_SIZE_4: u8 = 0x02;
|
|
pub const IFR_NUMERIC_SIZE_8: u8 = 0x03;
|
|
|
|
pub const IFR_DISPLAY: u8 = 0x30;
|
|
pub const IFR_DISPLAY_INT_DEC: u8 = 0x00;
|
|
pub const IFR_DISPLAY_UINT_DEC: u8 = 0x10;
|
|
pub const IFR_DISPLAY_UINT_HEX: u8 = 0x20;
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrOne {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrOnes {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
type IfrOneOfData = IfrNumericData;
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy)]
|
|
pub struct IfrOneOf {
|
|
pub header: IfrOpHeader,
|
|
pub question: IfrQuestionHeader,
|
|
pub flags: u8,
|
|
pub data: IfrOneOfData,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy)]
|
|
pub struct IfrOneOfOption {
|
|
pub header: IfrOpHeader,
|
|
pub option: StringId,
|
|
pub flags: u8,
|
|
pub r#type: u8,
|
|
pub value: IfrTypeValue,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy)]
|
|
pub union IfrTypeValue<const N: usize = 0> {
|
|
pub r#u8: u8,
|
|
pub r#u16: u16,
|
|
pub r#u32: u32,
|
|
pub r#u64: u64,
|
|
pub b: crate::base::Boolean,
|
|
pub time: Time,
|
|
pub date: Date,
|
|
pub string: StringId,
|
|
pub r#ref: Ref,
|
|
pub buffer: [u8; N],
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct Time {
|
|
pub hour: u8,
|
|
pub minute: u8,
|
|
pub second: u8,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct Date {
|
|
pub year: u16,
|
|
pub month: u8,
|
|
pub day: u8,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct Ref {
|
|
pub question_id: QuestionId,
|
|
pub form_id: FormId,
|
|
pub form_set_guid: crate::base::Guid,
|
|
pub device_path: StringId,
|
|
}
|
|
|
|
pub const IFR_TYPE_NUM_SIZE_8: u8 = 0x00;
|
|
pub const IFR_TYPE_NUM_SIZE_16: u8 = 0x01;
|
|
pub const IFR_TYPE_NUM_SIZE_32: u8 = 0x02;
|
|
pub const IFR_TYPE_NUM_SIZE_64: u8 = 0x03;
|
|
pub const IFR_TYPE_BOOLEAN: u8 = 0x04;
|
|
pub const IFR_TYPE_TIME: u8 = 0x05;
|
|
pub const IFR_TYPE_DATE: u8 = 0x06;
|
|
pub const IFR_TYPE_STRING: u8 = 0x07;
|
|
pub const IFR_TYPE_OTHER: u8 = 0x08;
|
|
pub const IFR_TYPE_UNDEFINED: u8 = 0x09;
|
|
pub const IFR_TYPE_ACTION: u8 = 0x0A;
|
|
pub const IFR_TYPE_BUFFER: u8 = 0x0B;
|
|
pub const IFR_TYPE_REF: u8 = 0x0C;
|
|
|
|
pub const IFR_OPTION_DEFAULT: u8 = 0x10;
|
|
pub const IFR_OPTION_DEFAULT_MFG: u8 = 0x20;
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrOr {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy)]
|
|
pub struct IfrOrderedList {
|
|
pub header: IfrOpHeader,
|
|
pub question: IfrQuestionHeader,
|
|
pub max_containers: u8,
|
|
pub flags: u8,
|
|
}
|
|
|
|
pub const IFR_UNIQUE_SET: u8 = 0x01;
|
|
pub const IFR_NO_EMPTY_SET: u8 = 0x02;
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy)]
|
|
pub struct IfrPassword {
|
|
pub header: IfrOpHeader,
|
|
pub question: IfrQuestionHeader,
|
|
pub min_size: u16,
|
|
pub max_size: u16,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrQuestionRef1 {
|
|
pub header: IfrOpHeader,
|
|
pub question_id: QuestionId,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrQuestionRef2 {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrQuestionRef3 {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrQuestionRef32 {
|
|
pub header: IfrOpHeader,
|
|
pub device_path: StringId,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrQuestionRef33 {
|
|
pub header: IfrOpHeader,
|
|
pub device_path: StringId,
|
|
pub guid: crate::base::Guid,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrRead {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy)]
|
|
pub struct IfrRef {
|
|
pub header: IfrOpHeader,
|
|
pub question: IfrQuestionHeader,
|
|
pub form_id: FormId,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy)]
|
|
pub struct IfrRef2 {
|
|
pub header: IfrOpHeader,
|
|
pub question: IfrQuestionHeader,
|
|
pub form_id: FormId,
|
|
pub question_id: QuestionId,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy)]
|
|
pub struct IfrRef3 {
|
|
pub header: IfrOpHeader,
|
|
pub question: IfrQuestionHeader,
|
|
pub form_id: FormId,
|
|
pub question_id: QuestionId,
|
|
pub form_set_id: crate::base::Guid,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy)]
|
|
pub struct IfrRef4 {
|
|
pub header: IfrOpHeader,
|
|
pub question: IfrQuestionHeader,
|
|
pub form_id: FormId,
|
|
pub question_id: QuestionId,
|
|
pub form_set_id: crate::base::Guid,
|
|
pub device_path: StringId,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy)]
|
|
pub struct IfrRef5 {
|
|
pub header: IfrOpHeader,
|
|
pub question: IfrQuestionHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrRefresh {
|
|
pub header: IfrOpHeader,
|
|
pub refresh_interval: u8,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrRefreshId {
|
|
pub header: IfrOpHeader,
|
|
pub refresh_event_group_id: crate::base::Guid,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrResetButton {
|
|
pub header: IfrOpHeader,
|
|
pub statement: IfrStatementHeader,
|
|
pub deafult_id: DefaultId,
|
|
}
|
|
|
|
pub type DefaultId = u16;
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrRule {
|
|
pub header: IfrOpHeader,
|
|
pub rule_id: u8,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrRuleRef {
|
|
pub header: IfrOpHeader,
|
|
pub rule_id: u8,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrSecurity {
|
|
pub header: IfrOpHeader,
|
|
pub permissions: crate::base::Guid,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy)]
|
|
pub union IfrSetVarStoreInfo {
|
|
pub var_name: StringId,
|
|
pub var_offset: u16,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy)]
|
|
pub struct IfrSet {
|
|
pub header: IfrOpHeader,
|
|
pub var_store_id: VarstoreId,
|
|
pub var_store_info: IfrSetVarStoreInfo,
|
|
pub var_store_type: u8,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrShiftLeft {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrShiftRight {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrSpan {
|
|
pub header: IfrOpHeader,
|
|
pub flags: u8,
|
|
}
|
|
|
|
pub const IFR_FLAGS_FIRST_MATCHING: u8 = 0x00;
|
|
pub const IFR_FLAGS_FIRST_NON_MATCHING: u8 = 0x01;
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy)]
|
|
pub struct IfrString {
|
|
pub header: IfrOpHeader,
|
|
pub question: IfrQuestionHeader,
|
|
pub min_size: u8,
|
|
pub max_size: u8,
|
|
pub flags: u8,
|
|
}
|
|
|
|
pub const IFR_STRING_MULTI_LINE: u8 = 0x01;
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrStringRef1 {
|
|
pub header: IfrOpHeader,
|
|
pub string_id: StringId,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrStringRef2 {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrSubtitle {
|
|
pub header: IfrOpHeader,
|
|
pub statement: IfrStatementHeader,
|
|
pub flags: u8,
|
|
}
|
|
|
|
pub const IFR_FLAGS_HORIZONTAL: u8 = 0x01;
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrSubtract {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrSuppressIf {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrText {
|
|
pub header: IfrOpHeader,
|
|
pub statement: IfrStatementHeader,
|
|
pub text_two: StringId,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrThis {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy)]
|
|
pub struct IfrTime {
|
|
pub header: IfrOpHeader,
|
|
pub question: IfrQuestionHeader,
|
|
pub flags: u8,
|
|
}
|
|
|
|
pub const QF_TIME_HOUR_SUPPRESS: u8 = 0x01;
|
|
pub const QF_TIME_MINUTE_SUPPRESS: u8 = 0x02;
|
|
pub const QF_TIME_SECOND_SUPPRESS: u8 = 0x04;
|
|
pub const QF_TIME_STORAGE: u8 = 0x30;
|
|
|
|
pub const QF_TIME_STORAGE_NORMAL: u8 = 0x00;
|
|
pub const QF_TIME_STORAGE_TIME: u8 = 0x10;
|
|
pub const QF_TIME_STORAGE_WAKEUP: u8 = 0x20;
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrToken {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrToBoolean {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrToLower {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrToString {
|
|
pub header: IfrOpHeader,
|
|
pub format: u8,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrToUint {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrToUpper {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrTrue {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrUint8 {
|
|
pub header: IfrOpHeader,
|
|
pub value: u8,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrUint16 {
|
|
pub header: IfrOpHeader,
|
|
pub value: u16,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrUint32 {
|
|
pub header: IfrOpHeader,
|
|
pub value: u32,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrUint64 {
|
|
pub header: IfrOpHeader,
|
|
pub value: u64,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrUndefined {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrValue {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrVarstore<const N: usize = 0> {
|
|
pub header: IfrOpHeader,
|
|
pub guid: crate::base::Guid,
|
|
pub var_store_id: VarstoreId,
|
|
pub size: u16,
|
|
pub name: [u8; N],
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrVarstoreNameValue {
|
|
pub header: IfrOpHeader,
|
|
pub var_store_id: VarstoreId,
|
|
pub guid: crate::base::Guid,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrVarstoreEfi<const N: usize = 0> {
|
|
pub header: IfrOpHeader,
|
|
pub var_store_id: VarstoreId,
|
|
pub guid: crate::base::Guid,
|
|
pub attributes: u32,
|
|
pub size: u16,
|
|
pub name: [u8; N],
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrVarstoreDevice {
|
|
pub header: IfrOpHeader,
|
|
pub device_path: StringId,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrVersion {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrWrite {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrZero {
|
|
pub header: IfrOpHeader,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrWarningIf {
|
|
pub header: IfrOpHeader,
|
|
pub warning: StringId,
|
|
pub time_out: u8,
|
|
}
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub struct IfrMatch2 {
|
|
pub header: IfrOpHeader,
|
|
pub syntax_type: crate::base::Guid,
|
|
}
|