Add in GetNextToken and Register Callback Function funtionality for DXE Driver.
[mirror_edk2.git] / EdkModulePkg / Universal / PCD / Pei / Service.h
index 647a0068e1e98dd557c456dac782053eb5a36af0..611427b578bd23f0f1aaabd19b0827ee240b3c9f 100644 (file)
@@ -18,149 +18,20 @@ Module Name: Service.h
 #ifndef _SERVICE_H\r
 #define _SERVICE_H\r
 \r
-#define USE_AUTOGEN\r
-\r
-#ifndef USE_AUTOGEN\r
-//\r
-// The following definition will be generated by build tool \r
-//\r
-\r
-//\r
-// Common definitions that is shared by PEI and DXE PCD database\r
-//\r
-#define PCD_TYPE_SHIFT        24\r
-\r
-\r
-#define PCD_TYPE_DATA         (0x00 << PCD_TYPE_SHIFT)\r
-#define PCD_TYPE_HII               (0x80 << PCD_TYPE_SHIFT)\r
-#define PCD_TYPE_VPD               (0x40 << PCD_TYPE_SHIFT)\r
-#define PCD_TYPE_SKU_ENABLED   (0x20 << PCD_TYPE_SHIFT)\r
-\r
-\r
-#define PCD_DATABASE_OFFSET_MASK (~(PCD_TYPE_HII | PCD_TYPE_VPD | PCD_TYPE_SKU_ENABLED))\r
-\r
-typedef struct  {\r
-  UINT32                ExTokenNumber;\r
-  UINT32                LocalTokenNumber;         // PCD Number of this particular platform build\r
-  UINT16                ExGuidIndex;              // Index of GuidTable\r
-} DYNAMICEX_MAPPING;\r
-\r
-\r
-typedef struct {\r
-  UINT32  SkuDataStartOffset; //We have to use offsetof MACRO as we don't know padding done by compiler\r
-  UINT32  SkuIdTableOffset;   //Offset from the PCD_DB\r
-} SKU_HEAD;\r
-\r
-\r
-typedef struct {\r
-  UINT16  GuidTableIndex;   // Offset in Guid Table in units of GUID.\r
-  UINT16  StringIndex;      // Offset in String Table in units of UINT16.\r
-  UINT16  Offset;           // Offset in Variable\r
-} VARIABLE_HEAD  ;\r
-\r
-\r
-typedef  struct {\r
-  UINT32  Offset;\r
-} VPD_HEAD;\r
-\r
-typedef struct {\r
-  UINT32 LocalTokenNumber;\r
-  UINT16 TokenNumber;\r
-  UINT16 Size;\r
-} SIZEINFO;\r
-\r
-#define offsetof(s,m)             (UINT32)&(((s *)0)->m)\r
-\r
-\r
-\r
-\r
-\r
 //\r
-// C Structure generate for PEI PCD Database\r
+// Please make sure the PCD Serivce PEIM Version is consistent with\r
+// the version of PCD Database generation tool\r
 //\r
-#define PEI_EXMAPPING_TABLE_SIZE  1\r
-#define PEI_GUID_TABLE_SIZE         1\r
-#define PEI_LOCAL_TOKEN_NUMBER            1\r
-#define PEI_STRING_TABLE_SIZE        2\r
-#define PEI_SKUID_TABLE_SIZE         3\r
-\r
-\r
-#define PEI_DATABASE_EMPTRY          FALSE\r
-#define PEI_EXMAP_TABLE_EMPTY        FALSE\r
-#define PEI_GUID_TABLE_EMPTY         FALSE\r
-#define PEI_STRINGTABLE_EMPTY        FALSE\r
-#define PEI_SIZETABLE_EMPTY          FALSE\r
-#define PEI_SKUID_TABLE_EMPTY        FALSE\r
-\r
-\r
-typedef struct {\r
-\r
-  DYNAMICEX_MAPPING ExMapTable[PEI_EXMAPPING_TABLE_SIZE];\r
-  EFI_GUID          GuidTable[PEI_GUID_TABLE_SIZE];\r
-\r
-  UINT32            LocalTokenNumberTable[PEI_LOCAL_TOKEN_NUMBER];\r
-\r
-\r
-  UINT16            StringTable[PEI_STRING_TABLE_SIZE];\r
-  UINT16            SizeTable[PEI_LOCAL_TOKEN_NUMBER];\r
-\r
-  UINT8             SkuIdTable[PEI_SKUID_TABLE_SIZE];\r
-  \r
-  SKU_ID            SystemSkuId;\r
-\r
-} PEI_PCD_DATABASE_INIT;\r
-\r
-typedef struct {\r
-  UINT8 Dummy;\r
-} PEI_PCD_DATABASE_UNINIT;\r
-\r
-#define PEI_PCD_DB_INIT_VALUE \\r
-    /* ExMapTable */ \\r
-  { \\r
-    { /* ExTokenNumber */ 0x00000001, /* LocalTokenNumberIndex */ 0, /* ExGuidIndex */ 0} \\r
-  }, \\r
-  \\r
-  /* GuidTable */ \\r
-  { \\r
-    { 0xBB25CF6F, 0xF1D4, 0x11D2, {0x9A, 0x0C, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0xFD }} \\r
-  }, \\r
-  \\r
-  /* LocalTokenNumberTable */ \\r
-  { \\r
-    0 \\r
-  }, \\r
-  \\r
-  /* StringTable */ \\r
-  { \\r
-    L"\0" \\r
-  }, \\r
-  \\r
-  /* SizeTable */ \\r
-  { \\r
-    4 \\r
-  }, \\r
-  \\r
-  /* SkuIdTable */ \\r
-  { \\r
-    /*MaxSku*/ 2, /*SkuId*/ 100, /*SkuId*/200   \\r
-  },\\r
-  \\r
-  /* SystemSkuId */ \\r
-  0 \\r
-\r
+#define PCD_PEI_SERVICE_DRIVER_VERSION      1\r
 \r
 //\r
