You've already forked edk2-upstream
mirror of
https://github.com/Dasharo/edk2-upstream.git
synced 2026-03-06 15:03:57 -08:00
Update Browser to provide the customization possibilities.
Signed-off-by: Eric Dong <eric.dong@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> MdeModulePkg Patch Tested-by: Laszlo Ersek <lersek@redhat.com> OvmfPkg Patch Tested-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14537 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -59,6 +59,7 @@ INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
|
||||
INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
|
||||
INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
|
||||
INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
|
||||
INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
|
||||
|
||||
INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
|
||||
INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
|
||||
|
||||
@@ -85,6 +85,7 @@
|
||||
SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf
|
||||
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
|
||||
PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf
|
||||
CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
|
||||
#
|
||||
# Platform
|
||||
#
|
||||
@@ -191,6 +192,7 @@
|
||||
}
|
||||
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
|
||||
MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
|
||||
MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
|
||||
|
||||
MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
|
||||
MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
|
||||
|
||||
@@ -85,6 +85,7 @@
|
||||
SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf
|
||||
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
|
||||
PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf
|
||||
CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
|
||||
#
|
||||
# Platform
|
||||
#
|
||||
@@ -192,6 +193,7 @@
|
||||
}
|
||||
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
|
||||
MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
|
||||
MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
|
||||
|
||||
MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
|
||||
MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
|
||||
|
||||
@@ -0,0 +1,356 @@
|
||||
/** @file
|
||||
This library class defines a set of interfaces to customize Display module
|
||||
|
||||
Copyright (c) 2013, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that 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.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __CUSTOMIZED_DISPLAY_LIB_H__
|
||||
#define __CUSTOMIZED_DISPLAY_LIB_H__
|
||||
|
||||
#include <Protocol/DisplayProtocol.h>
|
||||
|
||||
/**
|
||||
+------------------------------------------------------------------------------+
|
||||
| Setup Page |
|
||||
+------------------------------------------------------------------------------+
|
||||
|
||||
Statement
|
||||
Statement
|
||||
Statement
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+------------------------------------------------------------------------------+
|
||||
| F9=Reset to Defaults F10=Save |
|
||||
| ^"=Move Highlight <Spacebar> Toggles Checkbox Esc=Exit |
|
||||
+------------------------------------------------------------------------------+
|
||||
StatusBar
|
||||
**/
|
||||
|
||||
/**
|
||||
This funtion defines Page Frame and Backgroud.
|
||||
|
||||
Based on the above layout, it will be responsible for HeaderHeight, FooterHeight,
|
||||
StatusBarHeight and Backgroud. And, it will reserve Screen for Statement.
|
||||
|
||||
@param[in] FormData Form Data to be shown in Page.
|
||||
@param[out] ScreenForStatement Screen to be used for Statement. (Prompt, Value and Help)
|
||||
|
||||
@return Status
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
DisplayPageFrame (
|
||||
IN FORM_DISPLAY_ENGINE_FORM *FormData,
|
||||
OUT EFI_SCREEN_DESCRIPTOR *ScreenForStatement
|
||||
);
|
||||
|
||||
/**
|
||||
Clear Screen to the initial state.
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
ClearDisplayPage (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
This function updates customized key panel's help information.
|
||||
The library will prepare those Strings for the basic key, ESC, Enter, Up/Down/Left/Right, +/-.
|
||||
and arrange them in Footer panel.
|
||||
|
||||
@param[in] FormData Form Data to be shown in Page. FormData has the highlighted statement.
|
||||
@param[in] Statement The statement current selected.
|
||||
@param[in] Selected Whether or not a tag be selected. TRUE means Enter has hit this question.
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
RefreshKeyHelp (
|
||||
IN FORM_DISPLAY_ENGINE_FORM *FormData,
|
||||
IN FORM_DISPLAY_ENGINE_STATEMENT *Statement,
|
||||
IN BOOLEAN Selected
|
||||
);
|
||||
|
||||
/**
|
||||
Update status bar.
|
||||
|
||||
This function updates the status bar on the bottom of menu screen. It just shows StatusBar.
|
||||
Original logic in this function should be splitted out.
|
||||
|
||||
@param[in] MessageType The type of message to be shown. InputError or Configuration Changed.
|
||||
@param[in] State Show or Clear Message.
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
UpdateStatusBar (
|
||||
IN UINTN MessageType,
|
||||
IN BOOLEAN State
|
||||
);
|
||||
|
||||
/**
|
||||
Create popup window.
|
||||
|
||||
This function draws OEM/Vendor specific pop up windows.
|
||||
|
||||
@param[out] Key User Input Key
|
||||
@param ... String to be shown in Popup. The variable argument list is terminated by a NULL.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
CreateDialog (
|
||||
OUT EFI_INPUT_KEY *Key, OPTIONAL
|
||||
...
|
||||
);
|
||||
|
||||
/**
|
||||
Confirm how to handle the changed data.
|
||||
|
||||
@return Action BROWSER_ACTION_SUBMIT, BROWSER_ACTION_DISCARD or other values.
|
||||
**/
|
||||
UINTN
|
||||
EFIAPI
|
||||
ConfirmDataChange (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
OEM specifies whether Setup exits Page by ESC key.
|
||||
|
||||
This function customized the behavior that whether Setup exits Page so that
|
||||
system able to boot when configuration is not changed.
|
||||
|
||||
@retval TRUE Exits FrontPage
|
||||
@retval FALSE Don't exit FrontPage.
|
||||
**/
|
||||
BOOLEAN
|
||||
EFIAPI
|
||||
FormExitPolicy (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Set Timeout value for a ceratain Form to get user response.
|
||||
|
||||
This function allows to set timeout value on a ceratain form if necessary.
|
||||
If timeout is not zero, the form will exit if user has no response in timeout.
|
||||
|
||||
@param[in] FormData Form Data to be shown in Page
|
||||
|
||||
@return 0 No timeout for this form.
|
||||
@return > 0 Timeout value in 100 ns units.
|
||||
**/
|
||||
UINT64
|
||||
EFIAPI
|
||||
FormExitTimeout (
|
||||
IN FORM_DISPLAY_ENGINE_FORM *FormData
|
||||
);
|
||||
|
||||
//
|
||||
// Print Functions
|
||||
//
|
||||
/**
|
||||
Prints a unicode string to the default console, at
|
||||
the supplied cursor position, using L"%s" format.
|
||||
|
||||
@param Column The cursor position to print the string at. When it is -1, use current Position.
|
||||
@param Row The cursor position to print the string at. When it is -1, use current Position.
|
||||
@param String String pointer.
|
||||
|
||||
@return Length of string printed to the console
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EFIAPI
|
||||
PrintStringAt (
|
||||
IN UINTN Column,
|
||||
IN UINTN Row,
|
||||
IN CHAR16 *String
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
Prints a unicode string with the specified width to the default console, at
|
||||
the supplied cursor position, using L"%s" format.
|
||||
|
||||
@param Column The cursor position to print the string at. When it is -1, use current Position.
|
||||
@param Row The cursor position to print the string at. When it is -1, use current Position.
|
||||
@param String String pointer.
|
||||
@param Width Width for String to be printed. If the print length of String < Width,
|
||||
Space char (L' ') will be used to append String.
|
||||
|
||||
@return Length of string printed to the console
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EFIAPI
|
||||
PrintStringAtWithWidth (
|
||||
IN UINTN Column,
|
||||
IN UINTN Row,
|
||||
IN CHAR16 *String,
|
||||
IN UINTN Width
|
||||
);
|
||||
|
||||
/**
|
||||
Prints a chracter to the default console, at
|
||||
the supplied cursor position, using L"%c" format.
|
||||
|
||||
@param Column The cursor position to print the string at. When it is -1, use current Position.
|
||||
@param Row The cursor position to print the string at. When it is -1, use current Position.
|
||||
@param Character Character to print.
|
||||
|
||||
@return Length of string printed to the console.
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EFIAPI
|
||||
PrintCharAt (
|
||||
IN UINTN Column,
|
||||
IN UINTN Row,
|
||||
CHAR16 Character
|
||||
);
|
||||
|
||||
/**
|
||||
Clear retangle with specified text attribute.
|
||||
|
||||
@param LeftColumn Left column of retangle.
|
||||
@param RightColumn Right column of retangle.
|
||||
@param TopRow Start row of retangle.
|
||||
@param BottomRow End row of retangle.
|
||||
@param TextAttribute The character foreground and background.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
ClearLines (
|
||||
IN UINTN LeftColumn,
|
||||
IN UINTN RightColumn,
|
||||
IN UINTN TopRow,
|
||||
IN UINTN BottomRow,
|
||||
IN UINTN TextAttribute
|
||||
);
|
||||
|
||||
//
|
||||
// Color Setting Functions
|
||||
//
|
||||
/**
|
||||
Get OEM/Vendor specific popup attribute colors.
|
||||
|
||||
@retval Byte code color setting for popup color.
|
||||
**/
|
||||
UINT8
|
||||
EFIAPI
|
||||
GetPopupColor (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Get OEM/Vendor specific popup attribute colors.
|
||||
|
||||
@retval Byte code color setting for popup inverse color.
|
||||
**/
|
||||
UINT8
|
||||
EFIAPI
|
||||
GetPopupInverseColor (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Get OEM/Vendor specific PickList color attribute.
|
||||
|
||||
@retval Byte code color setting for pick list color.
|
||||
**/
|
||||
UINT8
|
||||
EFIAPI
|
||||
GetPickListColor (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Get OEM/Vendor specific arrow color attribute.
|
||||
|
||||
@retval Byte code color setting for arrow color.
|
||||
**/
|
||||
UINT8
|
||||
EFIAPI
|
||||
GetArrowColor (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Get OEM/Vendor specific info text color attribute.
|
||||
|
||||
@retval Byte code color setting for info text color.
|
||||
**/
|
||||
UINT8
|
||||
EFIAPI
|
||||
GetInfoTextColor (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Get OEM/Vendor specific help text color attribute.
|
||||
|
||||
@retval Byte code color setting for help text color.
|
||||
**/
|
||||
UINT8
|
||||
EFIAPI
|
||||
GetHelpTextColor (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Get OEM/Vendor specific grayed out text color attribute.
|
||||
|
||||
@retval Byte code color setting for grayed out text color.
|
||||
**/
|
||||
UINT8
|
||||
EFIAPI
|
||||
GetGrayedTextColor (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Get OEM/Vendor specific highlighted text color attribute.
|
||||
|
||||
@retval Byte code color setting for highlight text color.
|
||||
**/
|
||||
UINT8
|
||||
EFIAPI
|
||||
GetHighlightTextColor (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Get OEM/Vendor specific field text color attribute.
|
||||
|
||||
@retval Byte code color setting for field text color.
|
||||
**/
|
||||
UINT8
|
||||
EFIAPI
|
||||
GetFieldTextColor (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Get OEM/Vendor specific subtitle text color attribute.
|
||||
|
||||
@retval Byte code color setting for subtitle text color.
|
||||
**/
|
||||
UINT8
|
||||
EFIAPI
|
||||
GetSubTitleTextColor (
|
||||
VOID
|
||||
);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,350 @@
|
||||
/** @file
|
||||
FormDiplay protocol to show Form
|
||||
|
||||
Copyright (c) 2013, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that 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.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __DISPLAY_PROTOCOL_H__
|
||||
#define __DISPLAY_PROTOCOL_H__
|
||||
|
||||
#include <Protocol\FormBrowser2.h>
|
||||
|
||||
#define EDKII_FORM_DISPLAY_ENGINE_PROTOCOL_GUID \
|
||||
{ 0x9bbe29e9, 0xfda1, 0x41ec, { 0xad, 0x52, 0x45, 0x22, 0x13, 0x74, 0x2d, 0x2e } }
|
||||
|
||||
//
|
||||
// Do nothing.
|
||||
//
|
||||
#define BROWSER_ACTION_NONE BIT16
|
||||
//
|
||||
// ESC Exit
|
||||
//
|
||||
#define BROWSER_ACTION_FORM_EXIT BIT17
|
||||
|
||||
#define BROWSER_SUCCESS 0x0
|
||||
#define BROWSER_ERROR BIT31
|
||||
#define BROWSER_SUBMIT_FAIL BROWSER_ERROR | 0x01
|
||||
#define BROWSER_NO_SUBMIT_IF BROWSER_ERROR | 0x02
|
||||
#define BROWSER_FORM_NOT_FOUND BROWSER_ERROR | 0x03
|
||||
#define BROWSER_FORM_SUPPRESS BROWSER_ERROR | 0x04
|
||||
#define BROWSER_PROTOCOL_NOT_FOUND BROWSER_ERROR | 0x05
|
||||
|
||||
#define FORM_DISPLAY_ENGINE_STATEMENT_VERSION_1 0x10000
|
||||
#define FORM_DISPLAY_ENGINE_VERSION_1 0x10000
|
||||
|
||||
typedef struct {
|
||||
//
|
||||
// HII Data Type
|
||||
//
|
||||
UINT8 Type;
|
||||
//
|
||||
// Buffer Data and Length if Type is EFI_IFR_TYPE_BUFFER or EFI_IFR_TYPE_STRING
|
||||
//
|
||||
UINT8 *Buffer;
|
||||
UINT16 BufferLen;
|
||||
EFI_IFR_TYPE_VALUE Value;
|
||||
} EFI_HII_VALUE;
|
||||
|
||||
#define DISPLAY_QUESTION_OPTION_SIGNATURE SIGNATURE_32 ('Q', 'O', 'P', 'T')
|
||||
|
||||
typedef struct {
|
||||
UINTN Signature;
|
||||
LIST_ENTRY Link;
|
||||
//
|
||||
// OneOfOption Data
|
||||
//
|
||||
EFI_IFR_ONE_OF_OPTION *OptionOpCode;
|
||||
//
|
||||
// Option ImageId and AnimationId
|
||||
//
|
||||
EFI_IMAGE_ID ImageId;
|
||||
EFI_ANIMATION_ID AnimationId;
|
||||
} DISPLAY_QUESTION_OPTION;
|
||||
|
||||
#define DISPLAY_QUESTION_OPTION_FROM_LINK(a) CR (a, DISPLAY_QUESTION_OPTION, Link, DISPLAY_QUESTION_OPTION_SIGNATURE)
|
||||
|
||||
typedef struct _FORM_DISPLAY_ENGINE_STATEMENT FORM_DISPLAY_ENGINE_STATEMENT;
|
||||
typedef struct _FORM_DISPLAY_ENGINE_FORM FORM_DISPLAY_ENGINE_FORM;
|
||||
|
||||
#define STATEMENT_VALID 0x0
|
||||
#define STATEMENT_INVALID BIT31
|
||||
|
||||
#define INCOSISTENT_IF_TRUE STATEMENT_INVALID | 0x01
|
||||
#define WARNING_IF_TRUE STATEMENT_INVALID | 0x02
|
||||
#define STRING_TOO_LONG STATEMENT_INVALID | 0x03
|
||||
// ... to be extended.
|
||||
|
||||
typedef struct {
|
||||
//
|
||||
// StringId for INCONSITENT_IF or WARNING_IF
|
||||
//
|
||||
EFI_STRING_ID StringId;
|
||||
//
|
||||
// TimeOut for WARNING_IF
|
||||
//
|
||||
UINT8 TimeOut;
|
||||
} STATEMENT_ERROR_INFO;
|
||||
|
||||
/**
|
||||
Perform value check for a question.
|
||||
|
||||
@param Form Form where Statement is in.
|
||||
@param Statement Value will check for it.
|
||||
@param Value New value will be checked.
|
||||
|
||||
@retval Status Value Status
|
||||
|
||||
**/
|
||||
typedef
|
||||
UINT32
|
||||
(EFIAPI *VALIDATE_QUESTION) (
|
||||
IN FORM_DISPLAY_ENGINE_FORM *Form,
|
||||
IN FORM_DISPLAY_ENGINE_STATEMENT *Statement,
|
||||
IN EFI_HII_VALUE *Value,
|
||||
OUT STATEMENT_ERROR_INFO *ErrorInfo
|
||||
);
|
||||
|
||||
/**
|
||||
Perform Password check.
|
||||
Passwork may be encrypted by driver that requires the specific check.
|
||||
|
||||
@param Form Form where Password Statement is in.
|
||||
@param Statement Password statement
|
||||
@param PasswordString Password string to be checked. It may be NULL.
|
||||
NULL means to restore password.
|
||||
"" string can be used to checked whether old password does exist.
|
||||
|
||||
@return Status Status of Password check.
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *PASSWORD_CHECK) (
|
||||
IN FORM_DISPLAY_ENGINE_FORM *Form,
|
||||
IN FORM_DISPLAY_ENGINE_STATEMENT *Statement,
|
||||
IN EFI_STRING PasswordString OPTIONAL
|
||||
);
|
||||
|
||||
#define FORM_DISPLAY_ENGINE_STATEMENT_SIGNATURE SIGNATURE_32 ('F', 'S', 'T', 'A')
|
||||
|
||||
//
|
||||
// Attribute for Statement and Form
|
||||
//
|
||||
#define HII_DISPLAY_GRAYOUT BIT0
|
||||
#define HII_DISPLAY_LOCK BIT1
|
||||
#define HII_DISPLAY_READONLY BIT2
|
||||
#define HII_DISPLAY_MODAL BIT3
|
||||
|
||||
struct _FORM_DISPLAY_ENGINE_STATEMENT{
|
||||
UINTN Signature;
|
||||
//
|
||||
// Version for future structure extension
|
||||
//
|
||||
UINTN Version;
|
||||
//
|
||||
// link to all the statement which will show in the display form.
|
||||
//
|
||||
LIST_ENTRY DisplayLink;
|
||||
//
|
||||
// Pointer to statement opcode.
|
||||
// for Guided Opcode. All buffers will be here if GUIDED opcode scope is set.
|
||||
//
|
||||
EFI_IFR_OP_HEADER *OpCode;
|
||||
//
|
||||
// Question CurrentValue
|
||||
//
|
||||
EFI_HII_VALUE CurrentValue;
|
||||
//
|
||||
// Flag to describe whether setting is changed or not.
|
||||
// Displayer may depend on it to show it with the different color.
|
||||
//
|
||||
BOOLEAN SettingChangedFlag;
|
||||
//
|
||||
// nested Statement list inside of EFI_IFR_SUBTITLE
|
||||
//
|
||||
LIST_ENTRY NestStatementList;
|
||||
//
|
||||
// nested EFI_IFR_ONE_OF_OPTION list (QUESTION_OPTION)
|
||||
//
|
||||
LIST_ENTRY OptionListHead;
|
||||
//
|
||||
// Statement attributes: GRAYOUT, LOCK and READONLY
|
||||
//
|
||||
UINT32 Attribute;
|
||||
|
||||
//
|
||||
// ValidateQuestion to do InconsistIf check
|
||||
// It may be NULL if any value is valid.
|
||||
//
|
||||
VALIDATE_QUESTION ValidateQuestion;
|
||||
|
||||
//
|
||||
// Password additional check. It may be NULL when the additional check is not required.
|
||||
//
|
||||
PASSWORD_CHECK PasswordCheck;
|
||||
|
||||
//
|
||||
// Statement ImageId and AnimationId
|
||||
//
|
||||
EFI_IMAGE_ID ImageId;
|
||||
EFI_ANIMATION_ID AnimationId;
|
||||
};
|
||||
|
||||
#define FORM_DISPLAY_ENGINE_STATEMENT_FROM_LINK(a) CR (a, FORM_DISPLAY_ENGINE_STATEMENT, DisplayLink, FORM_DISPLAY_ENGINE_STATEMENT_SIGNATURE)
|
||||
|
||||
#define BROWSER_HOT_KEY_SIGNATURE SIGNATURE_32 ('B', 'H', 'K', 'S')
|
||||
|
||||
typedef struct {
|
||||
UINTN Signature;
|
||||
LIST_ENTRY Link;
|
||||
|
||||
EFI_INPUT_KEY *KeyData;
|
||||
//
|
||||
// Action is Discard, Default, Submit, Reset and Exit.
|
||||
//
|
||||
UINT32 Action;
|
||||
UINT16 DefaultId;
|
||||
//
|
||||
// HotKey Help String
|
||||
//
|
||||
EFI_STRING HelpString;
|
||||
} BROWSER_HOT_KEY;
|
||||
|
||||
#define BROWSER_HOT_KEY_FROM_LINK(a) CR (a, BROWSER_HOT_KEY, Link, BROWSER_HOT_KEY_SIGNATURE)
|
||||
|
||||
#define FORM_DISPLAY_ENGINE_FORM_SIGNATURE SIGNATURE_32 ('F', 'F', 'R', 'M')
|
||||
|
||||
struct _FORM_DISPLAY_ENGINE_FORM {
|
||||
UINTN Signature;
|
||||
//
|
||||
// Version for future structure extension
|
||||
//
|
||||
UINTN Version;
|
||||
//
|
||||
// Statement List inside of Form
|
||||
//
|
||||
LIST_ENTRY StatementListHead;
|
||||
//
|
||||
// Statement List outside of Form
|
||||
//
|
||||
LIST_ENTRY StatementListOSF;
|
||||
//
|
||||
// The input screen dimenstions info.
|
||||
//
|
||||
EFI_SCREEN_DESCRIPTOR *ScreenDimensions;
|
||||
//
|
||||
// FormSet information
|
||||
//
|
||||
EFI_GUID FormSetGuid;
|
||||
//
|
||||
// HiiHandle can be used to get String, Image or Animation
|
||||
//
|
||||
EFI_HII_HANDLE HiiHandle;
|
||||
|
||||
//
|
||||
// Form ID and Title.
|
||||
//
|
||||
UINT16 FormId;
|
||||
EFI_STRING_ID FormTitle;
|
||||
//
|
||||
// Form Attributes: Lock, Modal.
|
||||
//
|
||||
UINT32 Attribute;
|
||||
//
|
||||
// Flag to describe whether setting is changed or not.
|
||||
// Displayer depends on it to show ChangedFlag.
|
||||
//
|
||||
BOOLEAN SettingChangedFlag;
|
||||
|
||||
//
|
||||
// Statement to be HighLighted
|
||||
//
|
||||
FORM_DISPLAY_ENGINE_STATEMENT *HighLightedStatement;
|
||||
//
|
||||
// Event to notify Displayer that FormData is updated to be refreshed.
|
||||
//
|
||||
EFI_EVENT FormRefreshEvent;
|
||||
//
|
||||
// Additional Hotkey registered by BrowserEx protocol.
|
||||
//
|
||||
LIST_ENTRY HotKeyListHead;
|
||||
|
||||
//
|
||||
// Form ImageId and AnimationId
|
||||
//
|
||||
EFI_IMAGE_ID ImageId;
|
||||
EFI_ANIMATION_ID AnimationId;
|
||||
|
||||
//
|
||||
// If Status is error, display needs to handle it.
|
||||
//
|
||||
UINT32 BrowserStatus;
|
||||
//
|
||||
// String for error status. It may be NULL.
|
||||
//
|
||||
EFI_STRING ErrorString;
|
||||
};
|
||||
|
||||
#define FORM_DISPLAY_ENGINE_FORM_FROM_LINK(a) CR (a, FORM_DISPLAY_ENGINE_FORM, Link, FORM_DISPLAY_ENGINE_FORM_SIGNATURE)
|
||||
|
||||
typedef struct {
|
||||
FORM_DISPLAY_ENGINE_STATEMENT *SelectedStatement; // Selected Statement and InputValue
|
||||
|
||||
EFI_HII_VALUE InputValue;
|
||||
|
||||
UINT32 Action; // If SelectedStatement is NULL, Action will be used.
|
||||
// Trig Action (Discard, Default, Submit, Reset and Exit)
|
||||
UINT16 DefaultId;
|
||||
} USER_INPUT;
|
||||
|
||||
/**
|
||||
Display one form, and return user input.
|
||||
|
||||
@param FormData Form Data to be shown.
|
||||
@param UserInputData User input data.
|
||||
|
||||
@retval EFI_SUCCESS Form Data is shown, and user input is got.
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *FORM_DISPLAY) (
|
||||
IN FORM_DISPLAY_ENGINE_FORM *FormData,
|
||||
OUT USER_INPUT *UserInputData
|
||||
);
|
||||
|
||||
/**
|
||||
Exit Display and Clear Screen to the original state.
|
||||
|
||||
**/
|
||||
typedef
|
||||
VOID
|
||||
(EFIAPI *EXIT_DISPLAY) (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Confirm how to handle the changed data.
|
||||
|
||||
@return Action of Submit, Discard and None
|
||||
**/
|
||||
typedef
|
||||
UINTN
|
||||
(EFIAPI *CONFIRM_DATA_CHANGE) (
|
||||
VOID
|
||||
);
|
||||
|
||||
typedef struct {
|
||||
FORM_DISPLAY FormDisplay;
|
||||
EXIT_DISPLAY ExitDisplay;
|
||||
CONFIRM_DATA_CHANGE ConfirmDataChange;
|
||||
} EDKII_FORM_DISPLAY_ENGINE_PROTOCOL;
|
||||
|
||||
extern EFI_GUID gEdkiiFormDisplayEngineProtocolGuid;
|
||||
#endif
|
||||
@@ -0,0 +1,90 @@
|
||||
/** @file
|
||||
Extension Form Browser Protocol provides the services that can be used to
|
||||
register the different hot keys for the standard Browser actions described in UEFI specification.
|
||||
|
||||
Copyright (c) 2013, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that 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.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __FORM_BROWSER_EXTENSION2_H__
|
||||
#define __FORM_BROWSER_EXTENSION2_H__
|
||||
|
||||
#include <Protocol\FormBrowserEx.h>
|
||||
|
||||
#define EDKII_FORM_BROWSER_EXTENSION2_PROTOCOL_GUID \
|
||||
{ 0xa770c357, 0xb693, 0x4e6d, { 0xa6, 0xcf, 0xd2, 0x1c, 0x72, 0x8e, 0x55, 0xb }}
|
||||
|
||||
typedef struct _EDKII_FORM_BROWSER_EXTENSION2_PROTOCOL EDKII_FORM_BROWSER_EXTENSION2_PROTOCOL;
|
||||
|
||||
#define BROWSER_EXTENSION2_VERSION_1 0x10000
|
||||
|
||||
/**
|
||||
Check whether the browser data has been modified.
|
||||
|
||||
@retval TRUE Browser data is modified.
|
||||
@retval FALSE No browser data is modified.
|
||||
|
||||
**/
|
||||
typedef
|
||||
BOOLEAN
|
||||
(EFIAPI *IS_BROWSER_DATA_MODIFIED) (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Execute the action requested by the Action parameter.
|
||||
|
||||
@param[in] Action Execute the request action.
|
||||
@param[in] DefaultId The default Id info when need to load default value.
|
||||
|
||||
@retval EFI_SUCCESS Execute the request action succss.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EXECUTE_ACTION) (
|
||||
IN UINT32 Action,
|
||||
IN UINT16 DefaultId
|
||||
);
|
||||
|
||||
#define FORM_ENTRY_INFO_SIGNATURE SIGNATURE_32 ('f', 'e', 'i', 's')
|
||||
|
||||
typedef struct {
|
||||
UINTN Signature;
|
||||
LIST_ENTRY Link;
|
||||
|
||||
EFI_HII_HANDLE HiiHandle;
|
||||
EFI_GUID FormSetGuid;
|
||||
EFI_FORM_ID FormId;
|
||||
EFI_QUESTION_ID QuestionId;
|
||||
} FORM_ENTRY_INFO;
|
||||
|
||||
#define FORM_ENTRY_INFO_FROM_LINK(a) CR (a, FORM_ENTRY_INFO, Link, FORM_ENTRY_INFO_SIGNATURE)
|
||||
|
||||
struct _EDKII_FORM_BROWSER_EXTENSION2_PROTOCOL {
|
||||
///
|
||||
/// Version for protocol future extension.
|
||||
///
|
||||
UINT32 Version;
|
||||
SET_SCOPE SetScope;
|
||||
REGISTER_HOT_KEY RegisterHotKey;
|
||||
REGISTER_EXIT_HANDLER RegiserExitHandler;
|
||||
IS_BROWSER_DATA_MODIFIED IsBrowserDataModified;
|
||||
EXECUTE_ACTION ExecuteAction;
|
||||
///
|
||||
/// A list of type FORMID_INFO is Browser View Form History List.
|
||||
///
|
||||
LIST_ENTRY FormViewHistoryHead;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEdkiiFormBrowserEx2ProtocolGuid;
|
||||
|
||||
#endif
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,74 @@
|
||||
##
|
||||
# This file contains an 'Intel Peripheral Driver' and is
|
||||
# licensed for Intel CPUs and chipsets under the terms of your
|
||||
# license agreement with Intel or your vendor. This file may
|
||||
# be modified by the user, subject to additional terms of the
|
||||
# license agreement
|
||||
##
|
||||
## @file
|
||||
#
|
||||
# General BDS defines and produce general interfaces for platform BDS driver including:
|
||||
# 1) BDS boot policy interface;
|
||||
# 2) BDS boot device connect interface;
|
||||
# 3) BDS Misc interfaces for mainting boot variable, ouput string, etc.
|
||||
#
|
||||
# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
|
||||
# This software and associated documentation (if any) is furnished
|
||||
# under a license and may only be used or copied in accordance
|
||||
# with the terms of the license. Except as permitted by such
|
||||
# license, no part of this software or documentation may be
|
||||
# reproduced, stored in a retrieval system, or transmitted in any
|
||||
# form or by any means without the express written consent of
|
||||
# Intel Corporation.
|
||||
#
|
||||
##
|
||||
|
||||
[Defines]
|
||||
INF_VERSION = 0x00010005
|
||||
BASE_NAME = CustomizedDisplayLib
|
||||
FILE_GUID = 80B92017-EC64-4923-938D-94FAEE85832E
|
||||
MODULE_TYPE = DXE_DRIVER
|
||||
VERSION_STRING = 1.0
|
||||
LIBRARY_CLASS = CustomizedDisplayLib|DXE_DRIVER UEFI_APPLICATION
|
||||
CONSTRUCTOR = CustomizedDisplayLibConstructor
|
||||
DESTRUCTOR = CustomizedDisplayLibDestructor
|
||||
#
|
||||
# The following information is for reference only and not required by the build tools.
|
||||
#
|
||||
# VALID_ARCHITECTURES = IA32 X64 IPF EBC
|
||||
#
|
||||
|
||||
[Sources]
|
||||
CustomizedDisplayLib.c
|
||||
Colors.h
|
||||
CustomizedDisplayLibInternal.h
|
||||
CustomizedDisplayLibInternal.c
|
||||
CustomizedDisplayLib.uni
|
||||
|
||||
[Packages]
|
||||
MdePkg/MdePkg.dec
|
||||
MdeModulePkg/MdeModulePkg.dec
|
||||
|
||||
[LibraryClasses]
|
||||
MemoryAllocationLib
|
||||
BaseLib
|
||||
UefiBootServicesTableLib
|
||||
UefiDriverEntryPoint
|
||||
UefiRuntimeServicesTableLib
|
||||
BaseMemoryLib
|
||||
DebugLib
|
||||
PrintLib
|
||||
HiiLib
|
||||
DevicePathLib
|
||||
PcdLib
|
||||
|
||||
[Guids]
|
||||
gEfiIfrTianoGuid
|
||||
|
||||
[Protocols]
|
||||
|
||||
[Pcd]
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdBrowserSubtitleTextColor ## CONSUMES
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdBrowserFieldTextColor ## CONSUMES
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdBrowserFieldTextHighlightColor ## CONSUMES
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdBrowserFieldBackgroundHighlightColor ## CONSUMES
|
||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,295 @@
|
||||
/** @file
|
||||
|
||||
This library class defines a set of interfaces to customize Display module
|
||||
|
||||
Copyright (c) 2013, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that 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.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __CUSTOMIZED_DISPLAY_LIB_INTERNAL_H__
|
||||
#define __CUSTOMIZED_DISPLAY_LIB_INTERNAL_H__
|
||||
|
||||
|
||||
|
||||
#include <PiDxe.h>
|
||||
|
||||
#include <Protocol/SimpleTextOut.h>
|
||||
#include <Protocol/SimpleTextIn.h>
|
||||
#include <Protocol/FormBrowser2.h>
|
||||
#include <Protocol/FormBrowserEx2.h>
|
||||
#include <Protocol/DisplayProtocol.h>
|
||||
#include <Protocol/DevicePath.h>
|
||||
#include <Protocol/UnicodeCollation.h>
|
||||
#include <Protocol/HiiConfigAccess.h>
|
||||
#include <Protocol/HiiConfigRouting.h>
|
||||
#include <Protocol/HiiDatabase.h>
|
||||
#include <Protocol/HiiString.h>
|
||||
#include <Protocol/UserManager.h>
|
||||
#include <Protocol/DevicePathFromText.h>
|
||||
|
||||
#include <Guid/MdeModuleHii.h>
|
||||
#include <Guid/HiiPlatformSetupFormset.h>
|
||||
#include <Guid/HiiFormMapMethodGuid.h>
|
||||
|
||||
#include <Library/PrintLib.h>
|
||||
#include <Library/DebugLib.h>
|
||||
#include <Library/BaseMemoryLib.h>
|
||||
#include <Library/UefiRuntimeServicesTableLib.h>
|
||||
#include <Library/UefiDriverEntryPoint.h>
|
||||
#include <Library/UefiBootServicesTableLib.h>
|
||||
#include <Library/BaseLib.h>
|
||||
#include <Library/MemoryAllocationLib.h>
|
||||
#include <Library/HiiLib.h>
|
||||
#include <Library/PcdLib.h>
|
||||
#include <Library/DevicePathLib.h>
|
||||
#include <Library/CustomizedDisplayLib.h>
|
||||
|
||||
#include "Colors.h"
|
||||
|
||||
|
||||
|
||||
#define FORMSET_CLASS_PLATFORM_SETUP 0x0001
|
||||
#define FORMSET_CLASS_FRONT_PAGE 0x0002
|
||||
|
||||
|
||||
#define FRONT_PAGE_HEADER_HEIGHT 6
|
||||
#define NONE_FRONT_PAGE_HEADER_HEIGHT 3
|
||||
#define FOOTER_HEIGHT 4
|
||||
#define STATUS_BAR_HEIGHT 1
|
||||
|
||||
//
|
||||
// Screen definitions
|
||||
//
|
||||
#define BANNER_HEIGHT 6
|
||||
#define BANNER_COLUMNS 3
|
||||
#define BANNER_LEFT_COLUMN_INDENT 1
|
||||
|
||||
//
|
||||
// Character definitions
|
||||
//
|
||||
#define UPPER_LOWER_CASE_OFFSET 0x20
|
||||
|
||||
//
|
||||
// This is the Input Error Message
|
||||
//
|
||||
#define INPUT_ERROR 1
|
||||
|
||||
//
|
||||
// This is the NV RAM update required Message
|
||||
//
|
||||
#define NV_UPDATE_REQUIRED 2
|
||||
|
||||
typedef struct {
|
||||
EFI_STRING_ID Banner[BANNER_HEIGHT][BANNER_COLUMNS];
|
||||
} BANNER_DATA;
|
||||
|
||||
extern UINT16 gClassOfVfr; // Formset class information
|
||||
extern BANNER_DATA *gBannerData;
|
||||
extern EFI_SCREEN_DESCRIPTOR gScreenDimensions;
|
||||
extern UINTN gFooterHeight;
|
||||
|
||||
//
|
||||
// Browser Global Strings
|
||||
//
|
||||
extern CHAR16 *gEnterString;
|
||||
extern CHAR16 *gEnterCommitString;
|
||||
extern CHAR16 *gEnterEscapeString;
|
||||
extern CHAR16 *gEscapeString;
|
||||
extern CHAR16 *gMoveHighlight;
|
||||
extern CHAR16 *gDecNumericInput;
|
||||
extern CHAR16 *gHexNumericInput;
|
||||
extern CHAR16 *gToggleCheckBox;
|
||||
extern CHAR16 *gLibEmptyString;
|
||||
extern CHAR16 *gAreYouSure;
|
||||
extern CHAR16 *gYesResponse;
|
||||
extern CHAR16 *gNoResponse;
|
||||
extern CHAR16 *gPlusString;
|
||||
extern CHAR16 *gMinusString;
|
||||
extern CHAR16 *gAdjustNumber;
|
||||
extern CHAR16 *gSaveChanges;
|
||||
extern CHAR16 *gNvUpdateMessage;
|
||||
extern CHAR16 *gInputErrorMessage;
|
||||
/**
|
||||
|
||||
Print banner info for front page.
|
||||
|
||||
@param[in] FormData Form Data to be shown in Page
|
||||
|
||||
**/
|
||||
VOID
|
||||
PrintBannerInfo (
|
||||
IN FORM_DISPLAY_ENGINE_FORM *FormData
|
||||
);
|
||||
|
||||
/**
|
||||
Print framework and form title for a page.
|
||||
|
||||
@param[in] FormData Form Data to be shown in Page
|
||||
**/
|
||||
VOID
|
||||
PrintFramework (
|
||||
IN FORM_DISPLAY_ENGINE_FORM *FormData
|
||||
);
|
||||
|
||||
/**
|
||||
Validate the input screen diemenstion info.
|
||||
|
||||
@param FormData The input form data info.
|
||||
|
||||
@return EFI_SUCCESS The input screen info is acceptable.
|
||||
@return EFI_INVALID_PARAMETER The input screen info is not acceptable.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
ScreenDiemensionInfoValidate (
|
||||
IN FORM_DISPLAY_ENGINE_FORM *FormData
|
||||
);
|
||||
|
||||
/**
|
||||
Get the string based on the StringId and HII Package List Handle.
|
||||
|
||||
@param Token The String's ID.
|
||||
@param HiiHandle The package list in the HII database to search for
|
||||
the specified string.
|
||||
|
||||
@return The output string.
|
||||
|
||||
**/
|
||||
CHAR16 *
|
||||
LibGetToken (
|
||||
IN EFI_STRING_ID Token,
|
||||
IN EFI_HII_HANDLE HiiHandle
|
||||
);
|
||||
|
||||
/**
|
||||
Count the storage space of a Unicode string.
|
||||
|
||||
This function handles the Unicode string with NARROW_CHAR
|
||||
and WIDE_CHAR control characters. NARROW_HCAR and WIDE_CHAR
|
||||
does not count in the resultant output. If a WIDE_CHAR is
|
||||
hit, then 2 Unicode character will consume an output storage
|
||||
space with size of CHAR16 till a NARROW_CHAR is hit.
|
||||
|
||||
If String is NULL, then ASSERT ().
|
||||
|
||||
@param String The input string to be counted.
|
||||
|
||||
@return Storage space for the input string.
|
||||
|
||||
**/
|
||||
UINTN
|
||||
LibGetStringWidth (
|
||||
IN CHAR16 *String
|
||||
);
|
||||
|
||||
/**
|
||||
Show all registered HotKey help strings on bottom Rows.
|
||||
|
||||
@param FormData The curent input form data info.
|
||||
|
||||
**/
|
||||
VOID
|
||||
PrintHotKeyHelpString (
|
||||
IN FORM_DISPLAY_ENGINE_FORM *FormData
|
||||
);
|
||||
|
||||
/**
|
||||
Get step info from numeric opcode.
|
||||
|
||||
@param[in] OpCode The input numeric op code.
|
||||
|
||||
@return step info for this opcode.
|
||||
**/
|
||||
UINT64
|
||||
LibGetFieldFromNum (
|
||||
IN EFI_IFR_OP_HEADER *OpCode
|
||||
);
|
||||
|
||||
/**
|
||||
Initialize the HII String Token to the correct values.
|
||||
|
||||
**/
|
||||
VOID
|
||||
InitializeLibStrings (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Free the HII String.
|
||||
|
||||
**/
|
||||
VOID
|
||||
FreeLibStrings (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Wait for a key to be pressed by user.
|
||||
|
||||
@param Key The key which is pressed by user.
|
||||
|
||||
@retval EFI_SUCCESS The function always completed successfully.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
WaitForKeyStroke (
|
||||
OUT EFI_INPUT_KEY *Key
|
||||
);
|
||||
|
||||
/**
|
||||
Set Buffer to Value for Size bytes.
|
||||
|
||||
@param Buffer Memory to set.
|
||||
@param Size Number of bytes to set
|
||||
@param Value Value of the set operation.
|
||||
|
||||
**/
|
||||
VOID
|
||||
LibSetUnicodeMem (
|
||||
IN VOID *Buffer,
|
||||
IN UINTN Size,
|
||||
IN CHAR16 Value
|
||||
);
|
||||
|
||||
/**
|
||||
Prints a formatted unicode string to the default console, at
|
||||
the supplied cursor position.
|
||||
|
||||
@param Width Width of String to be printed.
|
||||
@param Column The cursor position to print the string at.
|
||||
@param Row The cursor position to print the string at.
|
||||
@param Fmt Format string.
|
||||
@param ... Variable argument list for format string.
|
||||
|
||||
@return Length of string printed to the console
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EFIAPI
|
||||
PrintAt (
|
||||
IN UINTN Width,
|
||||
IN UINTN Column,
|
||||
IN UINTN Row,
|
||||
IN CHAR16 *Fmt,
|
||||
...
|
||||
);
|
||||
|
||||
/**
|
||||
Process some op codes which is out side of current form.
|
||||
|
||||
@param FormData Pointer to the form data.
|
||||
|
||||
**/
|
||||
VOID
|
||||
ProcessExternedOpcode (
|
||||
IN FORM_DISPLAY_ENGINE_FORM *FormData
|
||||
);
|
||||
|
||||
#endif
|
||||
@@ -98,6 +98,10 @@
|
||||
#
|
||||
CpuExceptionHandlerLib|Include/Library/CpuExceptionHandlerLib.h
|
||||
|
||||
## @libraryclass Provides platform specific display interface.
|
||||
#
|
||||
CustomizedDisplayLib|Include/Library/CustomizedDisplayLib.h
|
||||
|
||||
[Guids]
|
||||
## MdeModule package token space guid
|
||||
# Include/Guid/MdeModulePkgTokenSpace.h
|
||||
@@ -361,6 +365,12 @@
|
||||
## Include/Protocol/BootLogo.h
|
||||
gEfiBootLogoProtocolGuid = { 0xcdea2bd3, 0xfc25, 0x4c1c, { 0xb9, 0x7c, 0xb3, 0x11, 0x86, 0x6, 0x49, 0x90 } }
|
||||
|
||||
## Include/Protocol/DisplayProtocol.h
|
||||
gEdkiiFormDisplayEngineProtocolGuid = { 0x9bbe29e9, 0xfda1, 0x41ec, { 0xad, 0x52, 0x45, 0x22, 0x13, 0x74, 0x2d, 0x2e } }
|
||||
|
||||
## Include/Protocol/FormBrowserEx2.h
|
||||
gEdkiiFormBrowserEx2ProtocolGuid = { 0xa770c357, 0xb693, 0x4e6d, { 0xa6, 0xcf, 0xd2, 0x1c, 0x72, 0x8e, 0x55, 0xb } }
|
||||
|
||||
[PcdsFeatureFlag]
|
||||
## Indicate whether platform can support update capsule across a system reset
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSupportUpdateCapsuleReset|FALSE|BOOLEAN|0x0001001d
|
||||
|
||||
@@ -76,6 +76,7 @@
|
||||
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
|
||||
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
||||
PalLib|MdePkg/Library/BasePalLibNull/BasePalLibNull.inf
|
||||
CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
|
||||
#
|
||||
# Misc
|
||||
#
|
||||
@@ -293,6 +294,7 @@
|
||||
|
||||
MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
|
||||
MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
|
||||
MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
|
||||
MdeModulePkg/Application/VariableInfo/VariableInfo.inf
|
||||
MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.inf
|
||||
MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
## @file
|
||||
# The DXE driver produces FORM BROWSER protocols defined in UEFI HII 2.1 specificatin.
|
||||
#
|
||||
# Copyright (c) 2007 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
#
|
||||
##
|
||||
|
||||
[Defines]
|
||||
INF_VERSION = 0x00010005
|
||||
BASE_NAME = DisplayEngine
|
||||
FILE_GUID = E660EA85-058E-4b55-A54B-F02F83A24707
|
||||
MODULE_TYPE = DXE_DRIVER
|
||||
VERSION_STRING = 1.0
|
||||
ENTRY_POINT = InitializeDisplayEngine
|
||||
UNLOAD_IMAGE = UnloadDisplayEngine
|
||||
#
|
||||
# The following information is for reference only and not required by the build tools.
|
||||
#
|
||||
# VALID_ARCHITECTURES = IA32 X64 IPF EBC
|
||||
#
|
||||
|
||||
[Sources]
|
||||
FormDisplayStr.uni
|
||||
FormDisplay.c
|
||||
FormDisplay.h
|
||||
ProcessOptions.c
|
||||
InputHandler.c
|
||||
|
||||
[Packages]
|
||||
MdePkg/MdePkg.dec
|
||||
MdeModulePkg/MdeModulePkg.dec
|
||||
|
||||
[LibraryClasses]
|
||||
UefiDriverEntryPoint
|
||||
UefiBootServicesTableLib
|
||||
DebugLib
|
||||
BaseMemoryLib
|
||||
BaseLib
|
||||
PrintLib
|
||||
HiiLib
|
||||
MemoryAllocationLib
|
||||
CustomizedDisplayLib
|
||||
|
||||
[Protocols]
|
||||
gEdkiiFormDisplayEngineProtocolGuid
|
||||
gEdkiiFormBrowserEx2ProtocolGuid
|
||||
|
||||
[Guids]
|
||||
gEfiIfrTianoGuid ## CONSUMES ## GUID
|
||||
|
||||
[Depex]
|
||||
gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid AND gEdkiiFormBrowserEx2ProtocolGuid
|
||||
|
||||
[FeaturePcd]
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdBrowserGrayOutTextStatement ## CONSUMES
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdBrowerGrayOutReadOnlyMenu ## CONSUMES
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
BIN
Binary file not shown.
+369
-256
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user