DxePcdSetPtrEx,\r
DxePcdSetBoolEx,\r
\r
- PcdRegisterCallBackOnSet,\r
- PcdUnRegisterCallBackOnSet,\r
+ DxeRegisterCallBackOnSet,\r
+ DxeUnRegisterCallBackOnSet,\r
DxePcdGetNextToken\r
};\r
\r
IN SKU_ID SkuId\r
)\r
{\r
- gPcdDatabase->PeiDb.Init.SystemSkuId = SkuId;\r
+ mPcdDatabase->PeiDb.Init.SystemSkuId = SkuId;\r
\r
return;\r
}\r
UINT8\r
EFIAPI\r
DxePcdGet8 (\r
- IN UINTN TokenNumber\r
+ IN PCD_TOKEN_NUMBER TokenNumber\r
)\r
{\r
- ASSERT (sizeof (UINT8) == DxePcdGetSize (TokenNumber));\r
- \r
- return *((UINT8 *) GetWorker (TokenNumber));\r
+ return *((UINT8 *) GetWorker (TokenNumber, sizeof (UINT8)));\r
}\r
\r
\r
UINT16\r
EFIAPI\r
DxePcdGet16 (\r
- IN UINTN TokenNumber\r
+ IN PCD_TOKEN_NUMBER TokenNumber\r
)\r
{\r
- ASSERT (sizeof (UINT16) == DxePcdGetSize (TokenNumber));\r
- \r
- return ReadUnaligned16 (GetWorker (TokenNumber));\r
+ return ReadUnaligned16 (GetWorker (TokenNumber, sizeof (UINT16)));\r
}\r
\r
\r
UINT32\r
EFIAPI\r
DxePcdGet32 (\r
- IN UINTN TokenNumber\r
+ IN PCD_TOKEN_NUMBER TokenNumber\r
)\r
{\r
- ASSERT (sizeof (UINT32) == DxePcdGetSize (TokenNumber));\r
- \r
- return ReadUnaligned32 (GetWorker (TokenNumber));\r
+ return ReadUnaligned32 (GetWorker (TokenNumber, sizeof (UINT32)));\r
}\r
\r
\r
UINT64\r
EFIAPI\r
DxePcdGet64 (\r
- IN UINTN TokenNumber\r
+ IN PCD_TOKEN_NUMBER TokenNumber\r
)\r
{\r
- ASSERT (sizeof (UINT64) == DxePcdGetSize (TokenNumber));\r
- \r
- return ReadUnaligned64(GetWorker (TokenNumber));\r
+ return ReadUnaligned64(GetWorker (TokenNumber, sizeof (UINT64)));\r
}\r
\r
\r
VOID *\r
EFIAPI\r
DxePcdGetPtr (\r
- IN UINTN TokenNumber\r
+ IN PCD_TOKEN_NUMBER TokenNumber\r
)\r
{\r
- return GetWorker (TokenNumber);\r
+ return GetWorker (TokenNumber, 0);\r
}\r
\r
\r
BOOLEAN\r
EFIAPI\r
DxePcdGetBool (\r
- IN UINTN TokenNumber\r
+ IN PCD_TOKEN_NUMBER TokenNumber\r
)\r
{\r
- ASSERT (sizeof (BOOLEAN) == DxePcdGetSize (TokenNumber));\r
- \r
- return *((BOOLEAN *) GetWorker (TokenNumber));\r
+ return *((BOOLEAN *) GetWorker (TokenNumber, sizeof (BOOLEAN)));\r
}\r
\r
\r
UINTN\r
EFIAPI\r
DxePcdGetSize (\r
- IN UINTN TokenNumber\r
+ IN PCD_TOKEN_NUMBER TokenNumber\r
)\r
{\r
UINT16 * SizeTable;\r
\r
- SizeTable = (TokenNumber < PEI_LOCAL_TOKEN_NUMBER) ? gPcdDatabase->PeiDb.Init.SizeTable :\r
- gPcdDatabase->DxeDb.Init.SizeTable;\r
+ SizeTable = (TokenNumber < PEI_LOCAL_TOKEN_NUMBER) ? mPcdDatabase->PeiDb.Init.SizeTable :\r
+ mPcdDatabase->DxeDb.Init.SizeTable;\r
\r
\r
TokenNumber = (TokenNumber < PEI_LOCAL_TOKEN_NUMBER) ? TokenNumber : (TokenNumber - PEI_LOCAL_TOKEN_NUMBER);\r
EFIAPI\r
DxePcdGet8Ex (\r
IN CONST EFI_GUID *Guid,\r
- IN UINTN ExTokenNumber\r
+ IN PCD_TOKEN_NUMBER ExTokenNumber\r
)\r
{\r
return *((UINT8 *) ExGetWorker (Guid, ExTokenNumber, sizeof(UINT8)));\r
EFIAPI\r
DxePcdGet16Ex (\r
IN CONST EFI_GUID *Guid,\r
- IN UINTN ExTokenNumber\r
+ IN PCD_TOKEN_NUMBER ExTokenNumber\r
)\r
{\r
- return *((UINT16 *) ExGetWorker (Guid, ExTokenNumber, sizeof(UINT16)));\r
+ return ReadUnaligned16 (ExGetWorker (Guid, ExTokenNumber, sizeof(UINT16)));\r
}\r
\r
\r
EFIAPI\r
DxePcdGet32Ex (\r
IN CONST EFI_GUID *Guid,\r
- IN UINTN ExTokenNumber\r
+ IN PCD_TOKEN_NUMBER ExTokenNumber\r
)\r
{\r
- return *((UINT32 *) ExGetWorker (Guid, ExTokenNumber, sizeof(UINT32)));\r
+ return ReadUnaligned32 (ExGetWorker (Guid, ExTokenNumber, sizeof(UINT32)));\r
}\r
\r
\r
EFIAPI\r
DxePcdGet64Ex (\r
IN CONST EFI_GUID *Guid,\r
- IN UINTN ExTokenNumber\r
+ IN PCD_TOKEN_NUMBER ExTokenNumber\r
)\r
{\r
- //\r
- // BugBug: Must be changed to ReadUnaligned64\r
- //\r
- return *((UINT64 *) ExGetWorker (Guid, ExTokenNumber, sizeof(UINT64)));\r
+ return ReadUnaligned64 (ExGetWorker (Guid, ExTokenNumber, sizeof(UINT64)));\r
}\r
\r
\r
EFIAPI\r
DxePcdGetPtrEx (\r
IN CONST EFI_GUID *Guid,\r
- IN UINTN ExTokenNumber\r
+ IN PCD_TOKEN_NUMBER ExTokenNumber\r
)\r
{\r
return ExGetWorker (Guid, ExTokenNumber, 0);\r
EFIAPI\r
DxePcdGetBoolEx (\r
IN CONST EFI_GUID *Guid,\r
- IN UINTN ExTokenNumber\r
+ IN PCD_TOKEN_NUMBER ExTokenNumber\r
)\r
{\r
return *((BOOLEAN *) ExGetWorker (Guid, ExTokenNumber, sizeof(BOOLEAN)));\r
EFIAPI\r
DxePcdGetSizeEx (\r
IN CONST EFI_GUID *Guid,\r
- IN UINTN ExTokenNumber\r
+ IN PCD_TOKEN_NUMBER ExTokenNumber\r
)\r
{\r
- EX_PCD_ENTRY_ATTRIBUTE Attr;\r
- \r
- GetExPcdTokenAttributes (Guid, ExTokenNumber, &Attr);\r
-\r
- return Attr.Size;\r
+ return DxePcdGetSize(GetExPcdTokenNumber (Guid, ExTokenNumber));\r
}\r
\r
\r
EFI_STATUS\r
EFIAPI\r
DxePcdSet8 (\r
- IN UINTN TokenNumber,\r
+ IN PCD_TOKEN_NUMBER TokenNumber,\r
IN UINT8 Value\r
)\r
{\r
EFI_STATUS\r
EFIAPI\r
DxePcdSet16 (\r
- IN UINTN TokenNumber,\r
+ IN PCD_TOKEN_NUMBER TokenNumber,\r
IN UINT16 Value\r
)\r
{\r
EFI_STATUS\r
EFIAPI\r
DxePcdSet32 (\r
- IN UINTN TokenNumber,\r
+ IN PCD_TOKEN_NUMBER TokenNumber,\r
IN UINT32 Value\r
)\r
{\r
EFI_STATUS\r
EFIAPI\r
DxePcdSet64 (\r
- IN UINTN TokenNumber,\r
+ IN PCD_TOKEN_NUMBER TokenNumber,\r
IN UINT64 Value\r
)\r
{\r
EFI_STATUS\r
EFIAPI\r
DxePcdSetPtr (\r
- IN UINTN TokenNumber,\r
+ IN PCD_TOKEN_NUMBER TokenNumber,\r
IN UINTN SizeOfBuffer,\r
IN VOID *Buffer\r
)\r
EFI_STATUS\r
EFIAPI\r
DxePcdSetBool (\r
- IN UINTN TokenNumber,\r
+ IN PCD_TOKEN_NUMBER TokenNumber,\r
IN BOOLEAN Value\r
)\r
{\r
EFI_STATUS\r
EFIAPI\r
DxePcdSet8Ex (\r
- IN CONST EFI_GUID *Guid,\r
- IN UINTN ExTokenNumber,\r
+ IN CONST EFI_GUID *Guid,\r
+ IN PCD_TOKEN_NUMBER ExTokenNumber,\r
IN UINT8 Value\r
)\r
{\r
EFI_STATUS\r
EFIAPI\r
DxePcdSet16Ex (\r
- IN CONST EFI_GUID *Guid,\r
- IN UINTN ExTokenNumber,\r
+ IN CONST EFI_GUID *Guid,\r
+ IN PCD_TOKEN_NUMBER ExTokenNumber,\r
IN UINT16 Value\r
)\r
{\r
EFI_STATUS\r
EFIAPI\r
DxePcdSet32Ex (\r
- IN CONST EFI_GUID *Guid,\r
- IN UINTN ExTokenNumber,\r
+ IN CONST EFI_GUID *Guid,\r
+ IN PCD_TOKEN_NUMBER ExTokenNumber,\r
IN UINT32 Value\r
)\r
{\r
EFI_STATUS\r
EFIAPI\r
DxePcdSet64Ex (\r
- IN CONST EFI_GUID *Guid,\r
- IN UINTN ExTokenNumber,\r
+ IN CONST EFI_GUID *Guid,\r
+ IN PCD_TOKEN_NUMBER ExTokenNumber,\r
IN UINT64 Value\r
)\r
{\r
EFIAPI\r
DxePcdSetPtrEx (\r
IN CONST EFI_GUID *Guid,\r
- IN UINTN ExTokenNumber,\r
+ IN PCD_TOKEN_NUMBER ExTokenNumber,\r
IN UINTN SizeOfBuffer,\r
IN VOID *Buffer\r
)\r
EFI_STATUS\r
EFIAPI\r
DxePcdSetBoolEx (\r
- IN CONST EFI_GUID *Guid,\r
- IN UINTN ExTokenNumber,\r
+ IN CONST EFI_GUID *Guid,\r
+ IN PCD_TOKEN_NUMBER ExTokenNumber,\r
IN BOOLEAN Value\r
)\r
{\r
\r
EFI_STATUS\r
EFIAPI\r
-PcdRegisterCallBackOnSet (\r
- IN UINTN TokenNumber,\r
- IN CONST EFI_GUID *Guid, OPTIONAL\r
+DxeRegisterCallBackOnSet (\r
+ IN PCD_TOKEN_NUMBER TokenNumber,\r
+ IN CONST EFI_GUID *Guid, OPTIONAL\r
IN PCD_PROTOCOL_CALLBACK CallBackFunction\r
)\r
{\r
- return DxeRegisterCallBackWorker (TokenNumber, Guid, CallBackFunction, TRUE);\r
+ ASSERT (CallBackFunction != NULL);\r
+ \r
+ return DxeRegisterCallBackWorker (TokenNumber, Guid, CallBackFunction);\r
}\r
\r
\r
\r
EFI_STATUS\r
EFIAPI\r
-PcdUnRegisterCallBackOnSet (\r
- IN UINTN TokenNumber,\r
- IN CONST EFI_GUID *Guid, OPTIONAL\r
+DxeUnRegisterCallBackOnSet (\r
+ IN PCD_TOKEN_NUMBER TokenNumber,\r
+ IN CONST EFI_GUID *Guid, OPTIONAL\r
IN PCD_PROTOCOL_CALLBACK CallBackFunction\r
)\r
{\r
- return DxeRegisterCallBackWorker (TokenNumber, Guid, CallBackFunction, FALSE);\r
+ ASSERT (CallBackFunction != NULL);\r
+ \r
+ return DxeRegisterCallBackWorker (TokenNumber, Guid, CallBackFunction);\r
}\r
\r
\r
EFI_STATUS\r
EFIAPI\r
DxePcdGetNextToken (\r
- IN CONST EFI_GUID *Guid, OPTIONAL\r
- IN OUT UINTN *TokenNumber\r
+ IN CONST EFI_GUID *Guid, OPTIONAL\r
+ IN OUT PCD_TOKEN_NUMBER *TokenNumber\r
)\r
{\r
- return DxeGetNextTokenWorker (TokenNumber, Guid);\r
+ PCD_TOKEN_NUMBER ExTokenNumber;\r
+ \r
+ //\r
+ // Scan the local token space\r
+ //\r
+ if (Guid == NULL) {\r
+ *TokenNumber++;\r
+ if (*TokenNumber == PCD_INVALID_TOKEN_NUMBER) {\r
+ return EFI_SUCCESS;\r
+ } else {\r
+ if (*TokenNumber >= PEI_NEX_TOKEN_NUMBER &&\r
+ *TokenNumber < PEI_LOCAL_TOKEN_NUMBER) {\r
+ //\r
+ // The first Non-Ex type Token Number for DXE PCD \r
+ // database is PEI_LOCAL_TOKEN_NUMBER\r
+ //\r
+ *TokenNumber = PEI_LOCAL_TOKEN_NUMBER;\r
+ return EFI_SUCCESS;\r
+ } else if (*TokenNumber >= DXE_NEX_TOKEN_NUMBER + PEI_LOCAL_TOKEN_NUMBER) {\r
+ *TokenNumber = PCD_INVALID_TOKEN_NUMBER;\r
+ return EFI_SUCCESS;\r
+ }\r
+ }\r
+ }\r
+\r
+ if (PEI_EXMAP_TABLE_EMPTY && PEI_EXMAP_TABLE_EMPTY) {\r
+ *TokenNumber = (UINTN) PCD_INVALID_TOKEN_NUMBER;\r
+ return EFI_NOT_FOUND;\r
+ }\r
+\r
+ ExTokenNumber = *TokenNumber;\r
+ if (!PEI_EXMAP_TABLE_EMPTY) {\r
+ ExTokenNumber = ExGetNextTokeNumber (\r
+ Guid,\r
+ ExTokenNumber,\r
+ mPcdDatabase->PeiDb.Init.GuidTable,\r
+ sizeof(mPcdDatabase->PeiDb.Init.GuidTable),\r
+ mPcdDatabase->PeiDb.Init.ExMapTable,\r
+ sizeof(mPcdDatabase->PeiDb.Init.ExMapTable)\r
+ );\r
+ }\r
+\r
+ if (!DXE_EXMAP_TABLE_EMPTY) {\r
+ ExTokenNumber = ExGetNextTokeNumber (\r
+ Guid,\r
+ ExTokenNumber,\r
+ mPcdDatabase->PeiDb.Init.GuidTable,\r
+ sizeof(mPcdDatabase->PeiDb.Init.GuidTable),\r
+ mPcdDatabase->PeiDb.Init.ExMapTable,\r
+ sizeof(mPcdDatabase->PeiDb.Init.ExMapTable)\r
+ );\r
+ }\r
+\r
+ *TokenNumber = ExTokenNumber;\r
+\r
+ return EFI_SUCCESS;\r
}\r
\r