CloverBootloader/MdeModulePkg/Library/BootMaintenanceManagerUiLib/FormGuid.h

207 lines
6.8 KiB
C
Raw Normal View History

/** @file
Formset guids, form id and VarStore data structure for Boot Maintenance Manager.
Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef _FORM_GUID_H_
#define _FORM_GUID_H_
#define BOOT_MAINT_FORMSET_GUID \
{ \
0x642237c7, 0x35d4, 0x472d, {0x83, 0x65, 0x12, 0xe0, 0xcc, 0xf2, 0x7a, 0x22} \
}
#define FORM_MAIN_ID 0x1001
#define FORM_BOOT_ADD_ID 0x1002
#define FORM_BOOT_DEL_ID 0x1003
#define FORM_BOOT_CHG_ID 0x1004
#define FORM_DRV_ADD_ID 0x1005
#define FORM_DRV_DEL_ID 0x1006
#define FORM_DRV_CHG_ID 0x1007
#define FORM_CON_MAIN_ID 0x1008
#define FORM_CON_IN_ID 0x1009
#define FORM_CON_OUT_ID 0x100A
#define FORM_CON_ERR_ID 0x100B
#define FORM_FILE_SEEK_ID 0x100C
#define FORM_FILE_NEW_SEEK_ID 0x100D
#define FORM_DRV_ADD_FILE_ID 0x100E
#define FORM_DRV_ADD_HANDLE_ID 0x100F
#define FORM_DRV_ADD_HANDLE_DESC_ID 0x1010
#define FORM_BOOT_NEXT_ID 0x1011
#define FORM_TIME_OUT_ID 0x1012
#define FORM_BOOT_SETUP_ID 0x1014
#define FORM_DRIVER_SETUP_ID 0x1015
#define FORM_BOOT_LEGACY_DEVICE_ID 0x1016
#define FORM_CON_COM_ID 0x1017
#define FORM_CON_COM_SETUP_ID 0x1018
#define FORM_BOOT_ADD_DESCRIPTION_ID 0x101F
#define FORM_DRIVER_ADD_FILE_DESCRIPTION_ID 0x1020
#define FORM_CON_MODE_ID 0x1021
#define FORM_BOOT_FROM_FILE_ID 0x1024
#define MAXIMUM_FORM_ID 0x10FF
#define KEY_VALUE_COM_SET_BAUD_RATE 0x1101
#define KEY_VALUE_COM_SET_DATA_BITS 0x1102
#define KEY_VALUE_COM_SET_STOP_BITS 0x1103
#define KEY_VALUE_COM_SET_PARITY 0x1104
#define KEY_VALUE_COM_SET_TERMI_TYPE 0x1105
#define KEY_VALUE_MAIN_BOOT_NEXT 0x1106
#define KEY_VALUE_BOOT_ADD_DESC_DATA 0x1107
#define KEY_VALUE_BOOT_ADD_OPT_DATA 0x1108
#define KEY_VALUE_DRIVER_ADD_DESC_DATA 0x1109
#define KEY_VALUE_DRIVER_ADD_OPT_DATA 0x110A
#define KEY_VALUE_SAVE_AND_EXIT 0x110B
#define KEY_VALUE_NO_SAVE_AND_EXIT 0x110C
#define KEY_VALUE_BOOT_FROM_FILE 0x110D
#define FORM_RESET 0x110E
#define KEY_VALUE_BOOT_DESCRIPTION 0x110F
#define KEY_VALUE_BOOT_OPTION 0x1110
#define KEY_VALUE_DRIVER_DESCRIPTION 0x1111
#define KEY_VALUE_DRIVER_OPTION 0x1112
#define KEY_VALUE_SAVE_AND_EXIT_BOOT 0x1113
#define KEY_VALUE_NO_SAVE_AND_EXIT_BOOT 0x1114
#define KEY_VALUE_SAVE_AND_EXIT_DRIVER 0x1115
#define KEY_VALUE_NO_SAVE_AND_EXIT_DRIVER 0x1116
#define KEY_VALUE_TRIGGER_FORM_OPEN_ACTION 0x1117
#define MAXIMUM_NORMAL_KEY_VALUE 0x11FF
//
// Varstore ID defined for Buffer Storage
//
#define VARSTORE_ID_BOOT_MAINT 0x1000
//
// End Label
//
#define LABEL_FORM_MAIN_START 0xfffc
#define LABEL_FORM_MAIN_END 0xfffd
#define LABEL_BMM_PLATFORM_INFORMATION 0xfffe
#define LABEL_END 0xffff
#define MAX_MENU_NUMBER 100
///
/// 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;
UINT32 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[MAX_MENU_NUMBER];
UINT16 DriverAddHandleOptionalData[MAX_MENU_NUMBER];
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[MAX_MENU_NUMBER];
//
// At most 100 input/output/errorout device for console storage
//
UINT8 ConsoleInCheck[MAX_MENU_NUMBER];
UINT8 ConsoleOutCheck[MAX_MENU_NUMBER];
UINT8 ConsoleErrCheck[MAX_MENU_NUMBER];
//
// Boot or Driver Option Order storage
// The value is the OptionNumber+1 because the order list value cannot be 0
// Use UINT32 to hold the potential value 0xFFFF+1=0x10000
//
UINT32 BootOptionOrder[MAX_MENU_NUMBER];
UINT32 DriverOptionOrder[MAX_MENU_NUMBER];
//
// Boot or Driver Option Delete storage
//
BOOLEAN BootOptionDel[MAX_MENU_NUMBER];
BOOLEAN DriverOptionDel[MAX_MENU_NUMBER];
BOOLEAN BootOptionDelMark[MAX_MENU_NUMBER];
BOOLEAN DriverOptionDelMark[MAX_MENU_NUMBER];
//
// This is the Terminal Attributes value storage
//
UINT8 COMBaudRate[MAX_MENU_NUMBER];
UINT8 COMDataRate[MAX_MENU_NUMBER];
UINT8 COMStopBits[MAX_MENU_NUMBER];
UINT8 COMParity[MAX_MENU_NUMBER];
UINT8 COMTerminalType[MAX_MENU_NUMBER];
UINT8 COMFlowControl[MAX_MENU_NUMBER];
//
// 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];
//
// Console Output Text Mode
//
UINT16 ConsoleOutMode;
//
// UINT16 PadArea[10];
//
UINT16 BootDescriptionData[MAX_MENU_NUMBER];
UINT16 BootOptionalData[127];
UINT16 DriverDescriptionData[MAX_MENU_NUMBER];
UINT16 DriverOptionalData[127];
BOOLEAN BootOptionChanged;
BOOLEAN DriverOptionChanged;
UINT8 Active;
UINT8 ForceReconnect;
} BMM_FAKE_NV_DATA;
#endif