1. Add FrameworkFormBrowser.h
2. Add SetupBrowserDxe.inf, HiiDataBaseDxe.inf and DriverSampleDxe in IntelFrameworkModulePkg.dsc and Nt32Pkg.dsc 3. Update Vfr.vfr to declare MyIfrNVData git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2933 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
160
IntelFrameworkPkg/Include/Protocol/FrameworkFormBrowser.h
Normal file
160
IntelFrameworkPkg/Include/Protocol/FrameworkFormBrowser.h
Normal file
@ -0,0 +1,160 @@
|
||||
/** @file
|
||||
The EFI_FORM_BROWSER_PROTOCOL is the interface to the EFI
|
||||
Configuration Driver. This will allow the caller to direct the
|
||||
configuration driver to use either the HII database or use the passed
|
||||
in packet of data. This will also allow the caller to post messages
|
||||
into the configuration drivers internal mailbox.
|
||||
|
||||
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: FrameworkFormBrowser.h
|
||||
|
||||
@par Revision Reference:
|
||||
This protocol is defined in HII spec 0.92.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __FRAMEWORK_FORM_BROWSER_H__
|
||||
#define __FRAMEWORK_FORM_BROWSER_H__
|
||||
|
||||
|
||||
#define EFI_FORM_BROWSER_PROTOCOL_GUID \
|
||||
{ \
|
||||
0xe5a1333e, 0xe1b4, 0x4d55, {0xce, 0xeb, 0x35, 0xc3, 0xef, 0x13, 0x34, 0x43 } \
|
||||
}
|
||||
|
||||
typedef struct _EFI_FORM_BROWSER_PROTOCOL EFI_FORM_BROWSER_PROTOCOL;
|
||||
|
||||
typedef struct {
|
||||
UINT32 Length;
|
||||
UINT16 Type;
|
||||
UINT8 Data[1];
|
||||
} EFI_HII_PACKET;
|
||||
|
||||
typedef struct {
|
||||
EFI_HII_IFR_PACK *IfrData;
|
||||
EFI_HII_STRING_PACK *StringData;
|
||||
} EFI_IFR_PACKET;
|
||||
|
||||
typedef struct {
|
||||
UINTN LeftColumn;
|
||||
UINTN RightColumn;
|
||||
UINTN TopRow;
|
||||
UINTN BottomRow;
|
||||
} EFI_SCREEN_DESCRIPTOR;
|
||||
|
||||
/**
|
||||
Provides direction to the configuration driver whether to use the HII
|
||||
database or a passed-in set of data. This function also establishes a
|
||||
pointer to the calling driver's callback interface.
|
||||
|
||||
@param This A pointer to the EFI_FORM_BROWSER_PROTOCOL instance.
|
||||
@param UseDatabase Determines whether the HII database is to be
|
||||
used to gather information. If the value is FALSE, the configuration
|
||||
driver will get the information provided in the passed-in Packet parameters.
|
||||
@param Handle A pointer to an array of HII handles to display. This value
|
||||
should correspond to the value of the HII form package that is required to
|
||||
be displayed.
|
||||
@param HandleCount The number of handles in the array specified by Handle.
|
||||
@param Packet A pointer to a set of data containing pointers to IFR
|
||||
and/or string data.
|
||||
@param CallbackHandle The handle to the driver's callback interface.
|
||||
This parameter is used only when the UseDatabase parameter is FALSE
|
||||
and an application wants to register a callback with the browser
|
||||
@param NvMapOverride This buffer is used only when there is no NV variable
|
||||
to define the current settings and the caller needs to provide to the browser
|
||||
the current settings for the "fake" NV variable.
|
||||
@param ScreenDimensions Allows the browser to be called so that it occupies
|
||||
a portion of the physical screen instead of dynamically determining the
|
||||
screen dimensions.
|
||||
@param ResetRequired This BOOLEAN value will tell the caller if a reset
|
||||
is required based on the data that might have been changed. The ResetRequired
|
||||
parameter is primarily applicable for configuration applications, and is an
|
||||
optional parameter.
|
||||
|
||||
@retval EFI_SUCCESS The function completed successfully
|
||||
@retval EFI_NOT_FOUND The variable was not found.
|
||||
@retval EFI_BUFFER_TOO_SMALL The DataSize is too small for the result.
|
||||
DataSize has been updated with the size needed to complete the request.
|
||||
@retval EFI_INVALID_PARAMETER One of the parameters has an invalid value.
|
||||
@retval EFI_DEVICE_ERROR The variable could not be saved due to a hardware failure.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_SEND_FORM) (
|
||||
IN EFI_FORM_BROWSER_PROTOCOL *This,
|
||||
IN BOOLEAN UseDatabase,
|
||||
IN EFI_HII_HANDLE *Handle,
|
||||
IN UINTN HandleCount,
|
||||
IN EFI_IFR_PACKET *Packet, OPTIONAL
|
||||
IN EFI_HANDLE CallbackHandle, OPTIONAL
|
||||
IN UINT8 *NvMapOverride, OPTIONAL
|
||||
IN EFI_SCREEN_DESCRIPTOR *ScreenDimensions, OPTIONAL
|
||||
OUT BOOLEAN *ResetRequired OPTIONAL
|
||||
);
|
||||
|
||||
/**
|
||||
Routine used to abstract a generic dialog interface and return the selected
|
||||
key or string.
|
||||
|
||||
@param NumberOfLines The number of lines for the dialog box.
|
||||
@param HotKey Defines whether a single character is parsed (TRUE)
|
||||
and returned in KeyValue or if a string is returned in StringBuffer.
|
||||
@param MaximumStringSize The maximum size in bytes of a typed-in string.
|
||||
Because each character is a CHAR16, the minimum string returned is two bytes.
|
||||
@param StringBuffer The passed-in pointer to the buffer that will hold
|
||||
the typed in string if HotKey is FALSE.
|
||||
@param KeyValue The EFI_INPUT_KEY value returned if HotKey is TRUE.
|
||||
@param String The pointer to the first string in the list of strings
|
||||
that comprise the dialog box.
|
||||
@param ... A series of NumberOfLines text strings that will be used
|
||||
to construct the dialog box.
|
||||
|
||||
@retval EFI_SUCCESS The dialog was displayed and user interaction was received.
|
||||
@retval EFI_DEVICE_ERROR The user typed in an ESC character to exit the routine.
|
||||
@retval EFI_INVALID_PARAMETER One of the parameters was invalid
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_CREATE_POP_UP) (
|
||||
IN UINTN NumberOfLines,
|
||||
IN BOOLEAN HotKey,
|
||||
IN UINTN MaximumStringSize,
|
||||
OUT CHAR16 *StringBuffer,
|
||||
OUT EFI_INPUT_KEY *KeyValue,
|
||||
IN CHAR16 *String,
|
||||
...
|
||||
);
|
||||
|
||||
/**
|
||||
@par Protocol Description:
|
||||
The EFI_FORM_BROWSER_PROTOCOL is the interface to call for drivers to
|
||||
leverage the EFI configuration driver interface.
|
||||
|
||||
@param SendForm
|
||||
Provides direction to the configuration driver whether to use the HII
|
||||
database or to use a passed-in set of data. This functions also establishes
|
||||
a pointer to the calling driver's callback interface.
|
||||
|
||||
@param CreatePopUp
|
||||
Routine used to abstract a generic dialog interface and return the
|
||||
selected key or string.
|
||||
|
||||
**/
|
||||
struct _EFI_FORM_BROWSER_PROTOCOL {
|
||||
EFI_SEND_FORM SendForm;
|
||||
EFI_CREATE_POP_UP CreatePopUp;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiFormBrowserProtocolGuid;
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user