878ddf1f |
1 | /** @file\r |
2 | Private functions used by PCD DXE driver.\r |
3 | \r |
4 | Copyright (c) 2006, Intel Corporation \r |
5 | All rights reserved. This program and the accompanying materials \r |
6 | are licensed and made available under the terms and conditions of the BSD License \r |
7 | which accompanies this distribution. The full text of the license may be found at \r |
8 | http://opensource.org/licenses/bsd-license.php \r |
9 | \r |
10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r |
11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r |
12 | \r |
13 | \r |
14 | Module Name: Service.h\r |
15 | \r |
16 | **/\r |
17 | \r |
18 | #ifndef _SERVICE_H\r |
19 | #define _SERVICE_H\r |
20 | \r |
52e1905d |
21 | //\r |
4acf8ce7 |
22 | // Please make sure the PCD Serivce PEIM Version is consistent with\r |
23 | // the version of PCD Database generation tool\r |
52e1905d |
24 | //\r |
4acf8ce7 |
25 | #define PCD_DXE_SERVICE_DRIVER_VERSION 1\r |
52e1905d |
26 | \r |
27 | //\r |
4acf8ce7 |
28 | // PCD_DXE_DATABASE_GENTOOL_VERSION is defined in Autogen.h\r |
29 | // and generated by PCD Database generation tool.\r |
52e1905d |
30 | //\r |
4acf8ce7 |
31 | #if (PCD_DXE_SERVICE_PEIM_VERSION != PCD_DXE_DATABASE_GENTOOL_VERSION)\r |
32 | #error "Please make sure the version of PCD Service DXE Driver and PCD DXE Database Generation Tool matches"\r |
52e1905d |
33 | #endif\r |
34 | \r |
4c114006 |
35 | \r |
36 | typedef struct {\r |
37 | LIST_ENTRY Node;\r |
38 | PCD_PROTOCOL_CALLBACK CallbackFn;\r |
39 | } CALLBACK_FN_ENTRY;\r |
40 | \r |
41 | #define CR_FNENTRY_FROM_LISTNODE(Record, Type, Field) _CR(Record, Type, Field)\r |
42 | \r |
52e1905d |
43 | //\r |
44 | // Internal Functions\r |
45 | //\r |
46 | \r |
47 | EFI_STATUS\r |
48 | SetWorker (\r |
8a43e8dd |
49 | IN UINTN TokenNumber,\r |
0653eb89 |
50 | IN VOID *Data,\r |
51 | IN UINTN Size,\r |
52 | IN BOOLEAN PtrType\r |
52e1905d |
53 | )\r |
54 | ;\r |
55 | \r |
56 | EFI_STATUS\r |
57 | ExSetWorker (\r |
8a43e8dd |
58 | IN UINTN ExTokenNumber,\r |
52e1905d |
59 | IN CONST EFI_GUID *Guid,\r |
60 | VOID *Data,\r |
61 | UINTN Size,\r |
62 | BOOLEAN PtrType\r |
63 | )\r |
64 | ;\r |
65 | \r |
66 | \r |
67 | VOID *\r |
68 | GetWorker (\r |
8a43e8dd |
69 | UINTN TokenNumber,\r |
9d6d8b24 |
70 | UINTN GetSize\r |
52e1905d |
71 | )\r |
72 | ;\r |
73 | \r |
74 | VOID *\r |
75 | ExGetWorker (\r |
76 | IN CONST EFI_GUID *Guid,\r |
8a43e8dd |
77 | IN UINTN ExTokenNumber,\r |
52e1905d |
78 | IN UINTN GetSize\r |
79 | ) \r |
80 | ;\r |
81 | \r |
82 | UINT32\r |
83 | GetSkuEnabledTokenNumber (\r |
84 | UINT32 LocalTokenNumber,\r |
85 | UINTN Size,\r |
86 | BOOLEAN IsPeiDb\r |
87 | ) \r |
88 | ;\r |
89 | \r |
90 | EFI_STATUS\r |
91 | GetHiiVariable (\r |
92 | IN EFI_GUID *VariableGuid,\r |
93 | IN UINT16 *VariableName,\r |
0653eb89 |
94 | OUT VOID **VariableData,\r |
52e1905d |
95 | OUT UINTN *VariableSize\r |
96 | )\r |
97 | ;\r |
878ddf1f |
98 | \r |
c0e96fed |
99 | EFI_STATUS\r |
100 | SetHiiVariable (\r |
101 | IN EFI_GUID *VariableGuid,\r |
102 | IN UINT16 *VariableName,\r |
103 | IN CONST VOID *Data,\r |
104 | IN UINTN DataSize,\r |
105 | IN UINTN Offset\r |
106 | )\r |
107 | ;\r |
108 | \r |
878ddf1f |
109 | EFI_STATUS\r |
110 | DxeRegisterCallBackWorker (\r |
8a43e8dd |
111 | IN UINTN TokenNumber,\r |
4c114006 |
112 | IN CONST EFI_GUID *Guid, OPTIONAL\r |
113 | IN PCD_PROTOCOL_CALLBACK CallBackFunction\r |
878ddf1f |
114 | );\r |
115 | \r |
878ddf1f |
116 | EFI_STATUS\r |
4c114006 |
117 | DxeUnRegisterCallBackWorker (\r |
8a43e8dd |
118 | IN UINTN TokenNumber,\r |
4c114006 |
119 | IN CONST EFI_GUID *Guid, OPTIONAL\r |
120 | IN PCD_PROTOCOL_CALLBACK CallBackFunction\r |
121 | );\r |
878ddf1f |
122 | \r |
123 | VOID\r |
52e1905d |
124 | BuildPcdDxeDataBase (\r |
878ddf1f |
125 | VOID\r |
126 | );\r |
127 | \r |
52e1905d |
128 | \r |
8a43e8dd |
129 | UINTN \r |
9d6d8b24 |
130 | GetExPcdTokenNumber (\r |
52e1905d |
131 | IN CONST EFI_GUID *Guid,\r |
4f242357 |
132 | IN UINT32 ExTokenNumber\r |
52e1905d |
133 | )\r |
134 | ;\r |
878ddf1f |
135 | //\r |
136 | // Protocol Interface function declaration.\r |
137 | //\r |
00b7af13 |
138 | VOID\r |
878ddf1f |
139 | EFIAPI\r |
140 | DxePcdSetSku (\r |
8a43e8dd |
141 | IN UINTN SkuId\r |
878ddf1f |
142 | )\r |
143 | ;\r |
144 | \r |
145 | \r |
146 | UINT8\r |
147 | EFIAPI\r |
148 | DxePcdGet8 (\r |
8a43e8dd |
149 | IN UINTN TokenNumber\r |
878ddf1f |
150 | )\r |
151 | ;\r |
152 | \r |
153 | \r |
154 | UINT16\r |
155 | EFIAPI\r |
156 | DxePcdGet16 (\r |
8a43e8dd |
157 | IN UINTN TokenNumber\r |
878ddf1f |
158 | )\r |
159 | ;\r |
160 | \r |
161 | \r |
162 | UINT32\r |
163 | EFIAPI\r |
164 | DxePcdGet32 (\r |
8a43e8dd |
165 | IN UINTN TokenNumber\r |
878ddf1f |
166 | )\r |
167 | ;\r |
168 | \r |
169 | \r |
170 | UINT64\r |
171 | EFIAPI\r |
172 | DxePcdGet64 (\r |
8a43e8dd |
173 | IN UINTN TokenNumber\r |
878ddf1f |
174 | )\r |
175 | ;\r |
176 | \r |
177 | \r |
178 | VOID *\r |
179 | EFIAPI\r |
180 | DxePcdGetPtr (\r |
8a43e8dd |
181 | IN UINTN TokenNumber\r |
878ddf1f |
182 | )\r |
183 | ;\r |
184 | \r |
185 | \r |
186 | BOOLEAN\r |
187 | EFIAPI\r |
188 | DxePcdGetBool (\r |
8a43e8dd |
189 | IN UINTN TokenNumber\r |
878ddf1f |
190 | )\r |
191 | ;\r |
192 | \r |
193 | \r |
194 | UINTN\r |
195 | EFIAPI\r |
196 | DxePcdGetSize (\r |
8a43e8dd |
197 | IN UINTN TokenNumber\r |
878ddf1f |
198 | )\r |
199 | ;\r |
200 | \r |
201 | \r |
202 | UINT8\r |
203 | EFIAPI\r |
204 | DxePcdGet8Ex (\r |
205 | IN CONST EFI_GUID *Guid,\r |
8a43e8dd |
206 | IN UINTN TokenNumber\r |
878ddf1f |
207 | )\r |
208 | ;\r |
209 | \r |
210 | \r |
211 | UINT16\r |
212 | EFIAPI\r |
213 | DxePcdGet16Ex (\r |
214 | IN CONST EFI_GUID *Guid,\r |
8a43e8dd |
215 | IN UINTN TokenNumber\r |
878ddf1f |
216 | )\r |
217 | ;\r |
218 | \r |
219 | \r |
220 | UINT32\r |
221 | EFIAPI\r |
222 | DxePcdGet32Ex (\r |
223 | IN CONST EFI_GUID *Guid,\r |
8a43e8dd |
224 | IN UINTN TokenNumber\r |
878ddf1f |
225 | )\r |
226 | ;\r |
227 | \r |
228 | \r |
229 | \r |
230 | UINT64\r |
231 | EFIAPI\r |
232 | DxePcdGet64Ex (\r |
233 | IN CONST EFI_GUID *Guid,\r |
8a43e8dd |
234 | IN UINTN TokenNumber\r |
878ddf1f |
235 | )\r |
236 | ;\r |
237 | \r |
238 | \r |
239 | \r |
240 | VOID *\r |
241 | EFIAPI\r |
242 | DxePcdGetPtrEx (\r |
243 | IN CONST EFI_GUID *Guid,\r |
8a43e8dd |
244 | IN UINTN TokenNumber\r |
878ddf1f |
245 | )\r |
246 | ;\r |
247 | \r |
248 | \r |
249 | BOOLEAN\r |
250 | EFIAPI\r |
251 | DxePcdGetBoolEx (\r |
252 | IN CONST EFI_GUID *Guid,\r |
8a43e8dd |
253 | IN UINTN TokenNumber\r |
878ddf1f |
254 | )\r |
255 | ;\r |
256 | \r |
257 | \r |
258 | UINTN\r |
259 | EFIAPI\r |
260 | DxePcdGetSizeEx (\r |
261 | IN CONST EFI_GUID *Guid,\r |
8a43e8dd |
262 | IN UINTN TokenNumber\r |
878ddf1f |
263 | )\r |
264 | ;\r |
265 | \r |
266 | \r |
267 | EFI_STATUS\r |
268 | EFIAPI\r |
269 | DxePcdSet8 (\r |
8a43e8dd |
270 | IN UINTN TokenNumber,\r |
878ddf1f |
271 | IN UINT8 Value\r |
272 | )\r |
273 | ;\r |
274 | \r |
275 | \r |
276 | EFI_STATUS\r |
277 | EFIAPI\r |
278 | DxePcdSet16 (\r |
8a43e8dd |
279 | IN UINTN TokenNumber,\r |
878ddf1f |
280 | IN UINT16 Value\r |
281 | )\r |
282 | ;\r |
283 | \r |
284 | \r |
285 | EFI_STATUS\r |
286 | EFIAPI\r |
287 | DxePcdSet32 (\r |
8a43e8dd |
288 | IN UINTN TokenNumber,\r |
878ddf1f |
289 | IN UINT32 Value\r |
290 | )\r |
291 | ;\r |
292 | \r |
293 | \r |
294 | EFI_STATUS\r |
295 | EFIAPI\r |
296 | DxePcdSet64 (\r |
8a43e8dd |
297 | IN UINTN TokenNumber,\r |
878ddf1f |
298 | IN UINT64 Value\r |
299 | )\r |
300 | ;\r |
301 | \r |
302 | \r |
303 | EFI_STATUS\r |
304 | EFIAPI\r |
305 | DxePcdSetPtr (\r |
8a43e8dd |
306 | IN UINTN TokenNumber,\r |
00b7af13 |
307 | IN UINTN SizeOfBuffer,\r |
308 | IN VOID *Buffer\r |
878ddf1f |
309 | )\r |
310 | ;\r |
311 | \r |
312 | \r |
313 | EFI_STATUS\r |
314 | EFIAPI\r |
315 | DxePcdSetBool (\r |
8a43e8dd |
316 | IN UINTN TokenNumber,\r |
878ddf1f |
317 | IN BOOLEAN Value\r |
318 | )\r |
319 | ;\r |
320 | \r |
321 | \r |
322 | EFI_STATUS\r |
323 | EFIAPI\r |
324 | DxePcdSet8Ex (\r |
325 | IN CONST EFI_GUID *Guid,\r |
8a43e8dd |
326 | IN UINTN TokenNumber,\r |
878ddf1f |
327 | IN UINT8 Value\r |
328 | )\r |
329 | ;\r |
330 | \r |
331 | \r |
332 | EFI_STATUS\r |
333 | EFIAPI\r |
334 | DxePcdSet16Ex (\r |
335 | IN CONST EFI_GUID *Guid,\r |
8a43e8dd |
336 | IN UINTN TokenNumber,\r |
878ddf1f |
337 | IN UINT16 Value\r |
338 | )\r |
339 | ;\r |
340 | \r |
341 | \r |
342 | EFI_STATUS\r |
343 | EFIAPI\r |
344 | DxePcdSet32Ex (\r |
345 | IN CONST EFI_GUID *Guid,\r |
8a43e8dd |
346 | IN UINTN TokenNumber,\r |
878ddf1f |
347 | IN UINT32 Value\r |
348 | )\r |
349 | ;\r |
350 | \r |
351 | \r |
352 | EFI_STATUS\r |
353 | EFIAPI\r |
354 | DxePcdSet64Ex (\r |
355 | IN CONST EFI_GUID *Guid,\r |
8a43e8dd |
356 | IN UINTN TokenNumber,\r |
878ddf1f |
357 | IN UINT64 Value\r |
358 | )\r |
359 | ;\r |
360 | \r |
361 | \r |
362 | EFI_STATUS\r |
363 | EFIAPI\r |
364 | DxePcdSetPtrEx (\r |
00b7af13 |
365 | IN CONST EFI_GUID *Guid,\r |
8a43e8dd |
366 | IN UINTN TokenNumber,\r |
00b7af13 |
367 | IN UINTN SizeOfBuffer,\r |
368 | IN VOID *Buffer\r |
878ddf1f |
369 | )\r |
370 | ;\r |
371 | \r |
372 | \r |
373 | EFI_STATUS\r |
374 | EFIAPI\r |
375 | DxePcdSetBoolEx (\r |
4c114006 |
376 | IN CONST EFI_GUID *Guid,\r |
8a43e8dd |
377 | IN UINTN TokenNumber,\r |
878ddf1f |
378 | IN BOOLEAN Value\r |
379 | )\r |
380 | ;\r |
381 | \r |
382 | \r |
383 | \r |
384 | EFI_STATUS\r |
385 | EFIAPI\r |
4c114006 |
386 | DxeRegisterCallBackOnSet (\r |
8a43e8dd |
387 | IN UINTN TokenNumber,\r |
4c114006 |
388 | IN CONST EFI_GUID *Guid, OPTIONAL\r |
878ddf1f |
389 | IN PCD_PROTOCOL_CALLBACK CallBackFunction\r |
390 | )\r |
391 | ;\r |
392 | \r |
393 | \r |
394 | EFI_STATUS\r |
395 | EFIAPI\r |
4c114006 |
396 | DxeUnRegisterCallBackOnSet (\r |
8a43e8dd |
397 | IN UINTN TokenNumber,\r |
00b7af13 |
398 | IN CONST EFI_GUID *Guid, OPTIONAL\r |
878ddf1f |
399 | IN PCD_PROTOCOL_CALLBACK CallBackFunction\r |
400 | )\r |
401 | ;\r |
402 | \r |
403 | \r |
404 | EFI_STATUS\r |
405 | EFIAPI\r |
406 | DxePcdGetNextToken (\r |
407 | IN CONST EFI_GUID *Guid, OPTIONAL\r |
8a43e8dd |
408 | IN OUT UINTN *TokenNumber\r |
878ddf1f |
409 | )\r |
410 | ;\r |
411 | \r |
8a43e8dd |
412 | UINTN \r |
4c114006 |
413 | ExGetNextTokeNumber (\r |
414 | IN CONST EFI_GUID *Guid,\r |
8a43e8dd |
415 | IN UINTN TokenNumber,\r |
4c114006 |
416 | IN EFI_GUID *GuidTable,\r |
417 | IN UINTN SizeOfGuidTable,\r |
418 | IN DYNAMICEX_MAPPING *ExMapTable,\r |
419 | IN UINTN SizeOfExMapTable\r |
420 | )\r |
421 | ;\r |
422 | \r |
52e1905d |
423 | extern EFI_GUID gPcdDataBaseHobGuid;\r |
878ddf1f |
424 | \r |
4c114006 |
425 | extern PCD_DATABASE * mPcdDatabase;\r |
878ddf1f |
426 | \r |
52e1905d |
427 | extern DXE_PCD_DATABASE_INIT gDXEPcdDbInit;\r |
878ddf1f |
428 | \r |
429 | #endif\r |