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 + -
显示快捷键?