00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __UEFI_INTERNAL_FORMREPRESENTATION_H__
00021 #define __UEFI_INTERNAL_FORMREPRESENTATION_H__
00022
00023
00024
00025
00026 typedef VOID* EFI_HII_HANDLE;
00027 typedef CHAR16* EFI_STRING;
00028 typedef UINT16 EFI_IMAGE_ID;
00029 typedef UINT16 EFI_QUESTION_ID;
00030 typedef UINT16 EFI_STRING_ID;
00031 typedef UINT16 EFI_FORM_ID;
00032 typedef UINT16 EFI_VARSTORE_ID;
00033
00034 typedef UINT16 EFI_DEFAULT_ID;
00035
00036 typedef UINT32 EFI_HII_FONT_STYLE;
00037
00038
00039
00040 #pragma pack(1)
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050 typedef struct {
00051 EFI_GUID PackageListGuid;
00052 UINT32 PackageLength;
00053 } EFI_HII_PACKAGE_LIST_HEADER;
00054
00055
00056
00057
00058 typedef struct {
00059 UINT32 Length:24;
00060 UINT32 Type:8;
00061
00062 } EFI_HII_PACKAGE_HEADER;
00063
00064
00065
00066
00067 #define EFI_HII_PACKAGE_TYPE_ALL 0x00
00068 #define EFI_HII_PACKAGE_TYPE_GUID 0x01
00069 #define EFI_HII_PACKAGE_FORMS 0x02
00070 #define EFI_HII_PACKAGE_STRINGS 0x04
00071 #define EFI_HII_PACKAGE_FONTS 0x05
00072 #define EFI_HII_PACKAGE_IMAGES 0x06
00073 #define EFI_HII_PACKAGE_SIMPLE_FONTS 0x07
00074 #define EFI_HII_PACKAGE_DEVICE_PATH 0x08
00075 #define EFI_HII_PACKAGE_KEYBOARD_LAYOUT 0x09
00076 #define EFI_HII_PACKAGE_END 0xDF
00077 #define EFI_HII_PACKAGE_TYPE_SYSTEM_BEGIN 0xE0
00078 #define EFI_HII_PACKAGE_TYPE_SYSTEM_END 0xFF
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088 #define EFI_GLYPH_NON_SPACING 0x01
00089 #define EFI_GLYPH_WIDE 0x02
00090 #define EFI_GLYPH_HEIGHT 19
00091 #define EFI_GLYPH_WIDTH 8
00092
00093 typedef struct {
00094 CHAR16 UnicodeWeight;
00095 UINT8 Attributes;
00096 UINT8 GlyphCol1[EFI_GLYPH_HEIGHT];
00097 } EFI_NARROW_GLYPH;
00098
00099 typedef struct {
00100 CHAR16 UnicodeWeight;
00101 UINT8 Attributes;
00102 UINT8 GlyphCol1[EFI_GLYPH_HEIGHT];
00103 UINT8 GlyphCol2[EFI_GLYPH_HEIGHT];
00104 UINT8 Pad[3];
00105 } EFI_WIDE_GLYPH;
00106
00107
00108
00109
00110
00111 typedef struct _EFI_HII_SIMPLE_FONT_PACKAGE_HDR {
00112 EFI_HII_PACKAGE_HEADER Header;
00113 UINT16 NumberOfNarrowGlyphs;
00114 UINT16 NumberOfWideGlyphs;
00115
00116
00117 } EFI_HII_SIMPLE_FONT_PACKAGE_HDR;
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127 #define EFI_HII_FONT_STYLE_NORMAL 0x00000000
00128 #define EFI_HII_FONT_STYLE_BOLD 0x00000001
00129 #define EFI_HII_FONT_STYLE_ITALIC 0x00000002
00130 #define EFI_HII_FONT_STYLE_EMBOSS 0x00010000
00131 #define EFI_HII_FONT_STYLE_OUTLINE 0x00020000
00132 #define EFI_HII_FONT_STYLE_SHADOW 0x00040000
00133 #define EFI_HII_FONT_STYLE_UNDERLINE 0x00080000
00134 #define EFI_HII_FONT_STYLE_DBL_UNDER 0x00100000
00135
00136 typedef struct _EFI_HII_GLYPH_INFO {
00137 UINT16 Width;
00138 UINT16 Height;
00139 INT16 OffsetX;
00140 INT16 OffsetY;
00141 INT16 AdvanceX;
00142 } EFI_HII_GLYPH_INFO;
00143
00144
00145
00146
00147
00148
00149
00150 typedef struct _EFI_HII_FONT_PACKAGE_HDR {
00151 EFI_HII_PACKAGE_HEADER Header;
00152 UINT32 HdrSize;
00153 UINT32 GlyphBlockOffset;
00154 EFI_HII_GLYPH_INFO Cell;
00155 EFI_HII_FONT_STYLE FontStyle;
00156 CHAR16 FontFamily[1];
00157 } EFI_HII_FONT_PACKAGE_HDR;
00158
00159
00160
00161
00162 #define EFI_HII_GIBT_END 0x00
00163 #define EFI_HII_GIBT_GLYPH 0x10
00164 #define EFI_HII_GIBT_GLYPHS 0x11
00165 #define EFI_HII_GIBT_GLYPH_DEFAULT 0x12
00166 #define EFI_HII_GIBT_GLYPHS_DEFAULT 0x13
00167 #define EFI_HII_GIBT_DUPLICATE 0x20
00168 #define EFI_HII_GIBT_SKIP2 0x21
00169 #define EFI_HII_GIBT_SKIP1 0x22
00170 #define EFI_HII_GIBT_DEFAULTS 0x23
00171 #define EFI_HII_GIBT_EXT1 0x30
00172 #define EFI_HII_GIBT_EXT2 0x31
00173 #define EFI_HII_GIBT_EXT4 0x32
00174
00175 typedef struct _EFI_HII_GLYPH_BLOCK {
00176 UINT8 BlockType;
00177 } EFI_HII_GLYPH_BLOCK;
00178
00179
00180
00181
00182
00183 typedef struct _EFI_HII_GIBT_DEFAULTS_BLOCK {
00184 EFI_HII_GLYPH_BLOCK Header;
00185 EFI_HII_GLYPH_INFO Cell;
00186 } EFI_HII_GIBT_DEFAULTS_BLOCK;
00187
00188 typedef struct _EFI_HII_GIBT_DUPLICATE_BLOCK {
00189 EFI_HII_GLYPH_BLOCK Header;
00190 CHAR16 CharValue;
00191 } EFI_HII_GIBT_DUPLICATE_BLOCK;
00192
00193 typedef struct _EFI_GLYPH_GIBT_END_BLOCK {
00194 EFI_HII_GLYPH_BLOCK Header;
00195 } EFI_GLYPH_GIBT_END_BLOCK;
00196
00197 typedef struct _EFI_HII_GIBT_EXT1_BLOCK {
00198 EFI_HII_GLYPH_BLOCK Header;
00199 UINT8 BlockType2;
00200 UINT8 Length;
00201 } EFI_HII_GIBT_EXT1_BLOCK;
00202
00203 typedef struct _EFI_HII_GIBT_EXT2_BLOCK {
00204 EFI_HII_GLYPH_BLOCK Header;
00205 UINT8 BlockType2;
00206 UINT16 Length;
00207 } EFI_HII_GIBT_EXT2_BLOCK;
00208
00209 typedef struct _EFI_HII_GIBT_EXT4_BLOCK {
00210 EFI_HII_GLYPH_BLOCK Header;
00211 UINT8 BlockType2;
00212 UINT32 Length;
00213 } EFI_HII_GIBT_EXT4_BLOCK;
00214
00215 typedef struct _EFI_HII_GIBT_GLYPH_BLOCK {
00216 EFI_HII_GLYPH_BLOCK Header;
00217 EFI_HII_GLYPH_INFO Cell;
00218 UINT8 BitmapData[1];
00219 } EFI_HII_GIBT_GLYPH_BLOCK;
00220
00221 typedef struct _EFI_HII_GIBT_GLYPHS_BLOCK {
00222 EFI_HII_GLYPH_BLOCK Header;
00223 EFI_HII_GLYPH_INFO Cell;
00224 UINT16 Count;
00225 UINT8 BitmapData[1];
00226 } EFI_HII_GIBT_GLYPHS_BLOCK;
00227
00228 typedef struct _EFI_HII_GIBT_GLYPH_DEFAULT_BLOCK {
00229 EFI_HII_GLYPH_BLOCK Header;
00230 UINT8 BitmapData[1];
00231 } EFI_HII_GIBT_GLYPH_DEFAULT_BLOCK;
00232
00233 typedef struct _EFI_HII_GIBT_GLYPHS_DEFAULT_BLOCK {
00234 EFI_HII_GLYPH_BLOCK Header;
00235 UINT16 Count;
00236 UINT8 BitmapData[1];
00237 } EFI_HII_GIBT_GLYPHS_DEFAULT_BLOCK;
00238
00239 typedef struct _EFI_HII_GIBT_SKIP1_BLOCK {
00240 EFI_HII_GLYPH_BLOCK Header;
00241 UINT8 SkipCount;
00242 } EFI_HII_GIBT_SKIP1_BLOCK;
00243
00244 typedef struct _EFI_HII_GIBT_SKIP2_BLOCK {
00245 EFI_HII_GLYPH_BLOCK Header;
00246 UINT16 SkipCount;
00247 } EFI_HII_GIBT_SKIP2_BLOCK;
00248
00249
00250
00251
00252
00253
00254
00255
00256
00257
00258 typedef struct _EFI_HII_DEVICE_PATH_PACKAGE {
00259 EFI_HII_PACKAGE_HEADER Header;
00260
00261 } EFI_HII_DEVICE_PATH_PACKAGE;
00262
00263
00264
00265
00266
00267
00268
00269
00270
00271 typedef struct _EFI_HII_GUID_PACKAGE_HDR {
00272 EFI_HII_PACKAGE_HEADER Header;
00273 EFI_GUID Guid;
00274
00275 } EFI_HII_GUID_PACKAGE_HDR;
00276
00277
00278
00279
00280
00281
00282 #define UEFI_CONFIG_LANG L"x-UEFI"
00283 #define UEFI_CONFIG_LANG2 L"x-i-UEFI"
00284
00285
00286
00287
00288
00289 typedef struct _EFI_HII_STRING_PACKAGE_HDR {
00290 EFI_HII_PACKAGE_HEADER Header;
00291 UINT32 HdrSize;
00292 UINT32 StringInfoOffset;
00293 CHAR16 LanguageWindow[16];
00294 EFI_STRING_ID LanguageName;
00295 CHAR8 Language[1];
00296 } EFI_HII_STRING_PACKAGE_HDR;
00297
00298 typedef struct {
00299 UINT8 BlockType;
00300 } EFI_HII_STRING_BLOCK;
00301
00302
00303
00304
00305 #define EFI_HII_SIBT_END 0x00
00306 #define EFI_HII_SIBT_STRING_SCSU 0x10
00307 #define EFI_HII_SIBT_STRING_SCSU_FONT 0x11
00308 #define EFI_HII_SIBT_STRINGS_SCSU 0x12
00309 #define EFI_HII_SIBT_STRINGS_SCSU_FONT 0x13
00310 #define EFI_HII_SIBT_STRING_UCS2 0x14
00311 #define EFI_HII_SIBT_STRING_UCS2_FONT 0x15
00312 #define EFI_HII_SIBT_STRINGS_UCS2 0x16
00313 #define EFI_HII_SIBT_STRINGS_UCS2_FONT 0x17
00314 #define EFI_HII_SIBT_DUPLICATE 0x20
00315 #define EFI_HII_SIBT_SKIP2 0x21
00316 #define EFI_HII_SIBT_SKIP1 0x22
00317 #define EFI_HII_SIBT_EXT1 0x30
00318 #define EFI_HII_SIBT_EXT2 0x31
00319 #define EFI_HII_SIBT_EXT4 0x32
00320 #define EFI_HII_SIBT_FONT 0x40
00321
00322
00323
00324
00325
00326 typedef struct _EFI_HII_SIBT_DUPLICATE_BLOCK {
00327 EFI_HII_STRING_BLOCK Header;
00328 EFI_STRING_ID StringId;
00329 } EFI_HII_SIBT_DUPLICATE_BLOCK;
00330
00331 typedef struct _EFI_HII_SIBT_END_BLOCK {
00332 EFI_HII_STRING_BLOCK Header;
00333 } EFI_HII_SIBT_END_BLOCK;
00334
00335 typedef struct _EFI_HII_SIBT_EXT1_BLOCK {
00336 EFI_HII_STRING_BLOCK Header;
00337 UINT8 BlockType2;
00338 UINT8 Length;
00339 } EFI_HII_SIBT_EXT1_BLOCK;
00340
00341 typedef struct _EFI_HII_SIBT_EXT2_BLOCK {
00342 EFI_HII_STRING_BLOCK Header;
00343 UINT8 BlockType2;
00344 UINT16 Length;
00345 } EFI_HII_SIBT_EXT2_BLOCK;
00346
00347 typedef struct _EFI_HII_SIBT_EXT4_BLOCK {
00348 EFI_HII_STRING_BLOCK Header;
00349 UINT8 BlockType2;
00350 UINT32 Length;
00351 } EFI_HII_SIBT_EXT4_BLOCK;
00352
00353 typedef struct _EFI_HII_SIBT_FONT_BLOCK {
00354 EFI_HII_SIBT_EXT2_BLOCK Header;
00355 UINT8 FontId;
00356 UINT16 FontSize;
00357 EFI_HII_FONT_STYLE FontStyle;
00358 CHAR16 FontName[1];
00359 } EFI_HII_SIBT_FONT_BLOCK;
00360
00361 typedef struct _EFI_HII_SIBT_SKIP1_BLOCK {
00362 EFI_HII_STRING_BLOCK Header;
00363 UINT8 SkipCount;
00364 } EFI_HII_SIBT_SKIP1_BLOCK;
00365
00366 typedef struct _EFI_HII_SIBT_SKIP2_BLOCK {
00367 EFI_HII_STRING_BLOCK Header;
00368 UINT16 SkipCount;
00369 } EFI_HII_SIBT_SKIP2_BLOCK;
00370
00371 typedef struct _EFI_HII_SIBT_STRING_SCSU_BLOCK {
00372 EFI_HII_STRING_BLOCK Header;
00373 UINT8 StringText[1];
00374 } EFI_HII_SIBT_STRING_SCSU_BLOCK;
00375
00376 typedef struct _EFI_HII_SIBT_STRING_SCSU_FONT_BLOCK {
00377 EFI_HII_STRING_BLOCK Header;
00378 UINT8 FontIdentifier;
00379 UINT8 StringText[1];
00380 } EFI_HII_SIBT_STRING_SCSU_FONT_BLOCK;
00381
00382 typedef struct _EFI_HII_SIBT_STRINGS_SCSU_BLOCK {
00383 EFI_HII_STRING_BLOCK Header;
00384 UINT16 StringCount;
00385 UINT8 StringText[1];
00386 } EFI_HII_SIBT_STRINGS_SCSU_BLOCK;
00387
00388 typedef struct _EFI_HII_SIBT_STRINGS_SCSU_FONT_BLOCK {
00389 EFI_HII_STRING_BLOCK Header;
00390 UINT8 FontIdentifier;
00391 UINT16 StringCount;
00392 UINT8 StringText[1];
00393 } EFI_HII_SIBT_STRINGS_SCSU_FONT_BLOCK;
00394
00395 typedef struct _EFI_HII_SIBT_STRING_UCS2_BLOCK {
00396 EFI_HII_STRING_BLOCK Header;
00397 CHAR16 StringText[1];
00398 } EFI_HII_SIBT_STRING_UCS2_BLOCK;
00399
00400 typedef struct _EFI_HII_SIBT_STRING_UCS2_FONT_BLOCK {
00401 EFI_HII_STRING_BLOCK Header;
00402 UINT8 FontIdentifier;
00403 CHAR16 StringText[1];
00404 } EFI_HII_SIBT_STRING_UCS2_FONT_BLOCK;
00405
00406 typedef struct _EFI_HII_SIBT_STRINGS_UCS2_BLOCK {
00407 EFI_HII_STRING_BLOCK Header;
00408 UINT16 StringCount;
00409 CHAR16 StringText[1];
00410 } EFI_HII_SIBT_STRINGS_UCS2_BLOCK;
00411
00412 typedef struct _EFI_HII_SIBT_STRINGS_UCS2_FONT_BLOCK {
00413 EFI_HII_STRING_BLOCK Header;
00414 UINT8 FontIdentifier;
00415 UINT16 StringCount;
00416 CHAR16 StringText[1];
00417 } EFI_HII_SIBT_STRINGS_UCS2_FONT_BLOCK;
00418
00419
00420
00421
00422
00423
00424 typedef struct _EFI_HII_IMAGE_PACKAGE_HDR {
00425 EFI_HII_PACKAGE_HEADER Header;
00426 UINT32 ImageInfoOffset;
00427 UINT32 PaletteInfoOffset;
00428 } EFI_HII_IMAGE_PACKAGE_HDR;
00429
00430 typedef struct _EFI_HII_IMAGE_BLOCK {
00431 UINT8 BlockType;
00432 } EFI_HII_IMAGE_BLOCK;
00433
00434
00435
00436
00437 #define EFI_HII_IIBT_END 0x00
00438 #define EFI_HII_IIBT_IMAGE_1BIT 0x10
00439 #define EFI_HII_IIBT_IMAGE_1BIT_TRANS 0x11
00440 #define EFI_HII_IIBT_IMAGE_4BIT 0x12
00441 #define EFI_HII_IIBT_IMAGE_4BIT_TRANS 0x13
00442 #define EFI_HII_IIBT_IMAGE_8BIT 0x14
00443 #define EFI_HII_IIBT_IMAGE_8BIT_TRANS 0x15
00444 #define EFI_HII_IIBT_IMAGE_24BIT 0x16
00445 #define EFI_HII_IIBT_IMAGE_24BIT_TRANS 0x17
00446 #define EFI_HII_IIBT_IMAGE_JPEG 0x18
00447 #define EFI_HII_IIBT_DUPLICATE 0x20
00448 #define EFI_HII_IIBT_SKIP2 0x21
00449 #define EFI_HII_IIBT_SKIP1 0x22
00450 #define EFI_HII_IIBT_EXT1 0x30
00451 #define EFI_HII_IIBT_EXT2 0x31
00452 #define EFI_HII_IIBT_EXT4 0x32
00453
00454
00455
00456
00457
00458 typedef struct _EFI_HII_IIBT_END_BLOCK {
00459 EFI_HII_IMAGE_BLOCK Header;
00460 } EFI_HII_IIBT_END_BLOCK;
00461
00462 typedef struct _EFI_HII_IIBT_EXT1_BLOCK {
00463 EFI_HII_IMAGE_BLOCK Header;
00464 UINT8 BlockType2;
00465 UINT8 Length;
00466 } EFI_HII_IIBT_EXT1_BLOCK;
00467
00468 typedef struct _EFI_HII_IIBT_EXT2_BLOCK {
00469 EFI_HII_IMAGE_BLOCK Header;
00470 UINT8 BlockType2;
00471 UINT16 Length;
00472 } EFI_HII_IIBT_EXT2_BLOCK;
00473
00474 typedef struct _EFI_HII_IIBT_EXT4_BLOCK {
00475 EFI_HII_IMAGE_BLOCK Header;
00476 UINT8 BlockType2;
00477 UINT32 Length;
00478 } EFI_HII_IIBT_EXT4_BLOCK;
00479
00480 typedef struct _EFI_HII_IIBT_IMAGE_1BIT_BASE {
00481 UINT16 Width;
00482 UINT16 Height;
00483 UINT8 Data[1];
00484 } EFI_HII_IIBT_IMAGE_1BIT_BASE;
00485
00486 typedef struct _EFI_HII_IIBT_IMAGE_1BIT_BLOCK {
00487 EFI_HII_IMAGE_BLOCK Header;
00488 UINT8 PaletteIndex;
00489 EFI_HII_IIBT_IMAGE_1BIT_BASE Bitmap;
00490 } EFI_HII_IIBT_IMAGE_1BIT_BLOCK;
00491
00492 typedef struct _EFI_HII_IIBT_IMAGE_1BIT_TRANS_BLOCK {
00493 EFI_HII_IMAGE_BLOCK Header;
00494 UINT8 PaletteIndex;
00495 EFI_HII_IIBT_IMAGE_1BIT_BASE Bitmap;
00496 } EFI_HII_IIBT_IMAGE_1BIT_TRANS_BLOCK;
00497
00498 typedef struct _EFI_HII_RGB_PIXEL {
00499 UINT8 b;
00500 UINT8 g;
00501 UINT8 r;
00502 } EFI_HII_RGB_PIXEL;
00503
00504 typedef struct _EFI_HII_IIBT_IMAGE_24BIT_BASE {
00505 UINT16 Width;
00506 UINT16 Height;
00507 EFI_HII_RGB_PIXEL Bitmap[1];
00508 } EFI_HII_IIBT_IMAGE_24BIT_BASE;
00509
00510 typedef struct _EFI_HII_IIBT_IMAGE_24BIT_BLOCK {
00511 EFI_HII_IMAGE_BLOCK Header;
00512 EFI_HII_IIBT_IMAGE_24BIT_BASE Bitmap;
00513 } EFI_HII_IIBT_IMAGE_24BIT_BLOCK;
00514
00515 typedef struct _EFI_HII_IIBT_IMAGE_24BIT_TRANS_BLOCK {
00516 EFI_HII_IMAGE_BLOCK Header;
00517 EFI_HII_IIBT_IMAGE_24BIT_BASE Bitmap;
00518 } EFI_HII_IIBT_IMAGE_24BIT_TRANS_BLOCK;
00519
00520 typedef struct _EFI_HII_IIBT_IMAGE_4BIT_BASE {
00521 UINT16 Width;
00522 UINT16 Height;
00523 UINT8 Data[1];
00524 } EFI_HII_IIBT_IMAGE_4BIT_BASE;
00525
00526 typedef struct _EFI_HII_IIBT_IMAGE_4BIT_BLOCK {
00527 EFI_HII_IMAGE_BLOCK Header;
00528 UINT8 PaletteIndex;
00529 EFI_HII_IIBT_IMAGE_4BIT_BASE Bitmap;
00530 } EFI_HII_IIBT_IMAGE_4BIT_BLOCK;
00531
00532 typedef struct _EFI_HII_IIBT_IMAGE_4BIT_TRANS_BLOCK {
00533 EFI_HII_IMAGE_BLOCK Header;
00534 UINT8 PaletteIndex;
00535 EFI_HII_IIBT_IMAGE_4BIT_BASE Bitmap;
00536 } EFI_HII_IIBT_IMAGE_4BIT_TRANS_BLOCK;
00537
00538 typedef struct _EFI_HII_IIBT_IMAGE_8BIT_BASE {
00539 UINT16 Width;
00540 UINT16 Height;
00541 UINT8 Data[1];
00542 } EFI_HII_IIBT_IMAGE_8BIT_BASE;
00543
00544 typedef struct _EFI_HII_IIBT_IMAGE_8BIT_PALETTE_BLOCK {
00545 EFI_HII_IMAGE_BLOCK Header;
00546 UINT8 PaletteIndex;
00547 EFI_HII_IIBT_IMAGE_8BIT_BASE Bitmap;
00548 } EFI_HII_IIBT_IMAGE_8BIT_BLOCK;
00549
00550 typedef struct _EFI_HII_IIBT_IMAGE_8BIT_TRANS_BLOCK {
00551 EFI_HII_IMAGE_BLOCK Header;
00552 UINT8 PaletteIndex;
00553 EFI_HII_IIBT_IMAGE_8BIT_BASE Bitmap;
00554 } EFI_HII_IIBT_IMAGE_8BIT_TRAN_BLOCK;
00555
00556 typedef struct _EFI_HII_IIBT_DUPLICATE_BLOCK {
00557 EFI_HII_IMAGE_BLOCK Header;
00558 EFI_IMAGE_ID ImageId;
00559 } EFI_HII_IIBT_DUPLICATE_BLOCK;
00560
00561 typedef struct _EFI_HII_IIBT_JPEG_BLOCK {
00562 EFI_HII_IMAGE_BLOCK Header;
00563 UINT32 Size;
00564 UINT8 Data[1];
00565 } EFI_HII_IIBT_JPEG_BLOCK;
00566
00567 typedef struct _EFI_HII_IIBT_SKIP1_BLOCK {
00568 EFI_HII_IMAGE_BLOCK Header;
00569 UINT8 SkipCount;
00570 } EFI_HII_IIBT_SKIP1_BLOCK;
00571
00572 typedef struct _EFI_HII_IIBT_SKIP2_BLOCK {
00573 EFI_HII_IMAGE_BLOCK Header;
00574 UINT16 SkipCount;
00575 } EFI_HII_IIBT_SKIP2_BLOCK;
00576
00577
00578
00579
00580
00581 typedef struct _EFI_HII_IMAGE_PALETTE_INFO_HEADER {
00582 UINT16 PaletteCount;
00583 } EFI_HII_IMAGE_PALETTE_INFO_HEADER;
00584
00585 typedef struct _EFI_HII_IMAGE_PALETTE_INFO {
00586 UINT16 PaletteSize;
00587 EFI_HII_RGB_PIXEL PaletteValue[1];
00588 } EFI_HII_IMAGE_PALETTE_INFO;
00589
00590
00591
00592
00593
00594
00595
00596
00597
00598 typedef struct _EFI_HII_FORM_PACKAGE {
00599 EFI_HII_PACKAGE_HEADER Header;
00600
00601
00602 } EFI_HII_FORM_PACKAGE;
00603
00604 typedef struct {
00605 UINT8 Hour;
00606 UINT8 Minute;
00607 UINT8 Second;
00608 } EFI_HII_TIME;
00609
00610 typedef struct {
00611 UINT16 Year;
00612 UINT8 Month;
00613 UINT8 Day;
00614 } EFI_HII_DATE;
00615
00616 typedef union {
00617 UINT8 u8;
00618 UINT16 u16;
00619 UINT32 u32;
00620 UINT64 u64;
00621 BOOLEAN b;
00622 EFI_HII_TIME time;
00623 EFI_HII_DATE date;
00624 EFI_STRING_ID string;
00625 } EFI_IFR_TYPE_VALUE;
00626
00627
00628
00629
00630 #define EFI_IFR_FORM_OP 0x01
00631 #define EFI_IFR_SUBTITLE_OP 0x02
00632 #define EFI_IFR_TEXT_OP 0x03
00633 #define EFI_IFR_IMAGE_OP 0x04
00634 #define EFI_IFR_ONE_OF_OP 0x05
00635 #define EFI_IFR_CHECKBOX_OP 0x06
00636 #define EFI_IFR_NUMERIC_OP 0x07
00637 #define EFI_IFR_PASSWORD_OP 0x08
00638 #define EFI_IFR_ONE_OF_OPTION_OP 0x09
00639 #define EFI_IFR_SUPPRESS_IF_OP 0x0A
00640 #define EFI_IFR_LOCKED_OP 0x0B
00641 #define EFI_IFR_ACTION_OP 0x0C
00642 #define EFI_IFR_RESET_BUTTON_OP 0x0D
00643 #define EFI_IFR_FORM_SET_OP 0x0E
00644 #define EFI_IFR_REF_OP 0x0F
00645 #define EFI_IFR_NO_SUBMIT_IF_OP 0x10
00646 #define EFI_IFR_INCONSISTENT_IF_OP 0x11
00647 #define EFI_IFR_EQ_ID_VAL_OP 0x12
00648 #define EFI_IFR_EQ_ID_ID_OP 0x13
00649 #define EFI_IFR_EQ_ID_LIST_OP 0x14
00650 #define EFI_IFR_AND_OP 0x15
00651 #define EFI_IFR_OR_OP 0x16
00652 #define EFI_IFR_NOT_OP 0x17
00653 #define EFI_IFR_RULE_OP 0x18
00654 #define EFI_IFR_GRAY_OUT_IF_OP 0x19
00655 #define EFI_IFR_DATE_OP 0x1A
00656 #define EFI_IFR_TIME_OP 0x1B
00657 #define EFI_IFR_STRING_OP 0x1C
00658 #define EFI_IFR_REFRESH_OP 0x1D
00659 #define EFI_IFR_DISABLE_IF_OP 0x1E
00660 #define EFI_IFR_TO_LOWER_OP 0x20
00661 #define EFI_IFR_TO_UPPER_OP 0x21
00662 #define EFI_IFR_ORDERED_LIST_OP 0x23
00663 #define EFI_IFR_VARSTORE_OP 0x24
00664 #define EFI_IFR_VARSTORE_NAME_VALUE_OP 0x25
00665 #define EFI_IFR_VARSTORE_EFI_OP 0x26
00666 #define EFI_IFR_VARSTORE_DEVICE_OP 0x27
00667 #define EFI_IFR_VERSION_OP 0x28
00668 #define EFI_IFR_END_OP 0x29
00669 #define EFI_IFR_MATCH_OP 0x2A
00670 #define EFI_IFR_EQUAL_OP 0x2F
00671 #define EFI_IFR_NOT_EQUAL_OP 0x30
00672 #define EFI_IFR_GREATER_THAN_OP 0x31
00673 #define EFI_IFR_GREATER_EQUAL_OP 0x32
00674 #define EFI_IFR_LESS_THAN_OP 0x33
00675 #define EFI_IFR_LESS_EQUAL_OP 0x34
00676 #define EFI_IFR_BITWISE_AND_OP 0x35
00677 #define EFI_IFR_BITWISE_OR_OP 0x36
00678 #define EFI_IFR_BITWISE_NOT_OP 0x37
00679 #define EFI_IFR_SHIFT_LEFT_OP 0x38
00680 #define EFI_IFR_SHIFT_RIGHT_OP 0x39
00681 #define EFI_IFR_ADD_OP 0x3A
00682 #define EFI_IFR_SUBTRACT_OP 0x3B
00683 #define EFI_IFR_MULTIPLY_OP 0x3C
00684 #define EFI_IFR_DIVIDE_OP 0x3D
00685 #define EFI_IFR_MODULO_OP 0x3E
00686 #define EFI_IFR_RULE_REF_OP 0x3F
00687 #define EFI_IFR_QUESTION_REF1_OP 0x40
00688 #define EFI_IFR_QUESTION_REF2_OP 0x41
00689 #define EFI_IFR_UINT8_OP 0x42
00690 #define EFI_IFR_UINT16_OP 0x43
00691 #define EFI_IFR_UINT32_OP 0x44
00692 #define EFI_IFR_UINT64_OP 0x45
00693 #define EFI_IFR_TRUE_OP 0x46
00694 #define EFI_IFR_FALSE_OP 0x47
00695 #define EFI_IFR_TO_UINT_OP 0x48
00696 #define EFI_IFR_TO_STRING_OP 0x49
00697 #define EFI_IFR_TO_BOOLEAN_OP 0x4A
00698 #define EFI_IFR_MID_OP 0x4B
00699 #define EFI_IFR_FIND_OP 0x4C
00700 #define EFI_IFR_TOKEN_OP 0x4D
00701 #define EFI_IFR_STRING_REF1_OP 0x4E
00702 #define EFI_IFR_STRING_REF2_OP 0x4F
00703 #define EFI_IFR_CONDITIONAL_OP 0x50
00704 #define EFI_IFR_QUESTION_REF3_OP 0x51
00705 #define EFI_IFR_ZERO_OP 0x52
00706 #define EFI_IFR_ONE_OP 0x53
00707 #define EFI_IFR_ONES_OP 0x54
00708 #define EFI_IFR_UNDEFINED_OP 0x55
00709 #define EFI_IFR_LENGTH_OP 0x56
00710 #define EFI_IFR_DUP_OP 0x57
00711 #define EFI_IFR_THIS_OP 0x58
00712 #define EFI_IFR_SPAN_OP 0x59
00713 #define EFI_IFR_VALUE_OP 0x5A
00714 #define EFI_IFR_DEFAULT_OP 0x5B
00715 #define EFI_IFR_DEFAULTSTORE_OP 0x5C
00716 #define EFI_IFR_CATENATE_OP 0x5E
00717 #define EFI_IFR_GUID_OP 0x5F
00718
00719
00720
00721
00722
00723
00724 typedef struct _EFI_IFR_OP_HEADER {
00725 UINT8 OpCode;
00726 UINT8 Length:7;
00727 UINT8 Scope:1;
00728 } EFI_IFR_OP_HEADER;
00729
00730 typedef struct _EFI_IFR_STATEMENT_HEADER {
00731 EFI_STRING_ID Prompt;
00732 EFI_STRING_ID Help;
00733 } EFI_IFR_STATEMENT_HEADER;
00734
00735 typedef struct _EFI_IFR_QUESTION_HEADER {
00736 EFI_IFR_STATEMENT_HEADER Header;
00737 EFI_QUESTION_ID QuestionId;
00738 EFI_VARSTORE_ID VarStoreId;
00739 union {
00740 EFI_STRING_ID VarName;
00741 UINT16 VarOffset;
00742 } VarStoreInfo;
00743 UINT8 Flags;
00744 } EFI_IFR_QUESTION_HEADER;
00745
00746
00747
00748
00749 #define EFI_IFR_FLAG_READ_ONLY 0x01
00750 #define EFI_IFR_FLAG_CALLBACK 0x04
00751 #define EFI_IFR_FLAG_RESET_REQUIRED 0x10
00752 #define EFI_IFR_FLAG_OPTIONS_ONLY 0x80
00753
00754
00755
00756
00757
00758 typedef struct _EFI_IFR_DEFAULTSTORE {
00759 EFI_IFR_OP_HEADER Header;
00760 EFI_STRING_ID DefaultName;
00761 UINT16 DefaultId;
00762 } EFI_IFR_DEFAULTSTORE;
00763
00764
00765
00766
00767 #define EFI_HII_DEFAULT_CLASS_STANDARD 0x0000
00768 #define EFI_HII_DEFAULT_CLASS_MANUFACTURING 0x0001
00769 #define EFI_HII_DEFAULT_CLASS_SAFE 0x0002
00770 #define EFI_HII_DEFAULT_CLASS_PLATFORM_BEGIN 0x4000
00771 #define EFI_HII_DEFAULT_CLASS_PLATFORM_END 0x7fff
00772 #define EFI_HII_DEFAULT_CLASS_HARDWARE_BEGIN 0x8000
00773 #define EFI_HII_DEFAULT_CLASS_HARDWARE_END 0xbfff
00774 #define EFI_HII_DEFAULT_CLASS_FIRMWARE_BEGIN 0xc000
00775 #define EFI_HII_DEFAULT_CLASS_FIRMWARE_END 0xffff
00776
00777 typedef struct _EFI_IFR_VARSTORE {
00778 EFI_IFR_OP_HEADER Header;
00779 EFI_GUID Guid;
00780 EFI_VARSTORE_ID VarStoreId;
00781 UINT16 Size;
00782 UINT8 Name[1];
00783 } EFI_IFR_VARSTORE;
00784
00785 typedef struct _EFI_IFR_VARSTORE_EFI {
00786 EFI_IFR_OP_HEADER Header;
00787 EFI_VARSTORE_ID VarStoreId;
00788 EFI_GUID Guid;
00789 UINT32 Attributes;
00790 } EFI_IFR_VARSTORE_EFI;
00791
00792 typedef struct _EFI_IFR_VARSTORE_NAME_VALUE {
00793 EFI_IFR_OP_HEADER Header;
00794 EFI_VARSTORE_ID VarStoreId;
00795 EFI_GUID Guid;
00796 } EFI_IFR_VARSTORE_NAME_VALUE;
00797
00798 typedef struct _EFI_IFR_FORM_SET {
00799 EFI_IFR_OP_HEADER Header;
00800 EFI_GUID Guid;
00801 EFI_STRING_ID FormSetTitle;
00802 EFI_STRING_ID Help;
00803 } EFI_IFR_FORM_SET;
00804
00805 typedef struct _EFI_IFR_END {
00806 EFI_IFR_OP_HEADER Header;
00807 } EFI_IFR_END;
00808
00809 typedef struct _EFI_IFR_FORM {
00810 EFI_IFR_OP_HEADER Header;
00811 UINT16 FormId;
00812 EFI_STRING_ID FormTitle;
00813 } EFI_IFR_FORM;
00814
00815 typedef struct _EFI_IFR_IMAGE {
00816 EFI_IFR_OP_HEADER Header;
00817 EFI_IMAGE_ID Id;
00818 } EFI_IFR_IMAGE;
00819
00820 typedef struct _EFI_IFR_LOCKED {
00821 EFI_IFR_OP_HEADER Header;
00822 } EFI_IFR_LOCKED;
00823
00824 typedef struct _EFI_IFR_RULE {
00825 EFI_IFR_OP_HEADER Header;
00826 UINT8 RuleId;
00827 } EFI_IFR_RULE;
00828
00829 typedef struct _EFI_IFR_DEFAULT {
00830 EFI_IFR_OP_HEADER Header;
00831 UINT16 DefaultId;
00832 UINT8 Type;
00833 EFI_IFR_TYPE_VALUE Value;
00834 } EFI_IFR_DEFAULT;
00835
00836 typedef struct _EFI_IFR_VALUE {
00837 EFI_IFR_OP_HEADER Header;
00838 } EFI_IFR_VALUE;
00839
00840 typedef struct _EFI_IFR_SUBTITLE {
00841 EFI_IFR_OP_HEADER Header;
00842 EFI_IFR_STATEMENT_HEADER Statement;
00843 UINT8 Flags;
00844 } EFI_IFR_SUBTITLE;
00845
00846 #define EFI_IFR_FLAGS_HORIZONTAL 0x01
00847
00848 typedef struct _EFI_IFR_CHECKBOX {
00849 EFI_IFR_OP_HEADER Header;
00850 EFI_IFR_QUESTION_HEADER Question;
00851 UINT8 Flags;
00852 } EFI_IFR_CHECKBOX;
00853
00854 #define EFI_IFR_CHECKBOX_DEFAULT 0x01
00855 #define EFI_IFR_CHECKBOX_DEFAULT_MFG 0x02
00856
00857 typedef struct _EFI_IFR_TEXT {
00858 EFI_IFR_OP_HEADER Header;
00859 EFI_IFR_STATEMENT_HEADER Statement;
00860 EFI_STRING_ID TextTwo;
00861 } EFI_IFR_TEXT;
00862
00863 typedef struct _EFI_IFR_REF {
00864 EFI_IFR_OP_HEADER Header;
00865 EFI_IFR_QUESTION_HEADER Question;
00866 EFI_FORM_ID FormId;
00867 } EFI_IFR_REF;
00868
00869 typedef struct _EFI_IFR_REF2 {
00870 EFI_IFR_OP_HEADER Header;
00871 EFI_IFR_QUESTION_HEADER Question;
00872 EFI_FORM_ID FormId;
00873 EFI_QUESTION_ID QuestionId;
00874 } EFI_IFR_REF2;
00875
00876 typedef struct _EFI_IFR_REF3 {
00877 EFI_IFR_OP_HEADER Header;
00878 EFI_IFR_QUESTION_HEADER Question;
00879 EFI_FORM_ID FormId;
00880 EFI_QUESTION_ID QuestionId;
00881 EFI_GUID FormSetId;
00882 } EFI_IFR_REF3;
00883
00884 typedef struct _EFI_IFR_REF4 {
00885 EFI_IFR_OP_HEADER Header;
00886 EFI_IFR_QUESTION_HEADER Question;
00887 EFI_FORM_ID FormId;
00888 EFI_QUESTION_ID QuestionId;
00889 EFI_GUID FormSetId;
00890 EFI_STRING_ID DevicePath;
00891 } EFI_IFR_REF4;
00892
00893 typedef struct _EFI_IFR_RESET_BUTTON {
00894 EFI_IFR_OP_HEADER Header;
00895 EFI_IFR_QUESTION_HEADER Question;
00896 EFI_DEFAULT_ID DefaultId;
00897 } EFI_IFR_RESET_BUTTON;
00898
00899 typedef struct _EFI_IFR_ACTION {
00900 EFI_IFR_OP_HEADER Header;
00901 EFI_IFR_QUESTION_HEADER Question;
00902 EFI_STRING_ID QuestionConfig;
00903 } EFI_IFR_ACTION;
00904
00905 typedef struct _EFI_IFR_ACTION_1 {
00906 EFI_IFR_OP_HEADER Header;
00907 EFI_IFR_QUESTION_HEADER Question;
00908 } EFI_IFR_ACTION_1;
00909
00910 typedef struct _EFI_IFR_DATE {
00911 EFI_IFR_OP_HEADER Header;
00912 EFI_IFR_QUESTION_HEADER Question;
00913 UINT8 Flags;
00914 } EFI_IFR_DATE;
00915
00916
00917
00918
00919 #define EFI_QF_DATE_YEAR_SUPPRESS 0x01
00920 #define EFI_QF_DATE_MONTH_SUPPRESS 0x02
00921 #define EFI_QF_DATE_DAY_SUPPRESS 0x04
00922
00923 #define EFI_QF_DATE_STORAGE 0x30
00924 #define QF_DATE_STORAGE_NORMAL 0x00
00925 #define QF_DATE_STORAGE_TIME 0x10
00926 #define QF_DATE_STORAGE_WAKEUP 0x20
00927
00928 typedef union {
00929 struct {
00930 UINT8 MinValue;
00931 UINT8 MaxValue;
00932 UINT8 Step;
00933 } u8;
00934 struct {
00935 UINT16 MinValue;
00936 UINT16 MaxValue;
00937 UINT16 Step;
00938 } u16;
00939 struct {
00940 UINT32 MinValue;
00941 UINT32 MaxValue;
00942 UINT32 Step;
00943 } u32;
00944 struct {
00945 UINT64 MinValue;
00946 UINT64 MaxValue;
00947 UINT64 Step;
00948 } u64;
00949 } MINMAXSTEP_DATA;
00950
00951 typedef struct _EFI_IFR_NUMERIC {
00952 EFI_IFR_OP_HEADER Header;
00953 EFI_IFR_QUESTION_HEADER Question;
00954 UINT8 Flags;
00955 MINMAXSTEP_DATA data;
00956 } EFI_IFR_NUMERIC;
00957
00958
00959
00960
00961 #define EFI_IFR_NUMERIC_SIZE 0x03
00962 #define EFI_IFR_NUMERIC_SIZE_1 0x00
00963 #define EFI_IFR_NUMERIC_SIZE_2 0x01
00964 #define EFI_IFR_NUMERIC_SIZE_4 0x02
00965 #define EFI_IFR_NUMERIC_SIZE_8 0x03
00966
00967 #define EFI_IFR_DISPLAY 0x30
00968 #define EFI_IFR_DISPLAY_INT_DEC 0x00
00969 #define EFI_IFR_DISPLAY_UINT_DEC 0x10
00970 #define EFI_IFR_DISPLAY_UINT_HEX 0x20
00971
00972 typedef struct _EFI_IFR_ONE_OF {
00973 EFI_IFR_OP_HEADER Header;
00974 EFI_IFR_QUESTION_HEADER Question;
00975 UINT8 Flags;
00976 MINMAXSTEP_DATA data;
00977 } EFI_IFR_ONE_OF;
00978
00979 typedef struct _EFI_IFR_STRING {
00980 EFI_IFR_OP_HEADER Header;
00981 EFI_IFR_QUESTION_HEADER Question;
00982 UINT8 MinSize;
00983 UINT8 MaxSize;
00984 UINT8 Flags;
00985 } EFI_IFR_STRING;
00986
00987 #define EFI_IFR_STRING_MULTI_LINE 0x01
00988
00989 typedef struct _EFI_IFR_PASSWORD {
00990 EFI_IFR_OP_HEADER Header;
00991 EFI_IFR_QUESTION_HEADER Question;
00992 UINT16 MinSize;
00993 UINT16 MaxSize;
00994 } EFI_IFR_PASSWORD;
00995
00996 typedef struct _EFI_IFR_ORDERED_LIST {
00997 EFI_IFR_OP_HEADER Header;
00998 EFI_IFR_QUESTION_HEADER Question;
00999 UINT8 MaxContainers;
01000 UINT8 Flags;
01001 } EFI_IFR_ORDERED_LIST;
01002
01003 #define EFI_IFR_UNIQUE_SET 0x01
01004 #define EFI_IFR_NO_EMPTY_SET 0x02
01005
01006 typedef struct _EFI_IFR_TIME {
01007 EFI_IFR_OP_HEADER Header;
01008 EFI_IFR_QUESTION_HEADER Question;
01009 UINT8 Flags;
01010 } EFI_IFR_TIME;
01011
01012
01013
01014
01015 #define QF_TIME_HOUR_SUPPRESS 0x01
01016 #define QF_TIME_MINUTE_SUPPRESS 0x02
01017 #define QF_TIME_SECOND_SUPPRESS 0x04
01018
01019 #define QF_TIME_STORAGE 0x30
01020 #define QF_TIME_STORAGE_NORMAL 0x00
01021 #define QF_TIME_STORAGE_TIME 0x10
01022 #define QF_TIME_STORAGE_WAKEUP 0x20
01023
01024 typedef struct _EFI_IFR_DISABLE_IF {
01025 EFI_IFR_OP_HEADER Header;
01026 } EFI_IFR_DISABLE_IF;
01027
01028 typedef struct _EFI_IFR_SUPPRESS_IF {
01029 EFI_IFR_OP_HEADER Header;
01030 } EFI_IFR_SUPPRESS_IF;
01031
01032 typedef struct _EFI_IFR_GRAY_OUT_IF {
01033 EFI_IFR_OP_HEADER Header;
01034 } EFI_IFR_GRAY_OUT_IF;
01035
01036 typedef struct _EFI_IFR_INCONSISTENT_IF {
01037 EFI_IFR_OP_HEADER Header;
01038 EFI_STRING_ID Error;
01039 } EFI_IFR_INCONSISTENT_IF;
01040
01041 typedef struct _EFI_IFR_NO_SUBMIT_IF {
01042 EFI_IFR_OP_HEADER Header;
01043 EFI_STRING_ID Error;
01044 } EFI_IFR_NO_SUBMIT_IF;
01045
01046 typedef struct _EFI_IFR_REFRESH {
01047 EFI_IFR_OP_HEADER Header;
01048 UINT8 RefreshInterval;
01049 } EFI_IFR_REFRESH;
01050
01051 typedef struct _EFI_IFR_VARSTORE_DEVICE {
01052 EFI_IFR_OP_HEADER Header;
01053 EFI_STRING_ID DevicePath;
01054 } EFI_IFR_VARSTORE_DEVICE;
01055
01056 typedef struct _EFI_IFR_ONE_OF_OPTION {
01057 EFI_IFR_OP_HEADER Header;
01058 EFI_STRING_ID Option;
01059 UINT8 Flags;
01060 UINT8 Type;
01061 EFI_IFR_TYPE_VALUE Value;
01062 } EFI_IFR_ONE_OF_OPTION;
01063
01064
01065
01066
01067 #define EFI_IFR_TYPE_NUM_SIZE_8 0x00
01068 #define EFI_IFR_TYPE_NUM_SIZE_16 0x01
01069 #define EFI_IFR_TYPE_NUM_SIZE_32 0x02
01070 #define EFI_IFR_TYPE_NUM_SIZE_64 0x03
01071 #define EFI_IFR_TYPE_BOOLEAN 0x04
01072 #define EFI_IFR_TYPE_TIME 0x05
01073 #define EFI_IFR_TYPE_DATE 0x06
01074 #define EFI_IFR_TYPE_STRING 0x07
01075 #define EFI_IFR_TYPE_OTHER 0x08
01076
01077 #define EFI_IFR_OPTION_DEFAULT 0x10
01078 #define EFI_IFR_OPTION_DEFAULT_MFG 0x20
01079
01080 typedef struct _EFI_IFR_GUID {
01081 EFI_IFR_OP_HEADER Header;
01082 EFI_GUID Guid;
01083
01084 } EFI_IFR_GUID;
01085
01086 typedef struct _EFI_IFR_DUP {
01087 EFI_IFR_OP_HEADER Header;
01088 } EFI_IFR_DUP;
01089
01090 typedef struct _EFI_IFR_EQ_ID_ID {
01091 EFI_IFR_OP_HEADER Header;
01092 EFI_QUESTION_ID QuestionId1;
01093 EFI_QUESTION_ID QuestionId2;
01094 } EFI_IFR_EQ_ID_ID;
01095
01096 typedef struct _EFI_IFR_EQ_ID_VAL {
01097 EFI_IFR_OP_HEADER Header;
01098 EFI_QUESTION_ID QuestionId;
01099 UINT16 Value;
01100 } EFI_IFR_EQ_ID_VAL;
01101
01102 typedef struct _EFI_IFR_EQ_ID_LIST {
01103 EFI_IFR_OP_HEADER Header;
01104 EFI_QUESTION_ID QuestionId;
01105 UINT16 ListLength;
01106 UINT16 ValueList[1];
01107 } EFI_IFR_EQ_ID_LIST;
01108
01109 typedef struct _EFI_IFR_UINT8 {
01110 EFI_IFR_OP_HEADER Header;
01111 UINT8 Value;
01112 } EFI_IFR_UINT8;
01113
01114 typedef struct _EFI_IFR_UINT16 {
01115 EFI_IFR_OP_HEADER Header;
01116 UINT16 Value;
01117 } EFI_IFR_UINT16;
01118
01119 typedef struct _EFI_IFR_UINT32 {
01120 EFI_IFR_OP_HEADER Header;
01121 UINT32 Value;
01122 } EFI_IFR_UINT32;
01123
01124 typedef struct _EFI_IFR_UINT64 {
01125 EFI_IFR_OP_HEADER Header;
01126 UINT64 Value;
01127 } EFI_IFR_UINT64;
01128
01129 typedef struct _EFI_IFR_QUESTION_REF1 {
01130 EFI_IFR_OP_HEADER Header;
01131 EFI_QUESTION_ID QuestionId;
01132 } EFI_IFR_QUESTION_REF1;
01133
01134 typedef struct _EFI_IFR_QUESTION_REF2 {
01135 EFI_IFR_OP_HEADER Header;
01136 } EFI_IFR_QUESTION_REF2;
01137
01138 typedef struct _EFI_IFR_QUESTION_REF3 {
01139 EFI_IFR_OP_HEADER Header;
01140 } EFI_IFR_QUESTION_REF3;
01141
01142 typedef struct _EFI_IFR_QUESTION_REF3_2 {
01143 EFI_IFR_OP_HEADER Header;
01144 EFI_STRING_ID DevicePath;
01145 } EFI_IFR_QUESTION_REF3_2;
01146
01147 typedef struct _EFI_IFR_QUESTION_REF3_3 {
01148 EFI_IFR_OP_HEADER Header;
01149 EFI_STRING_ID DevicePath;
01150 EFI_GUID Guid;
01151 } EFI_IFR_QUESTION_REF3_3;
01152
01153 typedef struct _EFI_IFR_RULE_REF {
01154 EFI_IFR_OP_HEADER Header;
01155 UINT8 RuleId;
01156 } EFI_IFR_RULE_REF;
01157
01158 typedef struct _EFI_IFR_STRING_REF1 {
01159 EFI_IFR_OP_HEADER Header;
01160 EFI_STRING_ID StringId;
01161 } EFI_IFR_STRING_REF1;
01162
01163 typedef struct _EFI_IFR_STRING_REF2 {
01164 EFI_IFR_OP_HEADER Header;
01165 } EFI_IFR_STRING_REF2;
01166
01167 typedef struct _EFI_IFR_THIS {
01168 EFI_IFR_OP_HEADER Header;
01169 } EFI_IFR_THIS;
01170
01171 typedef struct _EFI_IFR_TRUE {
01172 EFI_IFR_OP_HEADER Header;
01173 } EFI_IFR_TRUE;
01174
01175 typedef struct _EFI_IFR_FALSE {
01176 EFI_IFR_OP_HEADER Header;
01177 } EFI_IFR_FALSE;
01178
01179 typedef struct _EFI_IFR_ONE {
01180 EFI_IFR_OP_HEADER Header;
01181 } EFI_IFR_ONE;
01182
01183 typedef struct _EFI_IFR_ONES {
01184 EFI_IFR_OP_HEADER Header;
01185 } EFI_IFR_ONES;
01186
01187 typedef struct _EFI_IFR_ZERO {
01188 EFI_IFR_OP_HEADER Header;
01189 } EFI_IFR_ZERO;
01190
01191 typedef struct _EFI_IFR_UNDEFINED {
01192 EFI_IFR_OP_HEADER Header;
01193 } EFI_IFR_UNDEFINED;
01194
01195 typedef struct _EFI_IFR_VERSION {
01196 EFI_IFR_OP_HEADER Header;
01197 } EFI_IFR_VERSION;
01198
01199 typedef struct _EFI_IFR_LENGTH {
01200 EFI_IFR_OP_HEADER Header;
01201 } EFI_IFR_LENGTH;
01202
01203 typedef struct _EFI_IFR_NOT {
01204 EFI_IFR_OP_HEADER Header;
01205 } EFI_IFR_NOT;
01206
01207 typedef struct _EFI_IFR_BITWISE_NOT {
01208 EFI_IFR_OP_HEADER Header;
01209 } EFI_IFR_BITWISE_NOT;
01210
01211 typedef struct _EFI_IFR_TO_BOOLEAN {
01212 EFI_IFR_OP_HEADER Header;
01213 } EFI_IFR_TO_BOOLEAN;
01214
01215
01216
01217
01218
01219
01220
01221
01222
01223 #define EFI_IFR_STRING_UNSIGNED_DEC 0
01224 #define EFI_IFR_STRING_SIGNED_DEC 1
01225 #define EFI_IFR_STRING_LOWERCASE_HEX 2
01226 #define EFI_IFR_STRING_UPPERCASE_HEX 3
01227
01228
01229
01230
01231
01232 #define EFI_IFR_STRING_ASCII 0
01233 #define EFI_IFR_STRING_UNICODE 8
01234
01235 typedef struct _EFI_IFR_TO_STRING {
01236 EFI_IFR_OP_HEADER Header;
01237 UINT8 Format;
01238 } EFI_IFR_TO_STRING;
01239
01240 typedef struct _EFI_IFR_TO_UINT {
01241 EFI_IFR_OP_HEADER Header;
01242 } EFI_IFR_TO_UINT;
01243
01244 typedef struct _EFI_IFR_TO_UPPER {
01245 EFI_IFR_OP_HEADER Header;
01246 } EFI_IFR_TO_UPPER;
01247
01248 typedef struct _EFI_IFR_TO_LOWER {
01249 EFI_IFR_OP_HEADER Header;
01250 } EFI_IFR_TO_LOWER;
01251
01252 typedef struct _EFI_IFR_ADD {
01253 EFI_IFR_OP_HEADER Header;
01254 } EFI_IFR_ADD;
01255
01256 typedef struct _EFI_IFR_AND {
01257 EFI_IFR_OP_HEADER Header;
01258 } EFI_IFR_AND;
01259
01260 typedef struct _EFI_IFR_BITWISE_AND {
01261 EFI_IFR_OP_HEADER Header;
01262 } EFI_IFR_BITWISE_AND;
01263
01264 typedef struct _EFI_IFR_BITWISE_OR {
01265 EFI_IFR_OP_HEADER Header;
01266 } EFI_IFR_BITWISE_OR;
01267
01268 typedef struct _EFI_IFR_CATENATE {
01269 EFI_IFR_OP_HEADER Header;
01270 } EFI_IFR_CATENATE;
01271
01272 typedef struct _EFI_IFR_DIVIDE {
01273 EFI_IFR_OP_HEADER Header;
01274 } EFI_IFR_DIVIDE;
01275
01276 typedef struct _EFI_IFR_EQUAL {
01277 EFI_IFR_OP_HEADER Header;
01278 } EFI_IFR_EQUAL;
01279
01280 typedef struct _EFI_IFR_GREATER_EQUAL {
01281 EFI_IFR_OP_HEADER Header;
01282 } EFI_IFR_GREATER_EQUAL;
01283
01284 typedef struct _EFI_IFR_GREATER_THAN {
01285 EFI_IFR_OP_HEADER Header;
01286 } EFI_IFR_GREATER_THAN;
01287
01288 typedef struct _EFI_IFR_LESS_EQUAL {
01289 EFI_IFR_OP_HEADER Header;
01290 } EFI_IFR_LESS_EQUAL;
01291
01292 typedef struct _EFI_IFR_LESS_THAN {
01293 EFI_IFR_OP_HEADER Header;
01294 } EFI_IFR_LESS_THAN;
01295
01296 typedef struct _EFI_IFR_MATCH {
01297 EFI_IFR_OP_HEADER Header;
01298 } EFI_IFR_MATCH;
01299
01300 typedef struct _EFI_IFR_MULTIPLY {
01301 EFI_IFR_OP_HEADER Header;
01302 } EFI_IFR_MULTIPLY;
01303
01304 typedef struct _EFI_IFR_MODULO {
01305 EFI_IFR_OP_HEADER Header;
01306 } EFI_IFR_MODULO;
01307
01308 typedef struct _EFI_IFR_NOT_EQUAL {
01309 EFI_IFR_OP_HEADER Header;
01310 } EFI_IFR_NOT_EQUAL;
01311
01312 typedef struct _EFI_IFR_OR {
01313 EFI_IFR_OP_HEADER Header;
01314 } EFI_IFR_OR;
01315
01316 typedef struct _EFI_IFR_SHIFT_LEFT {
01317 EFI_IFR_OP_HEADER Header;
01318 } EFI_IFR_SHIFT_LEFT;
01319
01320 typedef struct _EFI_IFR_SHIFT_RIGHT {
01321 EFI_IFR_OP_HEADER Header;
01322 } EFI_IFR_SHIFT_RIGHT;
01323
01324 typedef struct _EFI_IFR_SUBTRACT {
01325 EFI_IFR_OP_HEADER Header;
01326 } EFI_IFR_SUBTRACT;
01327
01328 typedef struct _EFI_IFR_CONDITIONAL {
01329 EFI_IFR_OP_HEADER Header;
01330 } EFI_IFR_CONDITIONAL;
01331
01332
01333
01334
01335 #define EFI_IFR_FF_CASE_SENSITIVE 0x00
01336 #define EFI_IFR_FF_CASE_INSENSITIVE 0x01
01337
01338 typedef struct _EFI_IFR_FIND {
01339 EFI_IFR_OP_HEADER Header;
01340 UINT8 Format;
01341 } EFI_IFR_FIND;
01342
01343 typedef struct _EFI_IFR_MID {
01344 EFI_IFR_OP_HEADER Header;
01345 } EFI_IFR_MID;
01346
01347 typedef struct _EFI_IFR_TOKEN {
01348 EFI_IFR_OP_HEADER Header;
01349 } EFI_IFR_TOKEN;
01350
01351
01352
01353
01354
01355 #define EFI_IFR_FLAGS_FIRST_MATCHING 0x00
01356 #define EFI_IFR_FLAGS_FIRST_NON_MATCHING 0x01
01357
01358 typedef struct _EFI_IFR_SPAN {
01359 EFI_IFR_OP_HEADER Header;
01360 UINT8 Flags;
01361 } EFI_IFR_SPAN;
01362
01363
01364
01365
01366
01367
01368
01369 typedef enum {
01370 EfiKeyLCtrl,
01371 EfiKeyA0,
01372 EfiKeyLAlt,
01373 EfiKeySpaceBar,
01374 EfiKeyA2,
01375 EfiKeyA3,
01376 EfiKeyA4,
01377 EfiKeyRCtrl,
01378 EfiKeyLeftArrow,
01379 EfiKeyDownArrow,
01380 EfiKeyRightArrow,
01381 EfiKeyZero,
01382 EfiKeyPeriod,
01383 EfiKeyEnter,
01384 EfiKeyLShift,
01385 EfiKeyB0,
01386 EfiKeyB1,
01387 EfiKeyB2,
01388 EfiKeyB3,
01389 EfiKeyB4,
01390 EfiKeyB5,
01391 EfiKeyB6,
01392 EfiKeyB7,
01393 EfiKeyB8,
01394 EfiKeyB9,
01395 EfiKeyB10,
01396 EfiKeyRShift,
01397 EfiKeyUpArrow,
01398 EfiKeyOne,
01399 EfiKeyTwo,
01400 EfiKeyThree,
01401 EfiKeyCapsLock,
01402 EfiKeyC1,
01403 EfiKeyC2,
01404 EfiKeyC3,
01405 EfiKeyC4,
01406 EfiKeyC5,
01407 EfiKeyC6,
01408 EfiKeyC7,
01409 EfiKeyC8,
01410 EfiKeyC9,
01411 EfiKeyC10,
01412 EfiKeyC11,
01413 EfiKeyC12,
01414 EfiKeyFour,
01415 EfiKeyFive,
01416 EfiKeySix,
01417 EfiKeyPlus,
01418 EfiKeyTab,
01419 EfiKeyD1,
01420 EfiKeyD2,
01421 EfiKeyD3,
01422 EfiKeyD4,
01423 EfiKeyD5,
01424 EfiKeyD6,
01425 EfiKeyD7,
01426 EfiKeyD8,
01427 EfiKeyD9,
01428 EfiKeyD10,
01429 EfiKeyD11,
01430 EfiKeyD12,
01431 EfiKeyD13,
01432 EfiKeyDel,
01433 EfiKeyEnd,
01434 EfiKeyPgDn,
01435 EfiKeySeven,
01436 EfiKeyEight,
01437 EfiKeyNine,
01438 EfiKeyE0,
01439 EfiKeyE1,
01440 EfiKeyE2,
01441 EfiKeyE3,
01442 EfiKeyE4,
01443 EfiKeyE5,
01444 EfiKeyE6,
01445 EfiKeyE7,
01446 EfiKeyE8,
01447 EfiKeyE9,
01448 EfiKeyE10,
01449 EfiKeyE11,
01450 EfiKeyE12,
01451 EfiKeyBackSpace,
01452 EfiKeyIns,
01453 EfiKeyHome,
01454 EfiKeyPgUp,
01455 EfiKeyNLck,
01456 EfiKeySlash,
01457 EfiKeyAsterisk,
01458 EfiKeyMinus,
01459 EfiKeyEsc,
01460 EfiKeyF1,
01461 EfiKeyF2,
01462 EfiKeyF3,
01463 EfiKeyF4,
01464 EfiKeyF5,
01465 EfiKeyF6,
01466 EfiKeyF7,
01467 EfiKeyF8,
01468 EfiKeyF9,
01469 EfiKeyF10,
01470 EfiKeyF11,
01471 EfiKeyF12,
01472 EfiKeyPrint,
01473 EfiKeySLck,
01474 EfiKeyPause
01475 } EFI_KEY;
01476
01477 typedef struct {
01478 EFI_KEY Key;
01479 CHAR16 Unicode;
01480 CHAR16 ShiftedUnicode;
01481 CHAR16 AltGrUnicode;
01482 CHAR16 ShiftedAltGrUnicode;
01483 UINT16 Modifier;
01484 UINT16 AffectedAttribute;
01485 } EFI_KEY_DESCRIPTOR;
01486
01487
01488
01489
01490
01491 #define EFI_AFFECTED_BY_STANDARD_SHIFT 0x0001
01492
01493
01494
01495
01496
01497
01498
01499 #define EFI_AFFECTED_BY_CAPS_LOCK 0x0002
01500
01501
01502
01503
01504
01505 #define EFI_AFFECTED_BY_NUM_LOCK 0x0004
01506
01507 typedef struct {
01508 UINT16 LayoutLength;
01509 EFI_GUID Guid;
01510 UINT32 LayoutDescriptorStringOffset;
01511 UINT8 DescriptorCount;
01512
01513 } EFI_HII_KEYBOARD_LAYOUT;
01514
01515 typedef struct {
01516 EFI_HII_PACKAGE_HEADER Header;
01517 UINT16 LayoutCount;
01518
01519 } EFI_HII_KEYBOARD_PACKAGE_HDR;
01520
01521
01522
01523
01524 #define EFI_NULL_MODIFIER 0x0000
01525 #define EFI_LEFT_CONTROL_MODIFIER 0x0001
01526 #define EFI_RIGHT_CONTROL_MODIFIER 0x0002
01527 #define EFI_LEFT_ALT_MODIFIER 0x0003
01528 #define EFI_RIGHT_ALT_MODIFIER 0x0004
01529 #define EFI_ALT_GR_MODIFIER 0x0005
01530 #define EFI_INSERT_MODIFIER 0x0006
01531 #define EFI_DELETE_MODIFIER 0x0007
01532 #define EFI_PAGE_DOWN_MODIFIER 0x0008
01533 #define EFI_PAGE_UP_MODIFIER 0x0009
01534 #define EFI_HOME_MODIFIER 0x000A
01535 #define EFI_END_MODIFIER 0x000B
01536 #define EFI_LEFT_SHIFT_MODIFIER 0x000C
01537 #define EFI_RIGHT_SHIFT_MODIFIER 0x000D
01538 #define EFI_CAPS_LOCK_MODIFIER 0x000E
01539 #define EFI_NUM_LOCK_MODIFIER 0x000F
01540 #define EFI_LEFT_ARROW_MODIFIER 0x0010
01541 #define EFI_RIGHT_ARROW_MODIFIER 0x0011
01542 #define EFI_DOWN_ARROW_MODIFIER 0x0012
01543 #define EFI_UP_ARROW_MODIFIER 0x0013
01544 #define EFI_NS_KEY_MODIFIER 0x0014
01545 #define EFI_NS_KEY_DEPENDENCY_MODIFIER 0x0015
01546 #define EFI_FUNCTION_KEY_ONE_MODIFIER 0x0016
01547 #define EFI_FUNCTION_KEY_TWO_MODIFIER 0x0017
01548 #define EFI_FUNCTION_KEY_THREE_MODIFIER 0x0018
01549 #define EFI_FUNCTION_KEY_FOUR_MODIFIER 0x0019
01550 #define EFI_FUNCTION_KEY_FIVE_MODIFIER 0x001A
01551 #define EFI_FUNCTION_KEY_SIX_MODIFIER 0x001B
01552 #define EFI_FUNCTION_KEY_SEVEN_MODIFIER 0x001C
01553 #define EFI_FUNCTION_KEY_EIGHT_MODIFIER 0x001D
01554 #define EFI_FUNCTION_KEY_NINE_MODIFIER 0x001E
01555 #define EFI_FUNCTION_KEY_TEN_MODIFIER 0x001F
01556 #define EFI_FUNCTION_KEY_ELEVEN_MODIFIER 0x0020
01557 #define EFI_FUNCTION_KEY_TWELVE_MODIFIER 0x0021
01558
01559
01560
01561
01562
01563
01564
01565
01566 #define EFI_PRINT_MODIFIER 0x0022
01567 #define EFI_SYS_REQUEST_MODIFIER 0x0023
01568 #define EFI_SCROLL_LOCK_MODIFIER 0x0024
01569 #define EFI_PAUSE_MODIFIER 0x0025
01570 #define EFI_BREAK_MODIFIER 0x0026
01571
01572 #define EFI_LEFT_LOGO_MODIFIER 0x0027
01573 #define EFI_RIGHT_LOGO_MODIFIER 0x0028
01574 #define EFI_MENU_MODIFIER 0x0029
01575
01576 #pragma pack()
01577
01578
01579
01580
01581
01582
01583
01584
01585
01586
01587
01588 #define STRING_TOKEN(t) t
01589
01590 #endif