]> git.proxmox.com Git - mirror_edk2.git/blame - EdkModulePkg/Universal/PCD/Pei/Service.h
1) Add in support to traverse taken space
[mirror_edk2.git] / EdkModulePkg / Universal / PCD / Pei / Service.h
CommitLineData
878ddf1f 1/** @file\r
2Private functions used by PCD PEIM.\r
3\r
4Copyright (c) 2006, Intel Corporation \r
5All rights reserved. This program and the accompanying materials \r
6are licensed and made available under the terms and conditions of the BSD License \r
7which accompanies this distribution. The full text of the license may be found at \r
8http://opensource.org/licenses/bsd-license.php \r
9 \r
10THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
11WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
12\r
13\r
14Module Name: Service.h\r
15\r
16**/\r
17\r
18#ifndef _SERVICE_H\r
19#define _SERVICE_H\r
20\r
4acf8ce7 21//\r
22// Please make sure the PCD Serivce PEIM Version is consistent with\r
23// the version of PCD Database generation tool\r
24//\r
58f1099f 25#define PCD_PEI_SERVICE_DRIVER_VERSION 2\r
4acf8ce7 26\r
27//\r
28// PCD_PEI_DATABASE_GENTOOL_VERSION is defined in Autogen.h\r
29// and generated by PCD Database generation tool.\r
30//\r
31#if (PCD_PEI_SERVICE_PEIM_VERSION != PCD_PEI_DATABASE_GENTOOL_VERSION)\r
32 #error "Please make sure the version of PCD Service PEIM and PCD PEI Database Generation Tool matches"\r
33#endif\r
34\r
878ddf1f 35/* Internal Function definitions */\r
36\r
52e1905d 37PEI_PCD_DATABASE *\r
38GetPcdDatabase (\r
39 VOID\r
40 )\r
41;\r
878ddf1f 42\r
43EFI_STATUS\r
52e1905d 44SetWorker (\r
8a43e8dd 45 IN UINTN TokenNumber,\r
0653eb89 46 IN VOID *Data,\r
47 IN UINTN Size,\r
48 IN BOOLEAN PtrType\r
52e1905d 49 )\r
50;\r
878ddf1f 51\r
52e1905d 52EFI_STATUS\r
53ExSetWorker (\r
8a43e8dd 54 IN UINTN ExTokenNumber,\r
52e1905d 55 IN CONST EFI_GUID *Guid,\r
0653eb89 56 IN VOID *Data,\r
57 IN UINTN Size,\r
58 IN BOOLEAN PtrType\r
52e1905d 59 )\r
60;\r
61\r
62VOID *\r
63GetWorker (\r
8a43e8dd 64 IN UINTN TokenNumber,\r
0653eb89 65 IN UINTN GetSize\r
52e1905d 66 )\r
67;\r
68\r
69VOID *\r
70ExGetWorker (\r
71 IN CONST EFI_GUID *Guid,\r
8a43e8dd 72 IN UINTN ExTokenNumber,\r
52e1905d 73 IN UINTN GetSize\r
74 )\r
75;\r
76\r
77typedef struct {\r
78 UINTN TokenNumber;\r
79 UINTN Size;\r
80 UINT32 LocalTokenNumberAlias;\r
81} EX_PCD_ENTRY_ATTRIBUTE;\r
82\r
9d6d8b24 83\r
8a43e8dd 84UINTN \r
9d6d8b24 85GetExPcdTokenNumber (\r
52e1905d 86 IN CONST EFI_GUID *Guid,\r
8a43e8dd 87 IN UINTN ExTokenNumber\r
52e1905d 88 )\r
89;\r
878ddf1f 90\r
0653eb89 91\r
92\r
93\r
878ddf1f 94EFI_STATUS\r
95PeiRegisterCallBackWorker (\r
8a43e8dd 96 IN UINTN TokenNumber,\r
00b7af13 97 IN CONST GUID *Guid, OPTIONAL\r
878ddf1f 98 IN PCD_PPI_CALLBACK CallBackFunction,\r
00b7af13 99 IN BOOLEAN Register\r
878ddf1f 100);\r
101\r
0653eb89 102\r
103\r
104\r
878ddf1f 105VOID\r
106BuildPcdDatabase (\r
52e1905d 107 VOID\r
878ddf1f 108 )\r
109;\r
110\r
111\r
878ddf1f 112//\r
113// PPI Interface Implementation Declaration.\r
114//\r
00b7af13 115VOID\r
878ddf1f 116EFIAPI\r
117PeiPcdSetSku (\r
8a43e8dd 118 IN UINTN SkuId\r
878ddf1f 119 )\r
120;\r
121\r
122\r
123UINT8\r
124EFIAPI\r
125PeiPcdGet8 (\r
8a43e8dd 126 IN UINTN TokenNumber\r
878ddf1f 127 )\r
128;\r
129\r
130\r
131UINT16\r
132EFIAPI\r
133PeiPcdGet16 (\r
8a43e8dd 134 IN UINTN TokenNumber\r
878ddf1f 135 )\r
136;\r
137\r
138\r
139UINT32\r
140EFIAPI\r
141PeiPcdGet32 (\r
8a43e8dd 142 IN UINTN TokenNumber\r
878ddf1f 143 )\r
144;\r
145\r
146\r
147UINT64\r
148EFIAPI\r
149PeiPcdGet64 (\r
8a43e8dd 150 IN UINTN TokenNumber\r
878ddf1f 151 )\r
152;\r
153\r
154\r
155VOID *\r
156EFIAPI\r
157PeiPcdGetPtr (\r
8a43e8dd 158 IN UINTN TokenNumber\r
878ddf1f 159 )\r
160;\r
161\r
162\r
163BOOLEAN\r
164EFIAPI\r
165PeiPcdGetBool (\r
8a43e8dd 166 IN UINTN TokenNumber\r
878ddf1f 167 )\r
168;\r
169\r
170\r
171UINTN\r
172EFIAPI\r
173PeiPcdGetSize (\r
8a43e8dd 174 IN UINTN TokenNumber\r
878ddf1f 175 )\r
176;\r
177\r
178\r
179UINT8\r
180EFIAPI\r
181PeiPcdGet8Ex (\r
00b7af13 182 IN CONST EFI_GUID *Guid,\r
8a43e8dd 183 IN UINTN TokenNumber\r
878ddf1f 184 )\r
185;\r
186\r
187\r
188UINT16\r
189EFIAPI\r
190PeiPcdGet16Ex (\r
00b7af13 191 IN CONST EFI_GUID *Guid,\r
8a43e8dd 192 IN UINTN TokenNumber\r
878ddf1f 193 )\r
194;\r
195\r
196UINT32\r
197EFIAPI\r
198PeiPcdGet32Ex (\r
00b7af13 199 IN CONST EFI_GUID *Guid,\r
8a43e8dd 200 IN UINTN TokenNumber\r
878ddf1f 201 )\r
202;\r
203\r
204\r
205UINT64\r
206EFIAPI\r
207PeiPcdGet64Ex (\r
00b7af13 208 IN CONST EFI_GUID *Guid,\r
8a43e8dd 209 IN UINTN TokenNumber\r
878ddf1f 210 )\r
211;\r
212\r
213\r
214VOID *\r
215EFIAPI\r
216PeiPcdGetPtrEx (\r
00b7af13 217 IN CONST EFI_GUID *Guid,\r
8a43e8dd 218 IN UINTN TokenNumber\r
878ddf1f 219 )\r
220;\r
221\r
222\r
223BOOLEAN\r
224EFIAPI\r
225PeiPcdGetBoolEx (\r
00b7af13 226 IN CONST EFI_GUID *Guid,\r
8a43e8dd 227 IN UINTN TokenNumber\r
878ddf1f 228 )\r
229;\r
230\r
231\r
232UINTN\r
233EFIAPI\r
234PeiPcdGetSizeEx (\r
00b7af13 235 IN CONST EFI_GUID *Guid,\r
8a43e8dd 236 IN UINTN TokenNumber\r
878ddf1f 237 )\r
238;\r
239\r
240\r
241EFI_STATUS\r
242EFIAPI\r
243PeiPcdSet8 (\r
8a43e8dd 244 IN UINTN TokenNumber,\r
878ddf1f 245 IN UINT8 Value\r
246 )\r
247;\r
248\r
249\r
250EFI_STATUS\r
251EFIAPI\r
252PeiPcdSet16 (\r
8a43e8dd 253 IN UINTN TokenNumber,\r
878ddf1f 254 IN UINT16 Value\r
255 )\r
256;\r
257\r
258\r
259EFI_STATUS\r
260EFIAPI\r
261PeiPcdSet32 (\r
8a43e8dd 262 IN UINTN TokenNumber,\r
878ddf1f 263 IN UINT32 Value\r
264 )\r
265;\r
266\r
267\r
268EFI_STATUS\r
269EFIAPI\r
270PeiPcdSet64 (\r
8a43e8dd 271 IN UINTN TokenNumber,\r
878ddf1f 272 IN UINT64 Value\r
273 )\r
274;\r
275\r
276EFI_STATUS\r
277EFIAPI\r
278PeiPcdSetPtr (\r
8a43e8dd 279 IN UINTN TokenNumber,\r
00b7af13 280 IN UINTN SizeOfBuffer,\r
281 IN VOID *Buffer\r
878ddf1f 282 )\r
283;\r
284\r
285\r
286EFI_STATUS\r
287EFIAPI\r
288PeiPcdSetBool (\r
8a43e8dd 289 IN UINTN TokenNumber,\r
878ddf1f 290 IN BOOLEAN Value\r
291 )\r
292;\r
293\r
294\r
295EFI_STATUS\r
296EFIAPI\r
297PeiPcdSet8Ex (\r
00b7af13 298 IN CONST EFI_GUID *Guid,\r
8a43e8dd 299 IN UINTN TokenNumber,\r
878ddf1f 300 IN UINT8 Value\r
301 )\r
302;\r
303\r
304EFI_STATUS\r
305EFIAPI\r
306PeiPcdSet16Ex (\r
00b7af13 307 IN CONST EFI_GUID *Guid,\r
8a43e8dd 308 IN UINTN TokenNumber,\r
878ddf1f 309 IN UINT16 Value\r
310 )\r
311;\r
312\r
313\r
314EFI_STATUS\r
315EFIAPI\r
316PeiPcdSet32Ex (\r
00b7af13 317 IN CONST EFI_GUID *Guid,\r
8a43e8dd 318 IN UINTN TokenNumber,\r
878ddf1f 319 IN UINT32 Value\r
320 )\r
321;\r
322\r
323\r
324EFI_STATUS\r
325EFIAPI\r
326PeiPcdSet64Ex (\r
00b7af13 327 IN CONST EFI_GUID *Guid,\r
8a43e8dd 328 IN UINTN TokenNumber,\r
878ddf1f 329 IN UINT64 Value\r
330 )\r
331;\r
332\r
333\r
334EFI_STATUS\r
335EFIAPI\r
336PeiPcdSetPtrEx (\r
00b7af13 337 IN CONST EFI_GUID *Guid,\r
8a43e8dd 338 IN UINTN TokenNumber,\r
00b7af13 339 IN UINTN SizeOfBuffer,\r
340 IN VOID *Buffer\r
878ddf1f 341 )\r
342;\r
343\r
344\r
345EFI_STATUS\r
346EFIAPI\r
347PeiPcdSetBoolEx (\r
00b7af13 348 IN CONST EFI_GUID *Guid,\r
8a43e8dd 349 IN UINTN TokenNumber,\r
878ddf1f 350 IN BOOLEAN Value\r
351 )\r
352;\r
353\r
354\r
355\r
356EFI_STATUS\r
357EFIAPI\r
4c114006 358PeiRegisterCallBackOnSet (\r
8a43e8dd 359 IN UINTN TokenNumber,\r
00b7af13 360 IN CONST EFI_GUID *Guid, OPTIONAL\r
361 IN PCD_PPI_CALLBACK CallBackFunction\r
878ddf1f 362 )\r
363;\r
364\r
365\r
366EFI_STATUS\r
367EFIAPI\r
368PcdUnRegisterCallBackOnSet (\r
8a43e8dd 369 IN UINTN TokenNumber,\r
00b7af13 370 IN CONST EFI_GUID *Guid, OPTIONAL\r
371 IN PCD_PPI_CALLBACK CallBackFunction\r
878ddf1f 372 )\r
373;\r
374\r
375\r
376EFI_STATUS\r
377EFIAPI\r
378PeiPcdGetNextToken (\r
00b7af13 379 IN CONST EFI_GUID *Guid, OPTIONAL\r
8a43e8dd 380 IN OUT UINTN *TokenNumber\r
878ddf1f 381 )\r
382;\r
52e1905d 383\r
4276d5da 384\r
385EFI_STATUS\r
386EFIAPI\r
387PeiPcdGetNextTokenSpace (\r
388 IN CONST EFI_GUID **Guid\r
389 )\r
390;\r
391\r
52e1905d 392extern EFI_GUID gPcdDataBaseHobGuid;\r
393\r
394extern EFI_GUID gPcdPeiCallbackFnTableHobGuid;\r
395\r
396extern PEI_PCD_DATABASE_INIT gPEIPcdDbInit;\r
397\r
878ddf1f 398#endif\r