mirror of https://github.com/acidanthera/audk.git
171 lines
6.7 KiB
C
171 lines
6.7 KiB
C
/** @file
|
|
This protocol is defined in UEFI spec.
|
|
|
|
The EFI_FORM_BROWSER2_PROTOCOL is the interface to call for drivers to
|
|
leverage the EFI configuration driver interface.
|
|
|
|
Copyright (c) 2006 - 2008, 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.
|
|
|
|
**/
|
|
|
|
#ifndef __EFI_FORM_BROWSER2_H__
|
|
#define __EFI_FORM_BROWSER2_H__
|
|
|
|
#define EFI_FORM_BROWSER2_PROTOCOL_GUID \
|
|
{0xb9d4c360, 0xbcfb, 0x4f9b, {0x92, 0x98, 0x53, 0xc1, 0x36, 0x98, 0x22, 0x58 }}
|
|
|
|
|
|
typedef struct _EFI_FORM_BROWSER2_PROTOCOL EFI_FORM_BROWSER2_PROTOCOL;
|
|
|
|
|
|
|
|
/**
|
|
|
|
@param LeftColumn Value that designates the text column
|
|
at which the browser window will begin (left-most column).
|
|
|
|
@param RightColumn Value that designates the text
|
|
column at which the browser window will end (right-most column).
|
|
|
|
@param TopRow Value that designates the text row from the
|
|
top of the screen where the browser window
|
|
will start.
|
|
|
|
@param BottomRow Value that designates the text row from the
|
|
bottom of the screen where the browser
|
|
window will end.
|
|
**/
|
|
typedef struct {
|
|
UINTN LeftColumn;
|
|
UINTN RightColumn;
|
|
UINTN TopRow;
|
|
UINTN BottomRow;
|
|
} EFI_SCREEN_DESCRIPTOR;
|
|
|
|
typedef UINTN EFI_BROWSER_ACTION_REQUEST;
|
|
|
|
#define EFI_BROWSER_ACTION_REQUEST_NONE 0
|
|
#define EFI_BROWSER_ACTION_REQUEST_RESET 1
|
|
#define EFI_BROWSER_ACTION_REQUEST_SUBMIT 2
|
|
#define EFI_BROWSER_ACTION_REQUEST_EXIT 3
|
|
|
|
|
|
/**
|
|
Initialize the browser to display the specified configuration forms.
|
|
|
|
This function is the primary interface to the internal forms-based browser.
|
|
The forms browser will display forms associated with the specified Handles.
|
|
The browser will select all forms in packages which have the specified Type
|
|
and (for EFI_HII_PACKAGE_TYPE_GUID) the specified PackageGuid.
|
|
|
|
@param This A pointer to the EFI_FORM_BROWSER2_PROTOCOL instance
|
|
|
|
@param Handles A pointer to an array of Handles. This value should correspond
|
|
to the value of the HII form package that is required to be displayed.
|
|
|
|
@param HandleCount The number of Handles specified in Handle.
|
|
|
|
@param FormSetGuid This field points to the EFI_GUID which must match the Guid
|
|
field in the EFI_IFR_FORM_SET op-code for the specified
|
|
forms-based package. If FormSetGuid is NULL, then this
|
|
function will display the first found forms package.
|
|
|
|
@param FormId This field specifies which EFI_IFR_FORM to render as the first
|
|
displayable page. If this field has a value of 0x0000, then
|
|
the forms browser will render the specified forms in their encoded order.
|
|
|
|
@param ScreenDimensions Points to recommended form dimensions, including any non-content area, in
|
|
characters.
|
|
|
|
@param ActionRequest Points to the action recommended by the form.
|
|
|
|
@retval EFI_SUCCESS The function completed successfully
|
|
|
|
@retval EFI_NOT_FOUND The variable was not found.
|
|
|
|
@retval EFI_INVALID_PARAMETER One of the parameters has an
|
|
invalid value.
|
|
**/
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *EFI_SEND_FORM2)(
|
|
IN CONST EFI_FORM_BROWSER2_PROTOCOL *This,
|
|
IN EFI_HII_HANDLE *Handle,
|
|
IN UINTN HandleCount,
|
|
IN EFI_GUID *FormSetGuid, OPTIONAL
|
|
IN EFI_FORM_ID FormId, OPTIONAL
|
|
IN CONST EFI_SCREEN_DESCRIPTOR *ScreenDimensions, OPTIONAL
|
|
OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest OPTIONAL
|
|
);
|
|
|
|
|
|
/**
|
|
This function is called by a callback handler to retrieve uncommitted state data from the browser.
|
|
|
|
This routine is called by a routine which was called by the
|
|
browser. This routine called this service in the browser to
|
|
retrieve or set certain uncommitted state information.
|
|
|
|
@param This A pointer to the EFI_FORM_BROWSER2_PROTOCOL instance.
|
|
|
|
@param ResultsDataSize A pointer to the size of the buffer
|
|
associated with ResultsData. On input, the size in
|
|
bytes of ResultsData. On output, the size of data returned in ResultsData.
|
|
|
|
@param ResultsData A string returned from an IFR browser or
|
|
equivalent. The results string will have
|
|
no routing information in them.
|
|
|
|
@param RetrieveData A BOOLEAN field which allows an agent to
|
|
retrieve (if RetrieveData = TRUE) data
|
|
from the uncommitted browser state
|
|
information or set (if RetrieveData =
|
|
FALSE) data in the uncommitted browser
|
|
state information.
|
|
|
|
@param VariableGuid An optional field to indicate the target
|
|
variable GUID name to use.
|
|
|
|
@param VariableName An optional field to indicate the target
|
|
human-readable variable name.
|
|
|
|
@retval EFI_SUCCESS The results have been distributed or are
|
|
awaiting distribution.
|
|
|
|
@retval EFI_OUT_OF_RESOURCES The ResultsDataSize specified
|
|
was too small to contain the
|
|
results data.
|
|
|
|
**/
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *EFI_BROWSER_CALLBACK2)(
|
|
IN CONST EFI_FORM_BROWSER2_PROTOCOL *This,
|
|
IN OUT UINTN *ResultsDataSize,
|
|
IN OUT EFI_STRING ResultsData,
|
|
IN CONST BOOLEAN RetrieveData,
|
|
IN CONST EFI_GUID *VariableGuid, OPTIONAL
|
|
IN CONST CHAR16 *VariableName OPTIONAL
|
|
);
|
|
|
|
///
|
|
/// This interface will allow the caller to direct the configuration
|
|
/// driver to use either the HII database or use the passed-in packet of data.
|
|
///
|
|
struct _EFI_FORM_BROWSER2_PROTOCOL {
|
|
EFI_SEND_FORM2 SendForm;
|
|
EFI_BROWSER_CALLBACK2 BrowserCallback;
|
|
} ;
|
|
|
|
extern EFI_GUID gEfiFormBrowser2ProtocolGuid;
|
|
|
|
#endif
|
|
|