]> git.proxmox.com Git - mirror_edk2.git/blob - EdkCompatibilityPkg/Foundation/Efi/Protocol/HiiConfigAccess/HiiConfigAccess.h
Update the copyright notice format
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Efi / Protocol / HiiConfigAccess / HiiConfigAccess.h
1 /*++
2
3 Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
4 This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12 Module Name:
13
14 HiiConfigAccess.h
15
16 Abstract:
17
18 EFI_HII_CONFIG_ACCESS_PROTOCOL as defined in UEFI 2.1 spec.
19
20 --*/
21
22 #ifndef _HII_CONFIG_ACCESS_H_
23 #define _HII_CONFIG_ACCESS_H_
24
25 #include EFI_PROTOCOL_DEFINITION (FormBrowser2)
26
27 #define EFI_HII_CONFIG_ACCESS_PROTOCOL_GUID \
28 { \
29 0x330d4706, 0xf2a0, 0x4e4f, {0xa3, 0x69, 0xb6, 0x6f, 0xa8, 0xd5, 0x43, 0x85} \
30 }
31
32 //
33 // Forward reference for pure ANSI compatability
34 //
35 EFI_FORWARD_DECLARATION (EFI_HII_CONFIG_ACCESS_PROTOCOL);
36
37 typedef UINTN EFI_BROWSER_ACTION;
38
39 #define EFI_BROWSER_ACTION_CHANGING 0
40 #define EFI_BROWSER_ACTION_CHANGED 1
41
42
43 typedef
44 EFI_STATUS
45 (EFIAPI *EFI_HII_ACCESS_EXTRACT_CONFIG) (
46 IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
47 IN CONST EFI_STRING Request,
48 OUT EFI_STRING *Progress,
49 OUT EFI_STRING *Results
50 )
51 /*++
52
53 Routine Description:
54 This function allows a caller to extract the current configuration for one
55 or more named elements from the target driver.
56
57 Arguments:
58 This - Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
59 Request - A null-terminated Unicode string in <ConfigRequest> format.
60 Progress - On return, points to a character in the Request string.
61 Points to the string's null terminator if request was successful.
62 Points to the most recent '&' before the first failing name/value
63 pair (or the beginning of the string if the failure is in the
64 first name/value pair) if the request was not successful.
65 Results - A null-terminated Unicode string in <ConfigAltResp> format which
66 has all values filled in for the names in the Request string.
67 String to be allocated by the called function.
68
69 Returns:
70 EFI_SUCCESS - The Results is filled with the requested values.
71 EFI_OUT_OF_RESOURCES - Not enough memory to store the results.
72 EFI_INVALID_PARAMETER - Request is NULL, illegal syntax, or unknown name.
73 EFI_NOT_FOUND - Routing data doesn't match any storage in this driver.
74
75 --*/
76 ;
77
78 typedef
79 EFI_STATUS
80 (EFIAPI *EFI_HII_ACCESS_ROUTE_CONFIG) (
81 IN EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
82 IN CONST EFI_STRING Configuration,
83 OUT EFI_STRING *Progress
84 )
85 /*++
86
87 Routine Description:
88 This function processes the results of changes in configuration.
89
90 Arguments:
91 This - Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
92 Configuration - A null-terminated Unicode string in <ConfigResp> format.
93 Progress - A pointer to a string filled in with the offset of the most
94 recent '&' before the first failing name/value pair (or the
95 beginning of the string if the failure is in the first
96 name/value pair) or the terminating NULL if all was successful.
97
98 Returns:
99 EFI_SUCCESS - The Results is processed successfully.
100 EFI_INVALID_PARAMETER - Configuration is NULL.
101 EFI_NOT_FOUND - Routing data doesn't match any storage in this driver.
102
103 --*/
104 ;
105
106 typedef
107 EFI_STATUS
108 (EFIAPI *EFI_HII_ACCESS_FORM_CALLBACK) (
109 IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
110 IN EFI_BROWSER_ACTION Action,
111 IN EFI_QUESTION_ID QuestionId,
112 IN UINT8 Type,
113 IN EFI_IFR_TYPE_VALUE *Value,
114 OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest
115 )
116 /*++
117
118 Routine Description:
119 This function processes the results of changes in configuration.
120
121 Arguments:
122 This - Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
123 Action - Specifies the type of action taken by the browser.
124 QuestionId - A unique value which is sent to the original exporting driver
125 so that it can identify the type of data to expect.
126 Type - The type of value for the question.
127 Value - A pointer to the data being sent to the original exporting driver.
128 ActionRequest - On return, points to the action requested by the callback function.
129
130 Returns:
131 EFI_SUCCESS - The callback successfully handled the action.
132 EFI_OUT_OF_RESOURCES - Not enough storage is available to hold the variable and its data.
133 EFI_DEVICE_ERROR - The variable could not be saved.
134 EFI_UNSUPPORTED - The specified Action is not supported by the callback.
135
136 --*/
137 ;
138
139 struct _EFI_HII_CONFIG_ACCESS_PROTOCOL {
140 EFI_HII_ACCESS_EXTRACT_CONFIG ExtractConfig;
141 EFI_HII_ACCESS_ROUTE_CONFIG RouteConfig;
142 EFI_HII_ACCESS_FORM_CALLBACK Callback;
143 };
144
145 extern EFI_GUID gEfiHiiConfigAccessProtocolGuid;
146
147 #endif