1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
/*++
Copyright (c) 2007, 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:
FormBrowser2.h
Abstract:
The EFI_FORM_BROWSER2_PROTOCOL is the interface to the UEFI configuration driver.
--*/
#ifndef _FORM_BROWSER2_H_
#define _FORM_BROWSER2_H_
#include "EfiHii.h"
#define EFI_FORM_BROWSER2_PROTOCOL_GUID \
{ \
0xb9d4c360, 0xbcfb, 0x4f9b, 0x92, 0x98, 0x53, 0xc1, 0x36, 0x98, 0x22, 0x58 \
}
//
// Forward reference for pure ANSI compatability
//
EFI_FORWARD_DECLARATION (EFI_FORM_BROWSER2_PROTOCOL);
typedef struct _EFI_FORM_BROWSER2_PROTOCOL EFI_FORM_BROWSER2_PROTOCOL;
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
//
// The following types are currently defined:
//
typedef
EFI_STATUS
(EFIAPI *EFI_SEND_FORM2) (
IN CONST EFI_FORM_BROWSER2_PROTOCOL *This,
IN EFI_HII_HANDLE *Handles,
IN UINTN HandleCount,
IN EFI_GUID *FormSetGuid, OPTIONAL
IN UINT16 FormId, OPTIONAL
IN CONST EFI_SCREEN_DESCRIPTOR *ScreenDimensions, OPTIONAL
OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest OPTIONAL
)
/*++
Routine Description:
This is the routine which an external caller uses to direct the browser
where to obtain it's information.
Arguments:
This - A pointer to the EFI_FORM_BROWSER2_PROTOCOL instance.
Handles - A pointer to an array of HII handles to display.
HandleCount - The number of handles in the array specified by Handle.
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.
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.
ScreenDimenions - This allows the browser to be called so that it occupies a portion of the physical screen instead of
dynamically determining the screen dimensions.
ActionRequest - Points to the action recommended by the form.
Returns:
EFI_SUCCESS - The function completed successfully.
EFI_INVALID_PARAMETER - One of the parameters has an invalid value.
EFI_NOT_FOUND - No valid forms could be found to display.
--*/
;
typedef
EFI_STATUS
(EFIAPI *EFI_BROWSER_CALLBACK2) (
IN CONST EFI_FORM_BROWSER2_PROTOCOL *This,
IN OUT UINTN *ResultsDataSize,
IN OUT EFI_STRING ResultsData,
IN BOOLEAN RetrieveData,
IN CONST EFI_GUID *VariableGuid, OPTIONAL
IN CONST CHAR16 *VariableName OPTIONAL
)
/*++
Routine Description:
This function is called by a callback handler to retrieve uncommitted state
data from the browser.
Arguments:
This - A pointer to the EFI_FORM_BROWSER2_PROTOCOL instance.
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.
ResultsData - A string returned from an IFR browser or equivalent.
The results string will have no routing information in them.
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.
VariableGuid - An optional field to indicate the target variable GUID name to use.
VariableName - An optional field to indicate the target human-readable variable name.
Returns:
EFI_SUCCESS - The results have been distributed or are awaiting distribution.
EFI_BUFFER_TOO_SMALL - The ResultsDataSize specified was too small to contain the results data.
--*/
;
typedef struct _EFI_FORM_BROWSER2_PROTOCOL {
EFI_SEND_FORM2 SendForm;
EFI_BROWSER_CALLBACK2 BrowserCallback;
} EFI_FORM_BROWSER2_PROTOCOL;
extern EFI_GUID gEfiFormBrowser2ProtocolGuid;
#endif
|