]>
Commit | Line | Data |
---|---|---|
4259256b | 1 | /**@file\r |
2 | \r | |
3 | This file contains utility functions by HII Thunk Modules.\r | |
4 | \r | |
5 | Copyright (c) 2006 - 2008, Intel Corporation\r | |
6 | All rights reserved. This program and the accompanying materials\r | |
7 | are licensed and made available under the terms and conditions of the BSD License\r | |
8 | which accompanies this distribution. The full text of the license may be found at\r | |
9 | http://opensource.org/licenses/bsd-license.php\r | |
10 | \r | |
11 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r | |
12 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r | |
13 | \r | |
14 | **/\r | |
15 | \r | |
16 | #ifndef _HII_THUNK_UTILITY_H\r | |
17 | #define _HII_THUNK_UTILITY_H\r | |
18 | \r | |
cb7d01c0 | 19 | /**\r |
20 | \r | |
21 | This function returns a list of the package handles of the \r | |
22 | specified type that are currently active in the HII database. The \r | |
23 | pseudo-type EFI_HII_PACKAGE_TYPE_ALL will cause all package \r | |
24 | handles to be listed.\r | |
25 | \r | |
26 | If HandleBufferLength is NULL, then ASSERT.\r | |
27 | If HandleBuffer is NULL, the ASSERT.\r | |
28 | If PackageType is EFI_HII_PACKAGE_TYPE_GUID and PackageGuid is\r | |
29 | NULL, then ASSERT.\r | |
30 | If PackageType is not EFI_HII_PACKAGE_TYPE_GUID and PackageGuid is not\r | |
31 | NULL, then ASSERT.\r | |
32 | \r | |
33 | \r | |
34 | @param PackageType Specifies the package type of the packages\r | |
35 | to list or EFI_HII_PACKAGE_TYPE_ALL for\r | |
36 | all packages to be listed.\r | |
37 | \r | |
38 | @param PackageGuid If PackageType is\r | |
39 | EFI_HII_PACKAGE_TYPE_GUID, then this is\r | |
40 | the pointer to the GUID which must match\r | |
41 | the Guid field of\r | |
42 | EFI_HII_PACKAGE_GUID_HEADER. Otherwise, it\r | |
43 | must be NULL.\r | |
44 | \r | |
45 | @param HandleBufferLength On output, the length of the handle buffer\r | |
46 | that is required for the handles found.\r | |
47 | \r | |
48 | @param HandleBuffer On output, an array of EFI_HII_HANDLE instances returned.\r | |
49 | The caller is responcible to free this pointer allocated.\r | |
50 | \r | |
51 | @retval EFI_SUCCESS The matching handles are outputed successfully.\r | |
52 | HandleBufferLength is updated with the actual length.\r | |
53 | @retval EFI_OUT_OF_RESOURCES Not enough resource to complete the operation.\r | |
54 | @retval EFI_NOT_FOUND No matching handle could not be found in database.\r | |
55 | **/\r | |
56 | EFI_STATUS\r | |
57 | EFIAPI\r | |
58 | ListPackageLists (\r | |
59 | IN UINT8 PackageType,\r | |
60 | IN CONST EFI_GUID *PackageGuid,\r | |
61 | IN OUT UINTN *HandleBufferLength,\r | |
62 | OUT EFI_HII_HANDLE **HandleBuffer\r | |
63 | )\r | |
64 | ;\r | |
65 | \r | |
66 | /**\r | |
67 | Exports the contents of one or all package lists in the HII database into a buffer.\r | |
68 | \r | |
69 | If Handle is not NULL and not a valid EFI_HII_HANDLE registered in the database, \r | |
70 | then ASSERT.\r | |
71 | If PackageListHeader is NULL, then ASSERT.\r | |
72 | If PackageListSize is NULL, then ASSERT.\r | |
73 | \r | |
74 | @param Handle The HII Handle.\r | |
75 | @param PackageListHeader A pointer to a buffer that will contain the results of \r | |
76 | the export function.\r | |
77 | @param PackageListSize On output, the length of the buffer that is required for the exported data.\r | |
78 | \r | |
79 | @retval EFI_SUCCESS Package exported.\r | |
80 | \r | |
81 | @retval EFI_OUT_OF_RESOURCES Not enought memory to complete the operations.\r | |
82 | \r | |
83 | **/\r | |
84 | EFI_STATUS \r | |
85 | EFIAPI\r | |
86 | ExportPackageLists (\r | |
87 | IN EFI_HII_HANDLE Handle,\r | |
88 | OUT EFI_HII_PACKAGE_LIST_HEADER **PackageListHeader,\r | |
89 | OUT UINTN *PackageListSize\r | |
90 | )\r | |
91 | ;\r | |
92 | \r | |
93 | /**\r | |
94 | Extract Hii package list GUID for given HII handle.\r | |
95 | \r | |
96 | If HiiHandle could not be found in the HII database, then ASSERT.\r | |
97 | If Guid is NULL, then ASSERT.\r | |
98 | \r | |
99 | @param Handle Hii handle\r | |
100 | @param Guid Package list GUID\r | |
101 | \r | |
102 | @retval EFI_SUCCESS Successfully extract GUID from Hii database.\r | |
103 | \r | |
104 | **/\r | |
105 | EFI_STATUS\r | |
106 | EFIAPI\r | |
107 | ExtractGuidFromHiiHandle (\r | |
108 | IN EFI_HII_HANDLE Handle,\r | |
109 | OUT EFI_GUID *Guid\r | |
110 | )\r | |
111 | ;\r | |
112 | \r | |
ee3428bb | 113 | /**\r |
114 | Find the UefiHiiHandle based on a Framework HII Handle returned by\r | |
115 | the HII Thunk to Framework HII code.\r | |
116 | \r | |
117 | @param Private The pointer to the private data of Hii Thunk.\r | |
0368663f | 118 | @param FwHiiHandle Framework HII Handle returned by the HII Thunk to Framework HII code.\r |
ee3428bb | 119 | \r |
120 | @retval NULL If Framework HII Handle passed in does not have matching UEFI HII handle.\r | |
121 | @retval !NULL If the match is found.\r | |
122 | \r | |
123 | **/\r | |
124 | EFI_HII_HANDLE\r | |
0368663f | 125 | FwHiiHandleToUefiHiiHandle (\r |
126 | IN CONST HII_THUNK_PRIVATE_DATA *Private,\r | |
127 | IN FRAMEWORK_EFI_HII_HANDLE FwHiiHandle\r | |
e00e1d46 | 128 | );\r |
ebbd2793 | 129 | \r |
0368663f | 130 | HII_THUNK_CONTEXT *\r |
131 | FwHiiHandleToThunkContext (\r | |
132 | IN CONST HII_THUNK_PRIVATE_DATA *Private,\r | |
133 | IN FRAMEWORK_EFI_HII_HANDLE FwHiiHandle\r | |
e00e1d46 | 134 | );\r |
ebbd2793 | 135 | \r |
0368663f | 136 | HII_THUNK_CONTEXT *\r |
137 | UefiHiiHandleToThunkContext (\r | |
138 | IN CONST HII_THUNK_PRIVATE_DATA *Private,\r | |
ea58467b | 139 | IN EFI_HII_HANDLE UefiHiiHandle\r |
e00e1d46 | 140 | );\r |
99a83b4c | 141 | \r |
8ea58c07 | 142 | HII_THUNK_CONTEXT *\r |
143 | TagGuidToIfrPackThunkContext (\r | |
0368663f | 144 | IN CONST HII_THUNK_PRIVATE_DATA *Private,\r |
99a83b4c | 145 | IN CONST EFI_GUID *Guid\r |
e00e1d46 | 146 | );\r |
99a83b4c | 147 | \r |
0368663f | 148 | HII_THUNK_CONTEXT *\r |
149 | CreateThunkContextForUefiHiiHandle (\r | |
0368663f | 150 | IN EFI_HII_HANDLE UefiHiiHandle\r |
e00e1d46 | 151 | );\r |
0368663f | 152 | \r |
d4775f2a | 153 | VOID\r |
0368663f | 154 | DestroyThunkContextForUefiHiiHandle (\r |
155 | IN HII_THUNK_PRIVATE_DATA *Private,\r | |
156 | IN EFI_HII_HANDLE UefiHiiHandle\r | |
e00e1d46 | 157 | );\r |
0368663f | 158 | \r |
159 | UINTN\r | |
160 | GetPackageCountByType (\r | |
161 | IN CONST EFI_HII_PACKAGE_LIST_HEADER *PackageListHeader,\r | |
162 | IN UINT8 PackageType\r | |
e00e1d46 | 163 | );\r |
0368663f | 164 | \r |
165 | EFI_STATUS\r | |
166 | CreateQuestionIdMap (\r | |
167 | IN OUT HII_THUNK_CONTEXT *ThunkContext\r | |
e00e1d46 | 168 | );\r |
0368663f | 169 | \r |
59930165 | 170 | VOID\r |
171 | GetAttributesOfFirstFormSet (\r | |
172 | IN OUT HII_THUNK_CONTEXT *ThunkContext\r | |
e00e1d46 | 173 | );\r |
59930165 | 174 | \r |
0368663f | 175 | LIST_ENTRY *\r |
176 | GetMapEntryListHead (\r | |
177 | IN CONST HII_THUNK_CONTEXT *ThunkContext,\r | |
178 | IN UINT16 VarStoreId\r | |
e00e1d46 | 179 | );\r |
0368663f | 180 | \r |
d4775f2a | 181 | HII_THUNK_CONTEXT *\r |
182 | CreateThunkContext (\r | |
183 | IN HII_THUNK_PRIVATE_DATA *Private,\r | |
184 | IN UINTN StringPackageCount,\r | |
185 | IN UINTN IfrPackageCount\r | |
e00e1d46 | 186 | );\r |
d4775f2a | 187 | \r |
188 | VOID\r | |
189 | DestroyThunkContext (\r | |
190 | IN HII_THUNK_CONTEXT *ThunkContext\r | |
e00e1d46 | 191 | );\r |
d4775f2a | 192 | \r |
d4775f2a | 193 | VOID\r |
194 | DestoryOneOfOptionMap (\r | |
195 | IN LIST_ENTRY *OneOfOptionMapListHead\r | |
e00e1d46 | 196 | );\r |
d4775f2a | 197 | \r |
bc226416 | 198 | VOID\r |
199 | GetFormSetGuid (\r | |
200 | IN EFI_HII_PACKAGE_HEADER *Package,\r | |
201 | OUT EFI_GUID *FormSetGuid\r | |
202 | )\r | |
203 | ;\r | |
204 | \r | |
205 | EFI_HII_PACKAGE_HEADER *\r | |
206 | GetIfrPackage (\r | |
207 | IN CONST EFI_HII_PACKAGES *Packages\r | |
208 | )\r | |
209 | ;\r | |
210 | \r | |
a9d85320 | 211 | FORM_BROWSER_FORMSET *\r |
212 | ParseFormSet (\r | |
213 | IN EFI_HII_HANDLE UefiHiiHandle\r | |
214 | )\r | |
215 | ;\r | |
216 | \r | |
4259256b | 217 | #endif\r |