setup.h
来自「EFI BIOS是Intel提出的下一代的BIOS标准。这里上传的Edk源代码是」· C头文件 代码 · 共 524 行 · 第 1/2 页
H
524 行
typedef struct {
UINT32 Length; // Length in bytes between beginning of struc and end of Strings
CHAR8 LanguageCode[4]; // ISO-639-2 language code with a null-terminator
RELOFST PrintableLanguageName; // Translated name of the Language, "English"/"Espanol" etc
UINT32 Attributes; // If on, the language is intended to be printed right to left. The default (off) is to print left to right.
RELOFST StringsPointers[1]; // Pointing to string offset from beginning of String Binary
EFI_STRING Strings[1]; // Array of String Entries. Note the number of entries for Strings and StringsPointers will be the same
} EFI_LANGUAGE_SET;
//
// This encapsulates all the pointers associated with found IFR binaries
//
typedef struct _EFI_IFR_BINARY {
struct _EFI_IFR_BINARY *Next;
VOID *IfrPackage; // Handy for use in freeing the data later since this is the header of the buffer
VOID *FormBinary;
EFI_HII_HANDLE Handle;
STRING_REF TitleToken;
BOOLEAN UnRegisterOnExit;
} EFI_IFR_BINARY;
//
// This encapsulates all the questions (tags) for a particular Form Set
//
typedef struct _EFI_FORM_TAGS {
struct _EFI_FORM_TAGS *Next;
EFI_TAG *Tags;
} EFI_FORM_TAGS;
//
// This is the database of all inconsistency data. Each op-code associated
// with inconsistency will be tracked here. This optimizes the search requirement
// since we will back mark the main tag structure with the op-codes that have reference
// to inconsistency data. This way when parsing the main tag structure and encountering
// the inconsistency mark - we can search this database to know what the inconsistency
// parameters are for that entry.
//
typedef struct _EFI_INCONSISTENCY_DATA {
struct _EFI_INCONSISTENCY_DATA *Next;
struct _EFI_INCONSISTENCY_DATA *Previous;
UINT8 Operand;
STRING_REF Popup;
UINT16 QuestionId1;
UINT16 QuestionId2;
UINT16 Value;
UINT16 ListLength;
UINT16 ConsistencyId;
UINT16 *ValueList;
UINT16 VariableNumber;
UINT16 VariableNumber2;
UINT8 Width;
} EFI_INCONSISTENCY_DATA;
//
// Encapsulating all found Tag information from all sources
// Each encapsulation also contains the NvRamMap buffer and the Size of the NV store
//
typedef struct _EFI_FILE_FORM_TAGS {
struct _EFI_FILE_FORM_TAGS *NextFile;
EFI_INCONSISTENCY_DATA *InconsistentTags;
EFI_VARIABLE_DEFINITION *VariableDefinitions;
EFI_FORM_TAGS FormTags;
} EFI_FILE_FORM_TAGS;
typedef struct {
STRING_REF Banner[BANNER_HEIGHT][BANNER_COLUMNS];
} BANNER_DATA;
//
// Head of the Binary structures
//
EFI_IFR_BINARY *gBinaryDataHead;
//
// The IFR binary that the user chose to run
//
UINTN gActiveIfr;
EFI_HII_PROTOCOL *Hii;
VOID *CachedNVEntry;
BANNER_DATA *BannerData;
EFI_HII_HANDLE FrontPageHandle;
STRING_REF FrontPageTimeOutTitle;
UINT16 FrontPageTimeOutValue;
UINTN gClassOfVfr;
UINTN gFunctionKeySetting;
BOOLEAN gResetRequired;
BOOLEAN gExitRequired;
BOOLEAN gSaveRequired;
BOOLEAN gNvUpdateRequired;
UINT16 gConsistencyId;
UINTN gPriorMenuEntry;
EFI_HII_HANDLE gHiiHandle;
BOOLEAN gFirstIn;
VOID *gPreviousValue;
UINT16 gDirection;
SCREEN_DESCRIPTOR gScreenDimensions;
BOOLEAN gUpArrow;
BOOLEAN gDownArrow;
BOOLEAN gTimeOnScreen;
BOOLEAN gDateOnScreen;
//
// Browser Global Strings
//
CHAR16 *gFunctionOneString;
CHAR16 *gFunctionTwoString;
CHAR16 *gFunctionNineString;
CHAR16 *gFunctionTenString;
CHAR16 *gEnterString;
CHAR16 *gEnterCommitString;
CHAR16 *gEscapeString;
CHAR16 *gMoveHighlight;
CHAR16 *gMakeSelection;
CHAR16 *gNumericInput;
CHAR16 *gToggleCheckBox;
CHAR16 *gPromptForPassword;
CHAR16 *gPromptForNewPassword;
CHAR16 *gConfirmPassword;
CHAR16 *gConfirmError;
CHAR16 *gPressEnter;
CHAR16 *gEmptyString;
CHAR16 *gAreYouSure;
CHAR16 *gYesResponse;
CHAR16 *gNoResponse;
CHAR16 *gMiniString;
CHAR16 *gPlusString;
CHAR16 *gMinusString;
CHAR16 *gAdjustNumber;
CHAR16 gPromptBlockWidth;
CHAR16 gOptionBlockWidth;
CHAR16 gHelpBlockWidth;
//
// Global Procedure Defines
//
VOID
InitializeBrowserStrings (
VOID
)
;
UINTN
Print (
IN CHAR16 *fmt,
...
)
;
UINTN
PrintString (
CHAR16 *String
)
;
UINTN
PrintChar (
CHAR16 Character
)
;
UINTN
PrintAt (
IN UINTN Column,
IN UINTN Row,
IN CHAR16 *fmt,
...
)
;
UINTN
PrintStringAt (
IN UINTN Column,
IN UINTN Row,
CHAR16 *String
)
;
UINTN
PrintCharAt (
IN UINTN Column,
IN UINTN Row,
CHAR16 Character
)
;
VOID
DisplayPageFrame (
VOID
)
;
CHAR16 *
GetToken (
IN STRING_REF IfrBinaryTitle,
IN EFI_HII_HANDLE HiiHandle
)
;
VOID
GetTagCount (
IN UINT8 *RawFormSet,
IN OUT UINT16 *NumberOfTags
)
;
VOID
GetNumericHeader (
IN EFI_TAG *Tag,
IN UINT8 *RawFormSet,
IN UINT16 Index,
IN UINT16 NumberOfLines,
IN EFI_FILE_FORM_TAGS *FileFormTags,
IN UINT16 CurrentVariable
)
;
VOID
GetQuestionHeader (
IN EFI_TAG *Tag,
IN UINT8 *RawFormSet,
IN UINT16 Index,
IN EFI_FILE_FORM_TAGS *FileFormTags,
IN UINT16 CurrentVariable
)
;
UINTN
EFIAPI
VSPrint (
OUT CHAR16 *StartOfBuffer,
IN UINTN BufferSize,
IN CONST CHAR16 *FormatString,
IN VA_LIST Marker
)
;
VOID
CreateSharedPopUp (
IN UINTN RequestedWidth,
IN UINTN NumberOfLines,
IN CHAR16 **ArrayOfStrings
)
;
EFI_STATUS
CreateDialog (
IN UINTN NumberOfLines,
IN BOOLEAN HotKey,
IN UINTN MaximumStringSize,
OUT CHAR16 *StringBuffer,
OUT EFI_INPUT_KEY *KeyValue,
IN CHAR16 *String,
...
)
;
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?