]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/PCD/Dxe/Service.c
Fix the bug that build tool and PCD driver can not deal with byte array or ANSIC...
[mirror_edk2.git] / MdeModulePkg / Universal / PCD / Dxe / Service.c
index bfc17e734c5b49272a82b881f7df9dd32453ee26..60080f13f70b377eb71c0dac9dfdf8ceb3cc377b 100644 (file)
@@ -40,7 +40,7 @@ GetWorker (
 {\r
   UINT32              *LocalTokenNumberTable;\r
   EFI_GUID            *GuidTable;\r
-  UINT16              *StringTable;\r
+  UINT              *StringTable;\r
   EFI_GUID            *Guid;\r
   UINT16              *Name;\r
   VARIABLE_HEAD       *VariableHead;\r
@@ -108,9 +108,9 @@ GetWorker (
   PcdDb = IsPeiDb ? ((UINT8 *) &mPcdDatabase->PeiDb) : ((UINT8 *) &mPcdDatabase->DxeDb);\r
                                     \r
   if (IsPeiDb) {\r
-    StringTable = (UINT16 *) (&mPcdDatabase->PeiDb.Init.StringTable[0]);\r
+    StringTable = (UINT8 *) (&mPcdDatabase->PeiDb.Init.StringTable[0]);\r
   } else {\r
-    StringTable = (UINT16 *) (&mPcdDatabase->DxeDb.Init.StringTable[0]);\r
+    StringTable = (UINT8 *) (&mPcdDatabase->DxeDb.Init.StringTable[0]);\r
   }\r
                                       \r
   \r
@@ -132,7 +132,7 @@ GetWorker (
       VariableHead = (VARIABLE_HEAD *) (PcdDb + Offset);\r
       \r
       Guid = GuidTable + VariableHead->GuidTableIndex;\r
-      Name = StringTable + VariableHead->StringIndex;\r
+      Name = (UINT16*)(StringTable + VariableHead->StringIndex);\r
       VaraiableDefaultBuffer = (UINT8 *) PcdDb + VariableHead->DefaultValueOffset;\r
 \r
       Status = GetHiiVariable (Guid, Name, &Data, &DataSize);\r
@@ -694,7 +694,7 @@ SetWorker (
   BOOLEAN             IsPeiDb;\r
   UINT32              LocalTokenNumber;\r
   EFI_GUID            *GuidTable;\r
-  UINT16              *StringTable;\r
+  UINT              *StringTable;\r
   EFI_GUID            *Guid;\r
   UINT16              *Name;\r
   UINTN               VariableOffset;\r
@@ -770,9 +770,9 @@ SetWorker (
   PcdDb = IsPeiDb ? ((UINT8 *) &mPcdDatabase->PeiDb) : ((UINT8 *) &mPcdDatabase->DxeDb);\r
 \r
   if (IsPeiDb) {\r
-    StringTable = (UINT16 *) (&mPcdDatabase->PeiDb.Init.StringTable[0]);\r
+    StringTable = (UINT8 *) (&mPcdDatabase->PeiDb.Init.StringTable[0]);\r
   } else {\r
-    StringTable = (UINT16 *) (&mPcdDatabase->DxeDb.Init.StringTable[0]);\r
+    StringTable = (UINT8 *) (&mPcdDatabase->DxeDb.Init.StringTable[0]);\r
   }\r
 \r
   \r
@@ -786,7 +786,7 @@ SetWorker (
     \r
     case PCD_TYPE_STRING:\r
       if (SetPtrTypeSize (TmpTokenNumber, Size)) {\r
-        CopyMem (StringTable + *((UINT16 *)InternalData), Data, *Size);\r
+        CopyMem (StringTable + *((UINT8 *)InternalData), Data, *Size);\r
         Status = EFI_SUCCESS;\r
       } else {\r
         Status = EFI_INVALID_PARAMETER;\r
@@ -810,7 +810,7 @@ SetWorker (
       VariableHead = (VARIABLE_HEAD *) (PcdDb + Offset);\r
       \r
       Guid = GuidTable + VariableHead->GuidTableIndex;\r
-      Name = StringTable + VariableHead->StringIndex;\r
+      Name = (UINT16*) (StringTable + VariableHead->StringIndex);\r
       VariableOffset = VariableHead->Offset;\r
 \r
       Status = SetHiiVariable (Guid, Name, Data, *Size, VariableOffset);\r