]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/BootMaint.h
Enhance BMM to support changing FlowControl setting in Front Page.
[mirror_edk2.git] / IntelFrameworkModulePkg / Universal / BdsDxe / BootMaint / BootMaint.h
index bd74fd2a6b622b962104ef12bbe9b778ec18c862..67eaeec01114bc89f8d319894ec00ea929cb47da 100644 (file)
@@ -196,6 +196,7 @@ typedef enum _FILE_EXPLORER_DISPLAY_CONTEXT {
 #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
@@ -233,6 +234,7 @@ typedef enum _FILE_EXPLORER_DISPLAY_CONTEXT {
 #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
@@ -252,13 +254,23 @@ typedef struct {
 } 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
@@ -273,6 +285,8 @@ typedef struct {
   UINT8                     ParityIndex;\r
   UINT8                     StopBitsIndex;\r
 \r
+  UINT8                     FlowControl;\r
+\r
   UINT8                     IsConIn;\r
   UINT8                     IsConOut;\r
   UINT8                     IsStdErr;\r
@@ -304,10 +318,10 @@ typedef struct {
 } BM_LOAD_CONTEXT;\r
 \r
 typedef struct {\r
-  BBS_TABLE *BbsTable;\r
-  UINTN     Index;\r
-  UINT    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
@@ -747,7 +761,7 @@ ChangeVariableDevicePath (
 **/\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
@@ -1553,7 +1567,8 @@ extern STRING_DEPOSITORY          *DriverOptionHelpStrDepository;
 extern STRING_DEPOSITORY          *TerminalStrDepository;\r
 extern EFI_DEVICE_PATH_PROTOCOL   EndDevicePath[];\r
 extern EFI_GUID                   EfiLegacyDevOrderGuid;\r
-\r
+extern UINT16                     mFlowControlType[2];\r
+extern UINT32                     mFlowControlValue[2];\r
 //\r
 // Shared IFR form update data\r
 //\r