X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=EdkModulePkg%2FLibrary%2FEdkGenericPlatformBdsLib%2FBootMaint%2FBootMaint.h;fp=EdkModulePkg%2FLibrary%2FEdkGenericPlatformBdsLib%2FBootMaint%2FBootMaint.h;h=0000000000000000000000000000000000000000;hp=a5c9f0d920f14ab37055b2780cc8db2ba367ff7a;hb=808def96aa4589fba9c2d0ea55837754a3b7a4f7;hpb=9216450d1143056a50a5f916984a2d7faf590488 diff --git a/EdkModulePkg/Library/EdkGenericPlatformBdsLib/BootMaint/BootMaint.h b/EdkModulePkg/Library/EdkGenericPlatformBdsLib/BootMaint/BootMaint.h deleted file mode 100644 index a5c9f0d920..0000000000 --- a/EdkModulePkg/Library/EdkGenericPlatformBdsLib/BootMaint/BootMaint.h +++ /dev/null @@ -1,1159 +0,0 @@ -/*++ - -Copyright (c) 2006, Intel Corporation -All rights reserved. This program and the accompanying materials -are licensed and made available under the terms and conditions of the BSD License -which accompanies this distribution. The full text of the license may be found at -http://opensource.org/licenses/bsd-license.php - -THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - -Module Name: - - BootMaint.h - -Abstract: - -Revision History - ---*/ - -#ifndef _BOOT_MAINT_H -#define _BOOT_MAINT_H - -#include "EdkGenericPlatformBdsLibStrDefs.h" -#include "BootMaint/BBSsupport.h" - -// -// Constants which are variable names used to access variables -// -#define VarLegacyDevOrder L"LegacyDevOrder" - -// -// Guid of a NV Variable which store the information about the -// FD/HD/CD/NET/BEV order -// -#define EFI_LEGACY_DEV_ORDER_VARIABLE_GUID \ - { \ - 0xa56074db, 0x65fe, 0x45f7, {0xbd, 0x21, 0x2d, 0x2b, 0xdd, 0x8e, 0x96, 0x52 } \ - } - -// -// String Contant -// -#define StrFloppy L"Floppy Drive #%02x" -#define StrHardDisk L"HardDisk Drive #%02x" -#define StrCDROM L"ATAPI CDROM Drive #%02x" -#define StrNET L"NET Drive #%02x" -#define StrBEV L"BEV Drive #%02x" -#define StrFloppyHelp L"Select Floppy Drive #%02x" -#define StrHardDiskHelp L"Select HardDisk Drive #%02x" -#define StrCDROMHelp L"Select ATAPI CDROM Drive #%02x" -#define StrNETHelp L"NET Drive #%02x" -#define StrBEVHelp L"BEV Drive #%02x" - -// -// Constant will be used in display and file system navigation -// -#define UPDATE_DATA_SIZE 0x100000 -#define MAX_BBS_OFFSET 0xE000 -#define NET_OPTION_OFFSET 0xD800 -#define BEV_OPTION_OFFSET 0xD000 -#define FD_OPTION_OFFSET 0xC000 -#define HD_OPTION_OFFSET 0xB000 -#define CD_OPTION_OFFSET 0xA000 -#define FILE_OPTION_OFFSET 0x8000 -#define FILE_OPTION_MASK 0x7FFF -#define HANDLE_OPTION_OFFSET 0x7000 -#define CONSOLE_OPTION_OFFSET 0x0A00 -#define TERMINAL_OPTION_OFFSET 0x0700 -#define NORMAL_GOTO_OFFSET 0x0100 -#define MAX_STRING_TOKEN_COUNT 0x00FF -// -// Variable created with this flag will be "Efi:...." -// -#define VAR_FLAG EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE - -// -// Define Maxmim characters that will be accepted -// -#define MAX_CHAR 480 -#define MAX_CHAR_SIZE (MAX_CHAR * 2) - -// -// Check to see if current build support option active feature of -// some driver option -// -#define LOAD_OPTION_ACTIVE 0x00000001 - -// -// Check to see if current build support force reconnect feature of -// some driver option -// -#define LOAD_OPTION_FORCE_RECONNECT 0x00000002 - -// -// Below are the form ids for display, form id is used as callback key value, -// some key value definitions are also defined here. By defining this enum type, -// We can easy know where we are. The int to UINT16 convertion should be ok because -// there is a MAXIMUM_FORM_ID which in within the range of UINT16. -// -typedef enum { - IplRelative, - BcvRelative -} BBS_TYPE; - -typedef enum { - FORM_RESERVED_ID = 0, - FORM_MAIN_ID, // 0x0001 - FORM_BOOT_ADD_ID, // 0x0002 - FORM_BOOT_DEL_ID, // 0x0003 - FORM_BOOT_CHG_ID, // 0x0004 - FORM_DRV_ADD_ID, // 0x0005 - FORM_DRV_DEL_ID, // 0x0006 - FORM_DRV_CHG_ID, // 0x0007 - FORM_CON_MAIN_ID, // 0x0008 - FORM_CON_IN_ID, // 0x0009 - FORM_CON_OUT_ID, // 0x000A - FORM_CON_ERR_ID, // 0x000B - FORM_FILE_SEEK_ID, // 0x000C - FORM_FILE_NEW_SEEK_ID, // 0x000D - FORM_DRV_ADD_FILE_ID, // 0x000E - FORM_DRV_ADD_HANDLE_ID, // 0x000F - FORM_DRV_ADD_HANDLE_DESC_ID, // 0x0010 - FORM_BOOT_NEXT_ID, // 0x0011 - FORM_TIME_OUT_ID, // 0x0012 - FORM_RESET, // 0x0013 - FORM_BOOT_SETUP_ID, // 0x0014 - FORM_DRIVER_SETUP_ID, // 0x0015 - FORM_BOOT_LEGACY_DEVICE_ID, // 0x0016 - FORM_CON_COM_ID, // 0x0017 - FORM_CON_COM_SETUP_ID, // 0x0018 - FORM_SET_FD_ORDER_ID, // 0x0019 - FORM_SET_HD_ORDER_ID, // 0x001A - FORM_SET_CD_ORDER_ID, // 0x001B - FORM_SET_NET_ORDER_ID, // 0x001C - FORM_SET_BEV_ORDER_ID, // 0x001D - FORM_FILE_EXPLORER_ID, // 0x001E - FORM_BOOT_ADD_DESCRIPTION_ID, // 0x001F - FORM_DRIVER_ADD_FILE_DESCRIPTION_ID, // 0x0020 -} FORM_ID; - -#define MAXIMUM_FORM_ID 0x007F - -#define KEY_VALUE_COM_SET_BAUD_RATE 0x0080 -#define KEY_VALUE_COM_SET_DATA_BITS 0x0081 -#define KEY_VALUE_COM_SET_STOP_BITS 0x0082 -#define KEY_VALUE_COM_SET_PARITY 0x0083 -#define KEY_VALUE_COM_SET_TERMI_TYPE 0x0084 -#define KEY_VALUE_MAIN_BOOT_NEXT 0x0085 -#define KEY_VALUE_BOOT_ADD_DESC_DATA 0x0086 -#define KEY_VALUE_BOOT_ADD_OPT_DATA 0x0087 -#define KEY_VALUE_DRIVER_ADD_DESC_DATA 0x0088 -#define KEY_VALUE_DRIVER_ADD_OPT_DATA 0x0089 -#define KEY_VALUE_SAVE_AND_EXIT 0x0090 -#define KEY_VALUE_NO_SAVE_AND_EXIT 0x0091 -#define KEY_VALUE_BOOT_FROM_FILE 0x0092 - -#define MAXIMUM_NORMAL_KEY_VALUE NORMAL_GOTO_OFFSET -// -// Below are the number of options in Baudrate, Databits, -// Parity and Stopbits selection for serial ports. -// -#define BM_COM_ATTR_BUADRATE 19 -#define BM_COM_ATTR_DATABITS 4 -#define BM_COM_ATTR_PARITY 5 -#define BM_COM_ATTR_STOPBITS 3 - -// -// Callback function helper -// -#define BMM_CALLBACK_DATA_SIGNATURE EFI_SIGNATURE_32 ('C', 'b', 'c', 'k') -#define BMM_CALLBACK_DATA_FROM_THIS(a) CR (a, BMM_CALLBACK_DATA, BmmDriverCallback, BMM_CALLBACK_DATA_SIGNATURE) - -#define FE_CALLBACK_DATA_FROM_THIS(a) CR (a, BMM_CALLBACK_DATA, FeDriverCallback, BMM_CALLBACK_DATA_SIGNATURE) - -// -// Enumeration type definition -// -typedef enum { - PC_ANSI = 0, - VT_100, - VT_100_PLUS, - VT_UTF8 -} TYPE_OF_TERMINAL; - -typedef enum { - COM1 = 0, - COM2, - UNKNOW_COM -} TYPE_OF_COM; - -typedef enum { - CONIN = 0, - CONOUT, - CONERR, - UNKNOWN_CON -} TYPE_OF_CON; - -typedef enum { - BAUDRATE = 0, - DATABITS, - PARITY, - STOPBITS, - UNKNOW_ATTR -} TYPE_OF_ATTRIBUTE; - -typedef enum { - MANNER_GOTO = 0, - MANNER_CHECK, - MANNER_ONEOF, - MANNER_USER_DEFINE -} TYPE_OF_UPATE_MANNER; - -typedef enum { - INACTIVE_STATE = 0, - BOOT_FROM_FILE_STATE, - ADD_BOOT_OPTION_STATE, - ADD_DRIVER_OPTION_STATE, - UNKNOWN_STATE -} FILE_EXPLORER_STATE; - -typedef enum { - FILE_SYSTEM, - DIRECTORY, - UNKNOWN_CONTEXT -} FILE_EXPLORER_DISPLAY_CONTEXT; - -// -// All of the signatures that will be used in list structure -// -#define BM_MENU_OPTION_SIGNATURE EFI_SIGNATURE_32 ('m', 'e', 'n', 'u') -#define BM_LOAD_OPTION_SIGNATURE EFI_SIGNATURE_32 ('l', 'o', 'a', 'd') -#define BM_CONSOLE_OPTION_SIGNATURE EFI_SIGNATURE_32 ('c', 'n', 's', 'l') -#define BM_FILE_OPTION_SIGNATURE EFI_SIGNATURE_32 ('f', 'i', 'l', 'e') -#define BM_HANDLE_OPTION_SIGNATURE EFI_SIGNATURE_32 ('h', 'n', 'd', 'l') -#define BM_TERMINAL_OPTION_SIGNATURE EFI_SIGNATURE_32 ('t', 'r', 'm', 'l') -#define BM_MENU_ENTRY_SIGNATURE EFI_SIGNATURE_32 ('e', 'n', 't', 'r') - -#define BM_LOAD_CONTEXT_SELECT 0x0 -#define BM_CONSOLE_CONTEXT_SELECT 0x1 -#define BM_FILE_CONTEXT_SELECT 0x2 -#define BM_HANDLE_CONTEXT_SELECT 0x3 -#define BM_TERMINAL_CONTEXT_SELECT 0x5 - -#define BM_CONSOLE_IN_CONTEXT_SELECT 0x6 -#define BM_CONSOLE_OUT_CONTEXT_SELECT 0x7 -#define BM_CONSOLE_ERR_CONTEXT_SELECT 0x8 -#define BM_LEGACY_DEV_CONTEXT_SELECT 0x9 - -// -// Question Id that will be used to create question -// all these values are computed from the structure -// defined below -// -#define QUESTION_ID(Field) ((UINTN) &(((BMM_FAKE_NV_DATA *) 0)->Field)) - -#define BOOT_TIME_OUT_QUESTION_ID QUESTION_ID (BootTimeOut) -#define BOOT_NEXT_QUESTION_ID QUESTION_ID (BootNext) -#define COM1_BAUD_RATE_QUESTION_ID QUESTION_ID (COM1BaudRate) -#define COM1_DATA_RATE_QUESTION_ID QUESTION_ID (COM1DataRate) -#define COM1_STOP_BITS_QUESTION_ID QUESTION_ID (COM1StopBits) -#define COM1_PARITY_QUESTION_ID QUESTION_ID (COM1Parity) -#define COM1_TERMINAL_QUESTION_ID QUESTION_ID (COM2TerminalType) -#define COM2_BAUD_RATE_QUESTION_ID QUESTION_ID (COM2BaudRate) -#define COM2_DATA_RATE_QUESTION_ID QUESTION_ID (COM2DataRate) -#define COM2_STOP_BITS_QUESTION_ID QUESTION_ID (COM2StopBits) -#define COM2_PARITY_QUESTION_ID QUESTION_ID (COM2Parity) -#define COM2_TERMINAL_QUESTION_ID QUESTION_ID (COM2TerminalType) -#define DRV_ADD_HANDLE_DESC_QUESTION_ID QUESTION_ID (DriverAddHandleDesc) -#define DRV_ADD_ACTIVE_QUESTION_ID QUESTION_ID (DriverAddActive) -#define DRV_ADD_RECON_QUESTION_ID QUESTION_ID (DriverAddForceReconnect) -#define CON_IN_COM1_QUESTION_ID QUESTION_ID (ConsoleInputCOM1) -#define CON_IN_COM2_QUESTION_ID QUESTION_ID (ConsoleInputCOM2) -#define CON_OUT_COM1_QUESTION_ID QUESTION_ID (ConsoleOutputCOM1) -#define CON_OUT_COM2_QUESTION_ID QUESTION_ID (ConsoleOutputCOM2) -#define CON_ERR_COM1_QUESTION_ID QUESTION_ID (ConsoleErrorCOM1) -#define CON_ERR_COM2_QUESTION_ID QUESTION_ID (ConsoleErrorCOM2) -#define CON_DEVICE_QUESTION_ID QUESTION_ID (ConsoleCheck) -#define OPTION_ORDER_QUESTION_ID QUESTION_ID (OptionOrder) -#define DRIVER_OPTION_ORDER_QUESTION_ID QUESTION_ID (DriverOptionToBeDeleted) -#define BOOT_OPTION_DEL_QUESTION_ID QUESTION_ID (BootOptionDel) -#define DRIVER_OPTION_DEL_QUESTION_ID QUESTION_ID (DriverOptionDel) -#define DRIVER_ADD_OPTION_QUESTION_ID QUESTION_ID (DriverAddHandleOptionalData) -#define COM_BAUD_RATE_QUESTION_ID QUESTION_ID (COMBaudRate) -#define COM_DATA_RATE_QUESTION_ID QUESTION_ID (COMDataRate) -#define COM_STOP_BITS_QUESTION_ID QUESTION_ID (COMStopBits) -#define COM_PARITY_QUESTION_ID QUESTION_ID (COMParity) -#define COM_TERMINAL_QUESTION_ID QUESTION_ID (COMTerminalType) -#define LEGACY_FD_QUESTION_ID QUESTION_ID (LegacyFD) -#define LEGACY_HD_QUESTION_ID QUESTION_ID (LegacyHD) -#define LEGACY_CD_QUESTION_ID QUESTION_ID (LegacyCD) -#define LEGACY_NET_QUESTION_ID QUESTION_ID (LegacyNET) -#define LEGACY_BEV_QUESTION_ID QUESTION_ID (LegacyBEV) - -#define STRING_DEPOSITORY_NUMBER 8 - -// -// #pragma pack(1) -// -// Serial Ports attributes, first one is the value for -// return from callback function, stringtoken is used to -// display the value properly -// -typedef struct { - UINTN Value; - UINT16 StringToken; -} COM_ATTR; - -// -// This is the structure that will be used to store the -// question's current value. Use it at initialize time to -// set default value for each question. When using at run -// time, this map is returned by the callback function, -// so dynamically changing the question's value will be -// possible through this mechanism -// -typedef struct { - // - // Three questions displayed at the main page - // for Timeout, BootNext Variables respectively - // - UINT16 BootTimeOut; - UINT16 BootNext; - - // - // This is the COM1 Attributes value storage - // - UINT8 COM1BaudRate; - UINT8 COM1DataRate; - UINT8 COM1StopBits; - UINT8 COM1Parity; - UINT8 COM1TerminalType; - - // - // This is the COM2 Attributes value storage - // - UINT8 COM2BaudRate; - UINT8 COM2DataRate; - UINT8 COM2StopBits; - UINT8 COM2Parity; - UINT8 COM2TerminalType; - - // - // Driver Option Add Handle page storage - // - UINT16 DriverAddHandleDesc[100]; - UINT16 DriverAddHandleOptionalData[100]; - UINT8 DriverAddActive; - UINT8 DriverAddForceReconnect; - - // - // Console Input/Output/Errorout using COM port check storage - // - UINT8 ConsoleInputCOM1; - UINT8 ConsoleInputCOM2; - UINT8 ConsoleOutputCOM1; - UINT8 ConsoleOutputCOM2; - UINT8 ConsoleErrorCOM1; - UINT8 ConsoleErrorCOM2; - - // - // At most 100 input/output/errorout device for console storage - // - UINT8 ConsoleCheck[100]; - - // - // Boot or Driver Option Order storage - // - UINT8 OptionOrder[100]; - UINT8 DriverOptionToBeDeleted[100]; - - // - // Boot Option Delete storage - // - UINT8 BootOptionDel[100]; - UINT8 DriverOptionDel[100]; - - // - // This is the Terminal Attributes value storage - // - UINT8 COMBaudRate; - UINT8 COMDataRate; - UINT8 COMStopBits; - UINT8 COMParity; - UINT8 COMTerminalType; - - // - // Legacy Device Order Selection Storage - // - UINT8 LegacyFD[100]; - UINT8 LegacyHD[100]; - UINT8 LegacyCD[100]; - UINT8 LegacyNET[100]; - UINT8 LegacyBEV[100]; - - // - // We use DisableMap array to record the enable/disable state of each boot device - // It should be taken as a bit array, from left to right there are totally 256 bits - // the most left one stands for BBS table item 0, and the most right one stands for item 256 - // If the bit is 1, it means the boot device has been disabled. - // - UINT8 DisableMap[32]; - - // - // UINT16 PadArea[10]; - // -} BMM_FAKE_NV_DATA; - -typedef struct { - UINT16 DescriptionData[75]; - UINT16 OptionalData[127]; - UINT8 Active; - UINT8 ForceReconnect; -} FILE_EXPLORER_NV_DATA; - -typedef struct { - BBS_TYPE BbsType; - // - // Length = sizeof (UINT16) + SIZEOF (Data) - // - UINT16 Length; - UINT16 *Data; -} BM_LEGACY_DEV_ORDER_CONTEXT; - -typedef struct { - UINT64 BaudRate; - UINT8 DataBits; - UINT8 Parity; - UINT8 StopBits; - - UINT8 BaudRateIndex; - UINT8 DataBitsIndex; - UINT8 ParityIndex; - UINT8 StopBitsIndex; - - UINT8 IsConIn; - UINT8 IsConOut; - UINT8 IsStdErr; - UINT8 TerminalType; - - EFI_DEVICE_PATH_PROTOCOL *DevicePath; -} BM_TERMINAL_CONTEXT; - -typedef struct { - BOOLEAN IsBootNext; - BOOLEAN LoadOptionModified; - BOOLEAN Deleted; - - BOOLEAN IsLegacy; - BOOLEAN IsActive; - BOOLEAN ForceReconnect; - UINTN OptionalDataSize; - - UINTN LoadOptionSize; - UINT8 *LoadOption; - - UINT32 Attributes; - UINT16 FilePathListLength; - UINT16 *Description; - EFI_DEVICE_PATH_PROTOCOL *FilePathList; - UINT8 *OptionalData; - - UINT16 BbsIndex; -} BM_LOAD_CONTEXT; - -typedef struct { - BBS_TABLE *BbsTable; - UINTN Index; - UINTN BbsCount; - UINT16 *Description; -} BM_LEGACY_DEVICE_CONTEXT; - -typedef struct { - - BOOLEAN IsActive; - - BOOLEAN IsTerminal; - - EFI_DEVICE_PATH_PROTOCOL *DevicePath; -} BM_CONSOLE_CONTEXT; - -typedef struct { - EFI_HANDLE Handle; - EFI_DEVICE_PATH_PROTOCOL *DevicePath; - EFI_FILE_HANDLE FHandle; - UINT16 *FileName; - EFI_FILE_SYSTEM_VOLUME_LABEL_INFO *Info; - - BOOLEAN IsRoot; - BOOLEAN IsDir; - BOOLEAN IsRemovableMedia; - BOOLEAN IsLoadFile; - BOOLEAN IsBootLegacy; -} BM_FILE_CONTEXT; - -typedef struct { - EFI_HANDLE Handle; - EFI_DEVICE_PATH_PROTOCOL *DevicePath; -} BM_HANDLE_CONTEXT; - -typedef struct { - UINTN Signature; - LIST_ENTRY Head; - UINTN MenuNumber; -} BM_MENU_OPTION; - -typedef struct { - UINTN Signature; - LIST_ENTRY Link; - UINTN OptionNumber; - UINT16 *DisplayString; - UINT16 *HelpString; - STRING_REF DisplayStringToken; - STRING_REF HelpStringToken; - UINTN ContextSelection; - VOID *VariableContext; -} BM_MENU_ENTRY; - -typedef struct { - // - // Shared callback data. - // - UINTN Signature; - EFI_HII_PROTOCOL *Hii; - BM_MENU_ENTRY *MenuEntry; - BM_HANDLE_CONTEXT *HandleContext; - BM_FILE_CONTEXT *FileContext; - BM_LOAD_CONTEXT *LoadContext; - BM_TERMINAL_CONTEXT *TerminalContext; - UINTN CurrentTerminal; - BBS_TYPE BbsType; - - // - // BMM main formset callback data. - // - EFI_HII_HANDLE BmmHiiHandle; - EFI_HANDLE BmmCallbackHandle; - EFI_FORM_CALLBACK_PROTOCOL BmmDriverCallback; - FORM_ID BmmCurrentPageId; - FORM_ID BmmPreviousPageId; - BOOLEAN BmmAskSaveOrNot; - BMM_FAKE_NV_DATA *BmmFakeNvData; - BMM_FAKE_NV_DATA BmmOldFakeNVData; - - // - // File explorer formset callback data. - // - EFI_HII_HANDLE FeHiiHandle; - EFI_HANDLE FeCallbackHandle; - EFI_FORM_CALLBACK_PROTOCOL FeDriverCallback; - FILE_EXPLORER_STATE FeCurrentState; - FILE_EXPLORER_DISPLAY_CONTEXT FeDisplayContext; -} BMM_CALLBACK_DATA; - -typedef struct _STRING_LIST_NODE { - STRING_REF StringToken; - struct _STRING_LIST_NODE *Next; -} STRING_LIST_NODE; - -typedef struct _STRING_DEPOSITORY { - UINTN TotalNodeNumber; - STRING_LIST_NODE *CurrentNode; - STRING_LIST_NODE *ListHead; -} STRING_DEPOSITORY; - -// -// #pragma pack() -// -// For initializing File System menu -// -EFI_STATUS -BOpt_FindFileSystem ( - IN BMM_CALLBACK_DATA *CallbackData - ) -; - -// -// For cleaning up File System menu -// -VOID -BOpt_FreeFileSystem ( - VOID - ) -; - -// -// For initializing File Navigation menu -// -EFI_STATUS -BOpt_FindFiles ( - IN BMM_CALLBACK_DATA *CallbackData, - IN BM_MENU_ENTRY *MenuEntry - ) -; - -// -// For cleaning up File Navigation menu -// -VOID -BOpt_FreeFiles ( - VOID - ) -; - -// -// For Initializing handle navigation menu -// -EFI_STATUS -BOpt_FindDrivers ( - VOID - ) -; - -// -// For Cleaning up handle navigation menu -// -VOID -BOpt_FreeDrivers(); - -// -// For initializing Boot Option menu -// -EFI_STATUS -BOpt_GetBootOptions ( - IN BMM_CALLBACK_DATA *CallbackData - ); - -// -// For Initializing Driver option menu -// -EFI_STATUS -BOpt_GetDriverOptions ( - IN BMM_CALLBACK_DATA *CallbackData - ); - -// -// For Cleaning up boot option menu -// -VOID -BOpt_FreeBootOptions (); - -// -// For cleaning up driver option menu -// -VOID -BOpt_FreeDriverOptions(); - -// -// For Initializing HD/FD/CD/NET/BEV option menu -// -EFI_STATUS -BOpt_GetLegacyOptions(); - -// -// For cleaning up driver option menu -// -VOID -BOpt_FreeLegacyOptions(); - -// -// this function is used to take place of all other free menu actions -// -VOID -BOpt_FreeMenu ( - BM_MENU_OPTION *FreeMenu - ); - - -// -// Following are the helper functions used -// -CHAR16 * -BOpt_AppendFileName ( - IN CHAR16 *Str1, - IN CHAR16 *Str2 - ); - -BOOLEAN -BOpt_IsEfiImageName ( - IN UINT16 *FileName - ); - -BOOLEAN -BOpt_IsEfiApp ( - IN EFI_FILE_HANDLE Dir, - IN UINT16 *FileName - ); - -// -// Get current unused boot option number -// -UINT16 -BOpt_GetBootOptionNumber (); - -// -// Get current unused driver option number -// -UINT16 -BOpt_GetDriverOptionNumber (); - -BM_MENU_ENTRY * -BOpt_CreateMenuEntry ( - UINTN MenuType - ); - -VOID -BOpt_DestroyMenuEntry ( - BM_MENU_ENTRY *MenuEntry - ); - -BM_MENU_ENTRY * -BOpt_GetMenuEntry ( - BM_MENU_OPTION *MenuOption, - UINTN MenuNumber - ); - -// -// a helper function used to free pool type memory -// -VOID -SafeFreePool ( - IN VOID *Buffer - ); - -// -// Locate all serial io devices for console -// -EFI_STATUS -LocateSerialIo (); - -// -// Initializing Console menu -// -EFI_STATUS -GetAllConsoles(); - -// -// Cleaning up console menu -// -EFI_STATUS -FreeAllConsoles(); - -VOID -ChangeVariableDevicePath ( - EFI_DEVICE_PATH_PROTOCOL *DevicePath -); - -EFI_STATUS -ChangeTerminalDevicePath ( - EFI_DEVICE_PATH_PROTOCOL *DevicePath, - BOOLEAN ChangeTerminal -); -// -// Variable operation by menu selection -// -EFI_STATUS -Var_UpdateBootOption ( - IN BMM_CALLBACK_DATA *CallbackData, - IN FILE_EXPLORER_NV_DATA *NvRamMap - ); - -EFI_STATUS -Var_DelBootOption (); - -EFI_STATUS -Var_ChangeBootOrder (); - -EFI_STATUS -Var_UpdateDriverOption ( - IN BMM_CALLBACK_DATA *CallbackData, - IN EFI_HII_HANDLE HiiHandle, - IN UINT16 *DescriptionData, - IN UINT16 *OptionalData, - IN UINT8 ForceReconnect - ); - -EFI_STATUS -Var_DelDriverOption (); - -EFI_STATUS -Var_ChangeDriverOrder (); - -EFI_STATUS -Var_UpdateConsoleInpOption (); - -EFI_STATUS -Var_UpdateConsoleOutOption (); - -EFI_STATUS -Var_UpdateErrorOutOption (); - -VOID -Var_UpdateAllConsoleOption (); - -EFI_STATUS -Var_UpdateBootNext ( - IN BMM_CALLBACK_DATA *CallbackData - ); - -EFI_STATUS -Var_UpdateBootOrder ( - IN BMM_CALLBACK_DATA *CallbackData - ); - -EFI_STATUS -Var_UpdateDriverOrder ( - IN BMM_CALLBACK_DATA *CallbackData - ); - -EFI_STATUS -Var_UpdateBBSOption ( - IN BMM_CALLBACK_DATA *CallbackData - ); - -// -// Following are page create and refresh functions -// -VOID -RefreshUpdateData ( - IN BOOLEAN FormSetUpdate, - IN EFI_PHYSICAL_ADDRESS FormCallbackHandle, - IN BOOLEAN FormUpdate, - IN STRING_REF FormTitle, - IN UINT16 DataCount - ); - -VOID -CleanUpPage ( - IN EFI_FORM_LABEL LabelId, - IN BMM_CALLBACK_DATA *CallbackData - ); - -EFI_STATUS -UpdatePage ( - IN BMM_CALLBACK_DATA *CallbackData, - IN BM_MENU_OPTION *UpdatingMenu, - IN UINT16 UpdatingPage, - IN UINT16 UpdatingManner, - IN UINT16 QuestionIdStart, - IN UINT16 GotoForm, - IN UINT16 GotoAlternateForm, - IN STRING_REF DisplayTokenStart, - IN STRING_REF HelpTokenStart, - IN UINT16 KeyValueStart - ); - -VOID -UpdateBootAddPage ( - IN BMM_CALLBACK_DATA *CallbackData - ); - -VOID -UpdateBootDelPage ( - IN BMM_CALLBACK_DATA *CallbackData - ); - -VOID -UpdateDrvAddFilePage ( - IN BMM_CALLBACK_DATA *CallbackData - ); - -VOID -UpdateDrvAddHandlePage ( - IN BMM_CALLBACK_DATA *CallbackData - ); - -VOID -UpdateDrvDelPage ( - IN BMM_CALLBACK_DATA *CallbackData - ); - -VOID -UpdateDriverAddHandleDescPage ( - IN BMM_CALLBACK_DATA *CallbackData - ); - -VOID -UpdateBootTimeOut ( - IN BMM_CALLBACK_DATA *CallbackData - ); - -VOID -UpdateConInPage ( - IN BMM_CALLBACK_DATA *CallbackData - ); - -VOID -UpdateConOutPage ( - IN BMM_CALLBACK_DATA *CallbackData - ); - -VOID -UpdateStdErrPage ( - IN BMM_CALLBACK_DATA *CallbackData - ); - -VOID -UpdatePageBody ( - IN UINT16 UpdatePageId, - IN BMM_CALLBACK_DATA *CallbackData - ); - -VOID -UpdateCOM1Page ( - IN BMM_CALLBACK_DATA *CallbackData - ); - -VOID -UpdateCOM2Page ( - IN BMM_CALLBACK_DATA *CallbackData - ); - -VOID -UpdateBootOrderPage ( - IN BMM_CALLBACK_DATA *CallbackData - ); - -VOID -UpdateDriverOrderPage ( - IN BMM_CALLBACK_DATA *CallbackData - ); - -VOID -UpdateBootNextPage ( - IN BMM_CALLBACK_DATA *CallbackData - ); - -VOID -UpdateTimeOutPage ( - IN BMM_CALLBACK_DATA *CallbackData - ); - -VOID -UpdateTerminalPage ( - IN BMM_CALLBACK_DATA *CallbackData - ); - -VOID -UpdateConCOMPage ( - IN BMM_CALLBACK_DATA *CallbackData - ); - -VOID -UpdateSetLegacyDeviceOrderPage ( - IN UINT16 UpdatePageId, - IN BMM_CALLBACK_DATA *CallbackData -); - -EFI_STATUS -BootLegacy ( - IN UINT16 BbsType, - IN UINT16 BbsFlag -); - -BM_MENU_ENTRY * -GetCurrentTerminal ( - UINTN TerminalNumber -); - -EFI_FILE_HANDLE -EfiLibOpenRoot ( - IN EFI_HANDLE DeviceHandle - ); - -EFI_FILE_SYSTEM_VOLUME_LABEL_INFO * -EfiLibFileSystemVolumeLabelInfo ( - IN EFI_FILE_HANDLE FHand - ); - -EFI_FILE_INFO * -EfiLibFileInfo ( - IN EFI_FILE_HANDLE FHand - ); - -CHAR16 * -DevicePathToStr ( - EFI_DEVICE_PATH_PROTOCOL *DevPath - ); - -EFI_STATUS -EfiLibLocateProtocol ( - IN EFI_GUID *ProtocolGuid, - OUT VOID **Interface - ); - -VOID * -EfiReallocatePool ( - IN VOID *OldPool, - IN UINTN OldSize, - IN UINTN NewSize - ); - -CHAR16 * -DevicePathToStr ( - EFI_DEVICE_PATH_PROTOCOL *DevPath - ); - -VOID * -BdsLibGetVariableAndSize ( - IN CHAR16 *Name, - IN EFI_GUID *VendorGuid, - OUT UINTN *VarSize - ); - -EFI_STATUS -EfiLibDeleteVariable ( - IN CHAR16 *VarName, - IN EFI_GUID *VarGuid - ); - -CHAR16 * -EfiStrDuplicate ( - IN CHAR16 *Src - ); - -BOOLEAN -EfiLibMatchDevicePaths ( - IN EFI_DEVICE_PATH_PROTOCOL *Multi, - IN EFI_DEVICE_PATH_PROTOCOL *Single - ); - -UINTN -EfiDevicePathInstanceCount ( - IN EFI_DEVICE_PATH_PROTOCOL *DevicePath - ); - -EFI_STATUS -CreateMenuStringToken ( - IN BMM_CALLBACK_DATA *CallbackData, - IN EFI_HII_HANDLE HiiHandle, - IN BM_MENU_OPTION *MenuOption - ); - -UINT16 * -EfiLibStrFromDatahub ( - IN EFI_DEVICE_PATH_PROTOCOL *DevPath - ); - -VOID * -GetLegacyBootOptionVar ( - IN UINTN DeviceType, - OUT UINTN *OptionIndex, - OUT UINTN *OptionSize - ); - -EFI_STATUS -InitializeBM ( - VOID - ); - -EFI_STATUS -BdsStartBootMaint ( - VOID - ); - -VOID -InitializeStringDepository (); - -STRING_REF -GetStringTokenFromDepository ( - IN BMM_CALLBACK_DATA *CallbackData, - IN STRING_DEPOSITORY *StringDepository - ) ; - -VOID -ReclaimStringDepository ( - VOID - ); - -VOID -CleanUpStringDepository ( - VOID - ); - -EFI_STATUS -ApplyChangeHandler ( - IN BMM_CALLBACK_DATA *Private, - IN BMM_FAKE_NV_DATA *CurrentFakeNVMap, - IN FORM_ID FormId - ); - -VOID -DiscardChangeHandler ( - IN BMM_CALLBACK_DATA *Private, - IN BMM_FAKE_NV_DATA *CurrentFakeNVMap - ); - -VOID -UpdatePageId ( - BMM_CALLBACK_DATA *Private, - UINT16 NewPageId - ); - -EFI_STATUS -BootThisFile ( - IN BM_FILE_CONTEXT *FileContext - ); - -BOOLEAN -UpdateFileExplorer ( - IN BMM_CALLBACK_DATA *CallbackData, - IN UINT16 KeyValue - ); - -EFI_STATUS -EFIAPI -FileExplorerCallback ( - IN EFI_FORM_CALLBACK_PROTOCOL *This, - IN UINT16 KeyValue, - IN EFI_IFR_DATA_ARRAY *Data, - OUT EFI_HII_CALLBACK_PACKET **Packet - ); - -EFI_STATUS -FormSetDispatcher ( - IN BMM_CALLBACK_DATA *CallbackData - ); - -VOID CreateCallbackPacket ( - OUT EFI_HII_CALLBACK_PACKET **Packet, - IN UINT16 Flags - ); - -// -// Global variable in this program (defined in data.c) -// -extern BM_MENU_OPTION BootOptionMenu; -extern BM_MENU_OPTION DriverOptionMenu; -extern BM_MENU_OPTION FsOptionMenu; -extern BM_MENU_OPTION ConsoleInpMenu; -extern BM_MENU_OPTION ConsoleOutMenu; -extern BM_MENU_OPTION ConsoleErrMenu; -extern BM_MENU_OPTION DirectoryMenu; -extern BM_MENU_OPTION DriverMenu; -extern BM_MENU_OPTION TerminalMenu; -extern BM_MENU_OPTION LegacyFDMenu; -extern BM_MENU_OPTION LegacyHDMenu; -extern BM_MENU_OPTION LegacyCDMenu; -extern BM_MENU_OPTION LegacyNETMenu; -extern BM_MENU_OPTION LegacyBEVMenu; -extern UINT16 TerminalType[]; -extern COM_ATTR BaudRateList[19]; -extern COM_ATTR DataBitsList[4]; -extern COM_ATTR ParityList[5]; -extern COM_ATTR StopBitsList[3]; -extern EFI_GUID Guid[4]; -extern EFI_HII_UPDATE_DATA *UpdateData; -extern STRING_DEPOSITORY *FileOptionStrDepository; -extern STRING_DEPOSITORY *ConsoleOptionStrDepository; -extern STRING_DEPOSITORY *BootOptionStrDepository; -extern STRING_DEPOSITORY *BootOptionHelpStrDepository; -extern STRING_DEPOSITORY *DriverOptionStrDepository; -extern STRING_DEPOSITORY *DriverOptionHelpStrDepository; -extern STRING_DEPOSITORY *TerminalStrDepository; -extern EFI_DEVICE_PATH_PROTOCOL EndDevicePath[]; -extern EFI_GUID EfiLegacyDevOrderGuid; - -#endif