-// End of Autogen Code\r
+// PCD_PEI_DATABASE_GENTOOL_VERSION is defined in Autogen.h\r
+// and generated by PCD Database generation tool.\r
 //\r
+#if (PCD_PEI_SERVICE_PEIM_VERSION != PCD_PEI_DATABASE_GENTOOL_VERSION)\r
+  #error "Please make sure the version of PCD Service PEIM and PCD PEI Database Generation Tool matches"\r
 #endif\r
 \r
-/*\r
-typedef struct {\r
-  PEI_PCD_DATABASE_INIT Init;\r
-  PEI_PCD_DATABASE_UNINIT Uninit;\r
-} PEI_PCD_DATABASE;\r
-*/\r
-\r
 /* Internal Function definitions */\r
 \r
 PEI_PCD_DATABASE *\r
@@ -228,10 +99,10 @@ GetExPcdTokenAttributes (
 \r
 EFI_STATUS\r
 PeiRegisterCallBackWorker (\r
-  IN  UINTN        TokenNumber,\r
-  IN  CONST GUID              *Guid, OPTIONAL\r
+  IN  UINTN              TokenNumber,\r
+  IN  CONST GUID         *Guid, OPTIONAL\r
   IN  PCD_PPI_CALLBACK   CallBackFunction,\r
-  IN  BOOLEAN                 Register\r
+  IN  BOOLEAN            Register\r
 );\r
 \r
 VOID\r
@@ -241,15 +112,13 @@ BuildPcdDatabase (
 ;\r
 \r
 \r
-extern EFI_GUID gPcdImageFileGuid;\r
-\r
 //\r
 // PPI Interface Implementation Declaration.\r
 //\r
-EFI_STATUS\r
+VOID\r
 EFIAPI\r
 PeiPcdSetSku (\r
-  IN  UINTN                  SkuId\r
+  IN  SKU_ID                  SkuId\r
   )\r
 ;\r
 \r
@@ -257,7 +126,7 @@ PeiPcdSetSku (
 UINT8\r
 EFIAPI\r
 PeiPcdGet8 (\r
-  IN UINTN  TokenNumber\r
+  IN PCD_TOKEN_NUMBER  TokenNumber\r
   )\r
 ;\r
 \r
@@ -265,7 +134,7 @@ PeiPcdGet8 (
 UINT16\r
 EFIAPI\r
 PeiPcdGet16 (\r
-  IN UINTN  TokenNumber\r
+  IN PCD_TOKEN_NUMBER  TokenNumber\r
   )\r
 ;\r
 \r
@@ -273,7 +142,7 @@ PeiPcdGet16 (
 UINT32\r
 EFIAPI\r
 PeiPcdGet32 (\r
-  IN UINTN  TokenNumber\r
+  IN PCD_TOKEN_NUMBER  TokenNumber\r
   )\r
 ;\r
 \r
@@ -281,7 +150,7 @@ PeiPcdGet32 (
 UINT64\r
 EFIAPI\r
 PeiPcdGet64 (\r
-  IN UINTN  TokenNumber\r
+  IN PCD_TOKEN_NUMBER  TokenNumber\r
   )\r
 ;\r
 \r
@@ -289,7 +158,7 @@ PeiPcdGet64 (
 VOID *\r
 EFIAPI\r
 PeiPcdGetPtr (\r
-  IN UINTN  TokenNumber\r
+  IN PCD_TOKEN_NUMBER  TokenNumber\r
   )\r
 ;\r
 \r
@@ -297,7 +166,7 @@ PeiPcdGetPtr (
 BOOLEAN\r
 EFIAPI\r
 PeiPcdGetBool (\r
-  IN UINTN  TokenNumber\r
+  IN PCD_TOKEN_NUMBER  TokenNumber\r
   )\r
 ;\r
 \r
@@ -305,7 +174,7 @@ PeiPcdGetBool (
 UINTN\r
 EFIAPI\r
 PeiPcdGetSize (\r
-  IN UINTN  TokenNumber\r
+  IN PCD_TOKEN_NUMBER  TokenNumber\r
   )\r
 ;\r
 \r
@@ -313,8 +182,8 @@ PeiPcdGetSize (
 UINT8\r
 EFIAPI\r
 PeiPcdGet8Ex (\r
-  IN CONST EFI_GUID        *Guid,\r
-  IN UINTN  TokenNumber\r
+  IN CONST EFI_GUID    *Guid,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber\r
   )\r
 ;\r
 \r
@@ -322,16 +191,16 @@ PeiPcdGet8Ex (
 UINT16\r
 EFIAPI\r
 PeiPcdGet16Ex (\r
-  IN CONST EFI_GUID        *Guid,\r
-  IN UINTN  TokenNumber\r
+  IN CONST EFI_GUID    *Guid,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber\r
   )\r
 ;\r
 \r
 UINT32\r
 EFIAPI\r
 PeiPcdGet32Ex (\r
-  IN CONST EFI_GUID        *Guid,\r
-  IN UINTN  TokenNumber\r
+  IN CONST EFI_GUID    *Guid,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber\r
   )\r
 ;\r
 \r
@@ -339,8 +208,8 @@ PeiPcdGet32Ex (
 UINT64\r
 EFIAPI\r
 PeiPcdGet64Ex (\r
-  IN CONST EFI_GUID        *Guid,\r
-  IN UINTN  TokenNumber\r
+  IN CONST EFI_GUID    *Guid,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber\r
   )\r
 ;\r
 \r
@@ -348,8 +217,8 @@ PeiPcdGet64Ex (
 VOID *\r
 EFIAPI\r
 PeiPcdGetPtrEx (\r
-  IN CONST EFI_GUID        *Guid,\r
-  IN UINTN  TokenNumber\r
+  IN CONST EFI_GUID    *Guid,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber\r
   )\r
 ;\r
 \r
@@ -357,8 +226,8 @@ PeiPcdGetPtrEx (
 BOOLEAN\r
 EFIAPI\r
 PeiPcdGetBoolEx (\r
-  IN CONST EFI_GUID        *Guid,\r
-  IN UINTN  TokenNumber\r
+  IN CONST EFI_GUID    *Guid,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber\r
   )\r
 ;\r
 \r
@@ -366,8 +235,8 @@ PeiPcdGetBoolEx (
 UINTN\r
 EFIAPI\r
 PeiPcdGetSizeEx (\r
-  IN CONST EFI_GUID        *Guid,\r
-  IN UINTN  TokenNumber\r
+  IN CONST EFI_GUID    *Guid,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber\r
   )\r
 ;\r
 \r
@@ -375,7 +244,7 @@ PeiPcdGetSizeEx (
 EFI_STATUS\r
 EFIAPI\r
 PeiPcdSet8 (\r
-  IN UINTN  TokenNumber,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber,\r
   IN UINT8             Value\r
   )\r
 ;\r
@@ -384,7 +253,7 @@ PeiPcdSet8 (
 EFI_STATUS\r
 EFIAPI\r
 PeiPcdSet16 (\r
-  IN UINTN  TokenNumber,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber,\r
   IN UINT16            Value\r
   )\r
 ;\r
@@ -393,7 +262,7 @@ PeiPcdSet16 (
 EFI_STATUS\r
 EFIAPI\r
 PeiPcdSet32 (\r
-  IN UINTN  TokenNumber,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber,\r
   IN UINT32            Value\r
   )\r
 ;\r
@@ -402,7 +271,7 @@ PeiPcdSet32 (
 EFI_STATUS\r
 EFIAPI\r
 PeiPcdSet64 (\r
-  IN UINTN  TokenNumber,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber,\r
   IN UINT64            Value\r
   )\r
 ;\r
@@ -410,8 +279,9 @@ PeiPcdSet64 (
 EFI_STATUS\r
 EFIAPI\r
 PeiPcdSetPtr (\r
-  IN UINTN  TokenNumber,\r
-  IN CONST VOID        *Value\r
+  IN PCD_TOKEN_NUMBER  TokenNumber,\r
+  IN UINTN             SizeOfBuffer,\r
+  IN VOID              *Buffer\r
   )\r
 ;\r
 \r
@@ -419,7 +289,7 @@ PeiPcdSetPtr (
 EFI_STATUS\r
 EFIAPI\r
 PeiPcdSetBool (\r
-  IN UINTN  TokenNumber,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber,\r
   IN BOOLEAN           Value\r
   )\r
 ;\r
@@ -428,8 +298,8 @@ PeiPcdSetBool (
 EFI_STATUS\r
 EFIAPI\r
 PeiPcdSet8Ex (\r
-  IN CONST EFI_GUID        *Guid,\r
-  IN UINTN  TokenNumber,\r
+  IN CONST EFI_GUID    *Guid,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber,\r
   IN UINT8             Value\r
   )\r
 ;\r
@@ -437,8 +307,8 @@ PeiPcdSet8Ex (
 EFI_STATUS\r
 EFIAPI\r
 PeiPcdSet16Ex (\r
-  IN CONST EFI_GUID        *Guid,\r
-  IN UINTN  TokenNumber,\r
+  IN CONST EFI_GUID    *Guid,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber,\r
   IN UINT16            Value\r
   )\r
 ;\r
@@ -447,8 +317,8 @@ PeiPcdSet16Ex (
 EFI_STATUS\r
 EFIAPI\r
 PeiPcdSet32Ex (\r
-  IN CONST EFI_GUID        *Guid,\r
-  IN UINTN  TokenNumber,\r
+  IN CONST EFI_GUID    *Guid,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber,\r
   IN UINT32            Value\r
   )\r
 ;\r
@@ -457,8 +327,8 @@ PeiPcdSet32Ex (
 EFI_STATUS\r
 EFIAPI\r
 PeiPcdSet64Ex (\r
-  IN CONST EFI_GUID        *Guid,\r
-  IN UINTN  TokenNumber,\r
+  IN CONST EFI_GUID    *Guid,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber,\r
   IN UINT64            Value\r
   )\r
 ;\r
@@ -467,9 +337,10 @@ PeiPcdSet64Ex (
 EFI_STATUS\r
 EFIAPI\r
 PeiPcdSetPtrEx (\r
-  IN CONST EFI_GUID        *Guid,\r
-  IN UINTN  TokenNumber,\r
-  IN CONST VOID        *Value\r
+  IN CONST EFI_GUID    *Guid,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber,\r
+  IN UINTN             SizeOfBuffer,\r
+  IN VOID              *Buffer\r
   )\r
 ;\r
 \r
@@ -477,8 +348,8 @@ PeiPcdSetPtrEx (
 EFI_STATUS\r
 EFIAPI\r
 PeiPcdSetBoolEx (\r
-  IN CONST EFI_GUID        *Guid,\r
-  IN UINTN  TokenNumber,\r
+  IN CONST EFI_GUID    *Guid,\r
+  IN PCD_TOKEN_NUMBER  TokenNumber,\r
   IN BOOLEAN           Value\r
   )\r
 ;\r
@@ -487,10 +358,10 @@ PeiPcdSetBoolEx (
 \r
 EFI_STATUS\r
 EFIAPI\r
-PcdRegisterCallBackOnSet (\r
-  IN  UINTN        TokenNumber,\r
-  IN  CONST EFI_GUID              *Guid, OPTIONAL\r
-  IN  PCD_PPI_CALLBACK   CallBackFunction\r
+PeiRegisterCallBackOnSet (\r
+  IN  PCD_TOKEN_NUMBER        TokenNumber,\r
+  IN  CONST EFI_GUID          *Guid, OPTIONAL\r
+  IN  PCD_PPI_CALLBACK        CallBackFunction\r
   )\r
 ;\r
 \r
@@ -498,9 +369,9 @@ PcdRegisterCallBackOnSet (
 EFI_STATUS\r
 EFIAPI\r
 PcdUnRegisterCallBackOnSet (\r
-  IN  UINTN        TokenNumber,\r
-  IN  CONST EFI_GUID              *Guid, OPTIONAL\r
-  IN  PCD_PPI_CALLBACK   CallBackFunction\r
+  IN  PCD_TOKEN_NUMBER        TokenNumber,\r
+  IN  CONST EFI_GUID          *Guid, OPTIONAL\r
+  IN  PCD_PPI_CALLBACK        CallBackFunction\r
   )\r
 ;\r
 \r
@@ -508,8 +379,8 @@ PcdUnRegisterCallBackOnSet (
 EFI_STATUS\r
 EFIAPI\r
 PeiPcdGetNextToken (\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
 \r