Add in support for GetNextTokenNumber API.
authorqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 29 May 2006 10:42:13 +0000 (10:42 +0000)
committerqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 29 May 2006 10:42:13 +0000 (10:42 +0000)
Use PCD_TOKEN_NUMBER as type for parameter of internal APIs.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@312 6f19259b-4bc3-4df7-8a09-765794883524

EdkModulePkg/Universal/PCD/Dxe/Service.c
EdkModulePkg/Universal/PCD/Dxe/Service.h
EdkModulePkg/Universal/PCD/Pei/Pcd.c
EdkModulePkg/Universal/PCD/Pei/Service.c
EdkModulePkg/Universal/PCD/Pei/Service.h
EdkModulePkg/Universal/PCD/Test/PcdTest.c

index ebef595..53d9621 100644 (file)
@@ -444,10 +444,10 @@ InvokeCallbackOnSet (
 \r
 EFI_STATUS\r
 SetWorker (\r
-  UINTN         TokenNumber,\r
-  VOID          *Data,\r
-  UINTN         Size,\r
-  BOOLEAN       PtrType\r
+  PCD_TOKEN_NUMBER        TokenNumber,\r
+  VOID                    *Data,\r
+  UINTN                   Size,\r
+  BOOLEAN                 PtrType\r
   )\r
 {\r
   UINT32              *LocalTokenNumberTable;\r
@@ -467,11 +467,11 @@ SetWorker (
   LocalTokenNumberTable  = IsPeiDb ? mPcdDatabase->PeiDb.Init.LocalTokenNumberTable : \r
                                      mPcdDatabase->DxeDb.Init.LocalTokenNumberTable;\r
 \r
+  InvokeCallbackOnSet (0, NULL, TokenNumber, Data, Size);\r
+\r
   TokenNumber = IsPeiDb ? TokenNumber\r
                         : TokenNumber - PEI_LOCAL_TOKEN_NUMBER;\r
   \r
-  InvokeCallbackOnSet (0, NULL, TokenNumber, Data, Size);\r
-\r
   return SetWorkerByLocalTokenNumber (LocalTokenNumberTable[TokenNumber], Data, Size, PtrType, IsPeiDb);\r
 \r
 }\r
@@ -505,7 +505,7 @@ ExGetWorker (
 \r
 EFI_STATUS\r
 ExSetWorker (\r
-  IN UINT32               ExTokenNumber,\r
+  IN PCD_TOKEN_NUMBER     ExTokenNumber,\r
   IN CONST EFI_GUID       *Guid,\r
   VOID                    *Data,\r
   UINTN                   SetSize,\r
@@ -683,7 +683,7 @@ SetHiiVariable (
 VOID\r
 GetExPcdTokenAttributes (\r
   IN CONST EFI_GUID             *Guid,\r
-  IN UINT32                     ExTokenNumber,\r
+  IN PCD_TOKEN_NUMBER           ExTokenNumber,\r
   OUT EX_PCD_ENTRY_ATTRIBUTE    *ExAttr\r
   )\r
 {\r
@@ -721,7 +721,7 @@ GetExPcdTokenAttributes (
 \r
         ExAttr->IsPeiDb               = FALSE;\r
         ExAttr->Size                  = SizeTable[i + DXE_NEX_TOKEN_NUMBER];\r
-        ExAttr->TokenNumber           = i + DXE_NEX_TOKEN_NUMBER;\r
+        ExAttr->TokenNumber           = i + PEI_LOCAL_TOKEN_NUMBER;\r
         ExAttr->LocalTokenNumberAlias = ExMap[i].LocalTokenNumber;\r
         return;\r
 \r
index d33a891..ec51ebb 100644 (file)
@@ -46,16 +46,16 @@ typedef struct {
 \r
 EFI_STATUS\r
 SetWorker (\r
-  UINTN         TokenNumber,\r
-  VOID          *Data,\r
-  UINTN         Size,\r
-  BOOLEAN       PtrType\r
+  IN PCD_TOKEN_NUMBER          TokenNumber,\r
+  IN VOID                      *Data,\r
+  IN UINTN                     Size,\r
+  IN BOOLEAN                   PtrType\r
   )\r
 ;\r
 \r
 EFI_STATUS\r
 ExSetWorker (\r
-  IN UINT32               ExTokenNumber,\r
+  IN PCD_TOKEN_NUMBER     ExTokenNumber,\r
   IN CONST EFI_GUID       *Guid,\r
   VOID                    *Data,\r
   UINTN                   Size,\r
@@ -66,14 +66,14 @@ ExSetWorker (
 \r
 VOID *\r
 GetWorker (\r
-  UINTN  TokenNumber\r
+  PCD_TOKEN_NUMBER  TokenNumber\r
   )\r
 ;\r
 \r
 VOID *\r
 ExGetWorker (\r
   IN CONST EFI_GUID         *Guid,\r
-  IN UINTN                  ExTokenNumber,\r
+  IN PCD_TOKEN_NUMBER       ExTokenNumber,\r
   IN UINTN                  GetSize\r
   ) \r
 ;\r
@@ -90,21 +90,21 @@ EFI_STATUS
 GetHiiVariable (\r
   IN  EFI_GUID      *VariableGuid,\r
   IN  UINT16        *VariableName,\r
-  OUT VOID          ** VariableData,\r
+  OUT VOID          **VariableData,\r
   OUT UINTN         *VariableSize\r
   )\r
 ;\r
 \r
 EFI_STATUS\r
 DxeRegisterCallBackWorker (\r
-  IN  UINTN                   TokenNumber,\r
+  IN  PCD_TOKEN_NUMBER        TokenNumber,\r
   IN  CONST EFI_GUID          *Guid, OPTIONAL\r
   IN  PCD_PROTOCOL_CALLBACK   CallBackFunction\r
 );\r
 \r
 EFI_STATUS\r
 DxeUnRegisterCallBackWorker (\r
-  IN  UINTN                   TokenNumber,\r
+  IN  PCD_TOKEN_NUMBER        TokenNumber,\r
   IN  CONST EFI_GUID          *Guid, OPTIONAL\r
   IN  PCD_PROTOCOL_CALLBACK   CallBackFunction\r
 );\r
@@ -125,7 +125,7 @@ typedef struct {
 VOID\r
 GetExPcdTokenAttributes (\r
   IN CONST EFI_GUID             *Guid,\r
-  IN UINT32                     ExTokenNumber,\r
+  IN PCD_TOKEN_NUMBER           ExTokenNumber,\r
   OUT EX_PCD_ENTRY_ATTRIBUTE    *ExAttr\r
   )\r
 ;\r
index 031259b..f084475 100644 (file)
@@ -500,13 +500,13 @@ PeiPcdGetNextToken (
     (*TokenNumber)++;\r
 \r
     if (*TokenNumber >= PEI_NEX_TOKEN_NUMBER) {\r
-      *TokenNumber = 0;\r
+      *TokenNumber = PCD_INVALID_TOKEN_NUMBER;\r
     }\r
     \r
   } else {\r
 \r
     if (PEI_EXMAP_TABLE_EMPTY) {\r
-      *TokenNumber = (UINTN) PCD_INVALID_TOKEN_NUMBER;\r
+      *TokenNumber = PCD_INVALID_TOKEN_NUMBER;\r
       return EFI_NOT_FOUND;\r
     }\r
     \r
index 30595e1..e280dd6 100644 (file)
@@ -62,10 +62,12 @@ PeiRegisterCallBackWorker (
   ASSERT (GuidHob != NULL);\r
   \r
   CallbackTable = GET_GUID_HOB_DATA (GuidHob);\r
+  CallbackTable = CallbackTable + (TokenNumber * FixedPcdGet32(PcdMaxPeiPcdCallBackNumberPerPcdEntry));\r
 \r
   Compare = Register? NULL: CallBackFunction;\r
   Assign  = Register? CallBackFunction: NULL;\r
 \r
+\r
   for (Idx = 0; Idx < FixedPcdGet32(PcdMaxPeiPcdCallBackNumberPerPcdEntry); Idx++) {\r
     if (CallbackTable[Idx] == Compare) {\r
       CallbackTable[Idx] = Assign;\r
index 611427b..b0f0668 100644 (file)
@@ -42,43 +42,43 @@ GetPcdDatabase (
 \r
 EFI_STATUS\r
 SetWorker (\r
-  IN UINTN         TokenNumber,\r
-  IN VOID          *Data,\r
-  IN UINTN         Size,\r
-  IN BOOLEAN       PtrType\r
+  IN PCD_TOKEN_NUMBER   TokenNumber,\r
+  IN VOID               *Data,\r
+  IN UINTN              Size,\r
+  IN BOOLEAN            PtrType\r
   )\r
 ;\r
 \r
 EFI_STATUS\r
 SetWorkerByLocalTokenNumber (\r
-  UINT32        LocalTokenNumber,\r
-  VOID          *Data,\r
-  UINTN         Size,\r
-  BOOLEAN       PtrType\r
+  IN UINT32        LocalTokenNumber,\r
+  IN VOID          *Data,\r
+  IN UINTN         Size,\r
+  IN BOOLEAN       PtrType\r
   )\r
 ;\r
 \r
 EFI_STATUS\r
 ExSetWorker (\r
-  IN UINT32               ExTokenNumber,\r
+  IN PCD_TOKEN_NUMBER     ExTokenNumber,\r
   IN CONST EFI_GUID       *Guid,\r
-  VOID                    *Data,\r
-  UINTN                   Size,\r
-  BOOLEAN                 PtrType\r
+  IN VOID                 *Data,\r
+  IN UINTN                Size,\r
+  IN BOOLEAN              PtrType\r
   )\r
 ;\r
 \r
 VOID *\r
 GetWorker (\r
-  UINTN     TokenNumber,\r
-  UINTN     GetSize\r
+  IN PCD_TOKEN_NUMBER     TokenNumber,\r
+  IN UINTN                GetSize\r
   )\r
 ;\r
 \r
 VOID *\r
 ExGetWorker (\r
   IN CONST EFI_GUID   *Guid,\r
-  IN UINT32           ExTokenNumber,\r
+  IN PCD_TOKEN_NUMBER ExTokenNumber,\r
   IN UINTN            GetSize\r
   )\r
 ;\r
@@ -92,19 +92,25 @@ typedef struct {
 VOID\r
 GetExPcdTokenAttributes (\r
   IN CONST EFI_GUID             *Guid,\r
-  IN UINT32                     ExTokenNumber,\r
+  IN PCD_TOKEN_NUMBER           ExTokenNumber,\r
   OUT EX_PCD_ENTRY_ATTRIBUTE    *ExAttr\r
   )\r
 ;\r
 \r
+\r
+\r
+\r
 EFI_STATUS\r
 PeiRegisterCallBackWorker (\r
-  IN  UINTN              TokenNumber,\r
+  IN  PCD_TOKEN_NUMBER   TokenNumber,\r
   IN  CONST GUID         *Guid, OPTIONAL\r
   IN  PCD_PPI_CALLBACK   CallBackFunction,\r
   IN  BOOLEAN            Register\r
 );\r
 \r
+\r
+\r
+\r
 VOID\r
 BuildPcdDatabase (\r
   VOID\r
index 21fa67a..6f2a5f1 100644 (file)
@@ -23,9 +23,10 @@ CONST GUID Guid1  = GUID1;
 EFI_STATUS\r
 EFIAPI\r
 OnsetCallback1 (\r
-  IN  UINT32    CallBackToken,\r
-  IN  VOID      *TokenData,\r
-  IN  UINTN     TokenDataSize\r
+  IN  CONST EFI_GUID  *Guid,\r
+  IN  UINT32          CallBackToken,\r
+  IN  VOID            *TokenData,\r
+  IN  UINTN           TokenDataSize\r
   )\r
 {\r
   DebugPrint (0x80000000, "In CallbackOnSet %x %d\n", * ((UINT32 *)TokenData), TokenDataSize);    \r
@@ -42,6 +43,10 @@ DoTest(
   UINT16    u16;\r
   UINT32    u32;\r
   UINT64    u64;\r
+  PCD_TOKEN_NUMBER Token;\r
+  \r
+\r
+  LibPcdCallbackOnSet (NULL, PcdToken(PcdTestDynamicUint32), OnsetCallback1);\r
   \r
   u32 = 0xafafafaf;\r
   PcdSet32(PcdTestDynamicUint32, u32);\r
@@ -57,6 +62,15 @@ DoTest(
   ASSERT (u16 == 0x1234);\r
   ASSERT (u64 == PcdGet64(PcdTestDynamicUint64));\r
   ASSERT (u32 == PcdGet32(PcdTestDynamicUint32));\r
+\r
+\r
+  Token = PCD_INVALID_TOKEN_NUMBER;\r
+\r
+  do {\r
+    Token = LibPcdGetNextToken (NULL, Token);\r
+    DebugPrint (EFI_D_ERROR, "Next Token Number is %d\n", Token);\r
+  } while (Token != PCD_INVALID_TOKEN_NUMBER);\r
+  \r
   \r
   return;\r
 }\r