mirror of
https://github.com/CloverHackyColor/CloverBootloader.git
synced 2024-12-05 13:33:33 +01:00
175 lines
6.7 KiB
C
175 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 - 2018, Intel Corporation. All rights reserved.<BR>
|
||
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||
|
|
||
|
**/
|
||
|
|
||
|
#ifndef __EFI_FORM_BROWSER2_H__
|
||
|
#define __EFI_FORM_BROWSER2_H__
|
||
|
|
||
|
#include <Guid/HiiPlatformSetupFormset.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 The value that designates the text column
|
||
|
where the browser window will begin from
|
||
|
the left-hand side of the screen
|
||
|
|
||
|
@param RightColumn The value that designates the text
|
||
|
column where the browser window will end
|
||
|
on the right-hand side of the screen.
|
||
|
|
||
|
@param TopRow The value that designates the text row from the
|
||
|
top of the screen where the browser window
|
||
|
will start.
|
||
|
|
||
|
@param BottomRow The 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
|
||
|
#define EFI_BROWSER_ACTION_REQUEST_FORM_SUBMIT_EXIT 4
|
||
|
#define EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD_EXIT 5
|
||
|
#define EFI_BROWSER_ACTION_REQUEST_FORM_APPLY 6
|
||
|
#define EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD 7
|
||
|
#define EFI_BROWSER_ACTION_REQUEST_RECONNECT 8
|
||
|
|
||
|
|
||
|
/**
|
||
|
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 or one of the
|
||
|
elements of the ClassId field in the EFI_IFR_FORM_SET op-code. If
|
||
|
FormsetGuid is NULL, then this function will display the form set class
|
||
|
EFI_HII_PLATFORM_SETUP_FORMSET_GUID.
|
||
|
|
||
|
@param FormId This field specifies the identifier of the form within the form set to render as the first
|
||
|
displayable page. If this field has a value of 0x0000, then the Forms Browser will
|
||
|
render the first enabled form in the form set.
|
||
|
|
||
|
@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
|
||
|
|