/** @file\r
Header file for boot maintenance module.\r
\r
-Copyright (c) 2004 - 2008, Intel Corporation. <BR>\r
-All rights reserved. This program and the accompanying materials\r
+Copyright (c) 2004 - 2011, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
which accompanies this distribution. The full text of the license may be found at\r
http://opensource.org/licenses/bsd-license.php\r
//\r
#define VAR_FLAG EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE\r
\r
-//\r
-// Define Maxmim characters that will be accepted\r
-//\r
-#define MAX_CHAR 480\r
-#define MAX_CHAR_SIZE (MAX_CHAR * 2)\r
-\r
extern EFI_GUID mBootMaintGuid;\r
extern EFI_GUID mFileExplorerGuid;\r
-\r
+extern CHAR16 mFileExplorerStorageName[];\r
+extern CHAR16 mBootMaintStorageName[];\r
//\r
// These are the VFR compiler generated data representing our VFR data.\r
//\r
//\r
typedef UINT8 BBS_TYPE;\r
\r
-typedef enum {\r
- PC_ANSI = 0,\r
- VT_100,\r
- VT_100_PLUS,\r
- VT_UTF8\r
+typedef enum _TYPE_OF_TERMINAL {\r
+ TerminalTypePcAnsi = 0,\r
+ TerminalTypeVt100,\r
+ TerminalTypeVt100Plus,\r
+ TerminalTypeVtUtf8\r
} TYPE_OF_TERMINAL;\r
\r
-typedef enum {\r
- COM1 = 0,\r
- COM2,\r
- UNKNOW_COM\r
-} TYPE_OF_COM;\r
-\r
-typedef enum {\r
- CONIN = 0,\r
- CONOUT,\r
- CONERR,\r
- UNKNOWN_CON\r
-} TYPE_OF_CON;\r
-\r
-typedef enum {\r
- BAUDRATE = 0,\r
- DATABITS,\r
- PARITY,\r
- STOPBITS,\r
- UNKNOW_ATTR\r
-} TYPE_OF_ATTRIBUTE;\r
-\r
-typedef enum {\r
- MANNER_GOTO = 0,\r
- MANNER_CHECK,\r
- MANNER_ONEOF,\r
- MANNER_USER_DEFINE\r
-} TYPE_OF_UPATE_MANNER;\r
-\r
-typedef enum {\r
- INACTIVE_STATE = 0,\r
- BOOT_FROM_FILE_STATE,\r
- ADD_BOOT_OPTION_STATE,\r
- ADD_DRIVER_OPTION_STATE,\r
- UNKNOWN_STATE\r
+typedef enum _FILE_EXPLORER_STATE {\r
+ FileExplorerStateInActive = 0,\r
+ FileExplorerStateBootFromFile,\r
+ FileExplorerStateAddBootOption,\r
+ FileExplorerStateAddDriverOptionState,\r
+ FileExplorerStateUnknown\r
} FILE_EXPLORER_STATE;\r
\r
-typedef enum {\r
- FILE_SYSTEM,\r
- DIRECTORY,\r
- UNKNOWN_CONTEXT\r
+typedef enum _FILE_EXPLORER_DISPLAY_CONTEXT {\r
+ FileExplorerDisplayFileSystem,\r
+ FileExplorerDisplayDirectory,\r
+ FileExplorerDisplayUnknown\r
} FILE_EXPLORER_DISPLAY_CONTEXT;\r
\r
//\r
#define CON_MODE_VAR_OFFSET VAR_OFFSET (ConsoleOutMode)\r
#define CON_DEVICE_VAR_OFFSET VAR_OFFSET (ConsoleCheck)\r
#define OPTION_ORDER_VAR_OFFSET VAR_OFFSET (OptionOrder)\r
-#define DRIVER_OPTION_ORDER_VAR_OFFSET VAR_OFFSET (DriverOptionToBeDeleted)\r
-#define BOOT_OPTION_DEL_VAR_OFFSET VAR_OFFSET (BootOptionDel)\r
-#define DRIVER_OPTION_DEL_VAR_OFFSET VAR_OFFSET (DriverOptionDel)\r
+#define OPTION_DEL_VAR_OFFSET VAR_OFFSET (OptionDel)\r
#define DRIVER_ADD_OPTION_VAR_OFFSET VAR_OFFSET (DriverAddHandleOptionalData)\r
#define COM_BAUD_RATE_VAR_OFFSET VAR_OFFSET (COMBaudRate)\r
#define COM_DATA_RATE_VAR_OFFSET VAR_OFFSET (COMDataRate)\r
#define COM_STOP_BITS_VAR_OFFSET VAR_OFFSET (COMStopBits)\r
#define COM_PARITY_VAR_OFFSET VAR_OFFSET (COMParity)\r
#define COM_TERMINAL_VAR_OFFSET VAR_OFFSET (COMTerminalType)\r
+#define COM_FLOWCONTROL_VAR_OFFSET VAR_OFFSET (COMFlowControl)\r
#define LEGACY_FD_VAR_OFFSET VAR_OFFSET (LegacyFD)\r
#define LEGACY_HD_VAR_OFFSET VAR_OFFSET (LegacyHD)\r
#define LEGACY_CD_VAR_OFFSET VAR_OFFSET (LegacyCD)\r
#define CON_MODE_QUESTION_ID QUESTION_ID (ConsoleOutMode)\r
#define CON_DEVICE_QUESTION_ID QUESTION_ID (ConsoleCheck)\r
#define OPTION_ORDER_QUESTION_ID QUESTION_ID (OptionOrder)\r
-#define DRIVER_OPTION_ORDER_QUESTION_ID QUESTION_ID (DriverOptionToBeDeleted)\r
-#define BOOT_OPTION_DEL_QUESTION_ID QUESTION_ID (BootOptionDel)\r
-#define DRIVER_OPTION_DEL_QUESTION_ID QUESTION_ID (DriverOptionDel)\r
+#define OPTION_DEL_QUESTION_ID QUESTION_ID (OptionDel)\r
#define DRIVER_ADD_OPTION_QUESTION_ID QUESTION_ID (DriverAddHandleOptionalData)\r
#define COM_BAUD_RATE_QUESTION_ID QUESTION_ID (COMBaudRate)\r
#define COM_DATA_RATE_QUESTION_ID QUESTION_ID (COMDataRate)\r
#define COM_STOP_BITS_QUESTION_ID QUESTION_ID (COMStopBits)\r
#define COM_PARITY_QUESTION_ID QUESTION_ID (COMParity)\r
#define COM_TERMINAL_QUESTION_ID QUESTION_ID (COMTerminalType)\r
+#define COM_FLOWCONTROL_QUESTION_ID QUESTION_ID (COMFlowControl)\r
#define LEGACY_FD_QUESTION_ID QUESTION_ID (LegacyFD)\r
#define LEGACY_HD_QUESTION_ID QUESTION_ID (LegacyHD)\r
#define LEGACY_CD_QUESTION_ID QUESTION_ID (LegacyCD)\r
} COM_ATTR;\r
\r
#pragma pack(1)\r
+///\r
+/// For each legacy boot option in BBS table, a corresponding Boot#### variables is created.\r
+/// The structure saves the mapping relationship between #### and the index in the BBS table.\r
+///\r
+typedef struct {\r
+ UINT16 BootOptionNumber;\r
+ UINT16 BbsIndex;\r
+ UINT16 BbsType;\r
+} BOOT_OPTION_BBS_MAPPING;\r
+\r
typedef struct {\r
BBS_TYPE BbsType;\r
///\r
/// Length = sizeof (UINT16) + SIZEOF (Data)\r
///\r
UINT16 Length;\r
- UINT16 *Data;\r
+ UINT16 Data[1];\r
} BM_LEGACY_DEV_ORDER_CONTEXT;\r
#pragma pack()\r
\r
UINT8 ParityIndex;\r
UINT8 StopBitsIndex;\r
\r
+ UINT8 FlowControl;\r
+\r
UINT8 IsConIn;\r
UINT8 IsConOut;\r
UINT8 IsStdErr;\r
} BM_LOAD_CONTEXT;\r
\r
typedef struct {\r
- BBS_TABLE *BbsTable;\r
- UINTN Index;\r
- UINTN BbsCount;\r
- UINT16 *Description;\r
+ BBS_TABLE *BbsEntry;\r
+ UINT16 BbsIndex;\r
+ UINT16 BbsCount;\r
+ CHAR16 *Description;\r
} BM_LEGACY_DEVICE_CONTEXT;\r
\r
typedef struct {\r
FILE_EXPLORER_NV_DATA FeFakeNvData;\r
} BMM_CALLBACK_DATA;\r
\r
-typedef struct _STRING_LIST_NODE {\r
+typedef struct _STRING_LIST_NODE STRING_LIST_NODE;\r
+\r
+struct _STRING_LIST_NODE {\r
EFI_STRING_ID StringToken;\r
- struct _STRING_LIST_NODE *Next;\r
-} STRING_LIST_NODE;\r
+ STRING_LIST_NODE *Next;\r
+};\r
\r
typedef struct _STRING_DEPOSITORY {\r
UINTN TotalNodeNumber;\r
\r
Get the Option Number that has not been allocated for use.\r
\r
+ @param Type The type of Option.\r
+\r
+ @return The available Option Number.\r
+\r
+**/\r
+UINT16\r
+BOpt_GetOptionNumber (\r
+ CHAR16 *Type\r
+ );\r
+\r
+/**\r
+\r
+ Get the Option Number for Boot#### that does not used.\r
+\r
@return The available Option Number.\r
\r
**/\r
\r
/**\r
\r
- Get the Option Number that is not in use.\r
+Get the Option Number for Driver#### that does not used.\r
\r
- @return The unused Option Number.\r
+@return The unused Option Number.\r
\r
**/\r
UINT16\r
**/\r
EFI_STATUS\r
ChangeTerminalDevicePath (\r
- IN OUT EFI_DEVICE_PATH_PROTOCOL *DevicePath,\r
+ IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath,\r
IN BOOLEAN ChangeTerminal\r
);\r
\r
IN EFI_FILE_HANDLE FHand\r
);\r
\r
-/**\r
- This function converts an input device structure to a Unicode string.\r
-\r
- @param DevPath A pointer to the device path structure.\r
-\r
- @return A new allocated Unicode string that represents the device path.\r
-\r
-**/\r
-CHAR16 *\r
-DevicePathToStr (\r
- EFI_DEVICE_PATH_PROTOCOL *DevPath\r
- );\r
-\r
/**\r
Find the first instance of this Protocol in the system and return it's interface.\r
\r
IN UINTN NewSize\r
);\r
\r
-/**\r
- Read the EFI variable (VendorGuid/Name) and return a dynamically allocated\r
- buffer, and the size of the buffer. If failure return NULL.\r
-\r
- @param Name String part of EFI variable name\r
- @param VendorGuid GUID part of EFI variable name\r
- @param VarSize Returns the size of the EFI variable that was read\r
-\r
- @return Dynamically allocated memory that contains a copy of the EFI variable.\r
- @return Caller is responsible freeing the buffer.\r
- @retval NULL Variable was not read\r
-\r
-**/\r
-VOID *\r
-BdsLibGetVariableAndSize (\r
- IN CHAR16 *Name,\r
- IN EFI_GUID *VendorGuid,\r
- OUT UINTN *VarSize\r
- );\r
-\r
/**\r
Function deletes the variable specified by VarName and VarGuid.\r
\r
extern COM_ATTR ParityList[5];\r
extern COM_ATTR StopBitsList[3];\r
extern EFI_GUID TerminalTypeGuid[4];\r
-extern EFI_HII_UPDATE_DATA gUpdateData;\r
extern STRING_DEPOSITORY *FileOptionStrDepository;\r
extern STRING_DEPOSITORY *ConsoleOptionStrDepository;\r
extern STRING_DEPOSITORY *BootOptionStrDepository;\r
extern STRING_DEPOSITORY *TerminalStrDepository;\r
extern EFI_DEVICE_PATH_PROTOCOL EndDevicePath[];\r
extern EFI_GUID EfiLegacyDevOrderGuid;\r
+extern UINT16 mFlowControlType[2];\r
+extern UINT32 mFlowControlValue[2];\r
+//\r
+// Shared IFR form update data\r
+//\r
+extern VOID *mStartOpCodeHandle;\r
+extern VOID *mEndOpCodeHandle;\r
+extern EFI_IFR_GUID_LABEL *mStartLabel;\r
+extern EFI_IFR_GUID_LABEL *mEndLabel;\r
\r
#endif\r