UINT16 StringTableIdx; \r
UINT32 LocalTokenNumber;\r
\r
-\r
+ //\r
+ // TokenNumber Zero is reserved as PCD_INVALID_TOKEN_NUMBER.\r
+ // We have to decrement TokenNumber by 1 to make it usable\r
+ // as the array index.\r
+ //\r
+ TokenNumber--;\r
+ \r
ASSERT (TokenNumber < PCD_TOTAL_TOKEN_NUMBER);\r
\r
- Size = DxePcdGetSize (TokenNumber);\r
+ Size = DxePcdGetSize (TokenNumber + 1);\r
ASSERT (GetSize == Size || GetSize == 0);\r
\r
\r
return (UINT8 *) Data + VariableHead->Offset;\r
} else {\r
//\r
- // BugBug: Need to support default value. The current implementation\r
- // will return a memory buffer with ALL ZERO.\r
- // \r
- return AllocateZeroPool (Size);\r
- }\r
+ // Return the default value specified by Platform Integrator \r
+ //\r
+ return (VOID *) ((UINT8 *) PcdDb + VariableHead->DefaultValueOffset);\r
+ }\r
\r
case PCD_TYPE_STRING:\r
StringTableIdx = (UINT16) *((UINT8 *) PcdDb + Offset);\r
TokenNumber = GetExPcdTokenNumber (Guid, (UINT32) TokenNumber);\r
}\r
\r
+ //\r
+ // TokenNumber Zero is reserved as PCD_INVALID_TOKEN_NUMBER.\r
+ // We have to decrement TokenNumber by 1 to make it usable\r
+ // as the array index.\r
+ //\r
+ TokenNumber--;\r
+\r
ListHead = &mCallbackFnTable[TokenNumber];\r
ListNode = GetFirstNode (ListHead);\r
\r
TokenNumber = GetExPcdTokenNumber (Guid, (UINT32) TokenNumber);\r
}\r
\r
+ //\r
+ // TokenNumber Zero is reserved as PCD_INVALID_TOKEN_NUMBER.\r
+ // We have to decrement TokenNumber by 1 to make it usable\r
+ // as the array index.\r
+ //\r
+ TokenNumber--;\r
+\r
ListHead = &mCallbackFnTable[TokenNumber];\r
ListNode = GetFirstNode (ListHead);\r
\r
EFI_STATUS Status;\r
VOID *Buffer;\r
\r
+ Size = 0;\r
+ Buffer = NULL;\r
+ \r
Status = EfiGetVariable (\r
(UINT16 *)VariableName,\r
VariableGuid,\r
NULL,\r
&Size,\r
- NULL\r
+ Buffer\r
);\r
+ \r
if (Status == EFI_BUFFER_TOO_SMALL) {\r
\r
Buffer = AllocatePool (Size);\r
ASSERT (Status == EFI_SUCCESS);\r
}\r
\r
+ *VariableData = Buffer;\r
+ *VariableSize = Size;\r
+\r
return Status;\r
\r
}\r
LIST_ENTRY *ListHead;\r
LIST_ENTRY *ListNode;\r
\r
+ //\r
+ // TokenNumber Zero is reserved as PCD_INVALID_TOKEN_NUMBER.\r
+ // We have to decrement TokenNumber by 1 to make it usable\r
+ // as the array index.\r
+ //\r
+ TokenNumber--;\r
+ \r
ListHead = &mCallbackFnTable[TokenNumber];\r
ListNode = GetFirstNode (ListHead);\r
\r
UINTN Offset;\r
UINT8 *PcdDb;\r
\r
-\r
+ //\r
+ // TokenNumber Zero is reserved as PCD_INVALID_TOKEN_NUMBER.\r
+ // We have to decrement TokenNumber by 1 to make it usable\r
+ // as the array index.\r
+ //\r
+ TokenNumber--;\r
+ \r
ASSERT (TokenNumber < PCD_TOTAL_TOKEN_NUMBER);\r
\r
if (PtrType) {\r
- ASSERT (Size <= DxePcdGetSize (TokenNumber));\r
+ ASSERT (Size <= DxePcdGetSize (TokenNumber + 1));\r
} else {\r
- ASSERT (Size == DxePcdGetSize (TokenNumber));\r
+ ASSERT (Size == DxePcdGetSize (TokenNumber + 1));\r
}\r
\r
IsPeiDb = (TokenNumber < PEI_LOCAL_TOKEN_NUMBER) ? TRUE : FALSE;\r
\r
if ((TokenNumber < PEI_NEX_TOKEN_NUMBER) ||\r
(TokenNumber >= PEI_LOCAL_TOKEN_NUMBER || TokenNumber < (PEI_LOCAL_TOKEN_NUMBER + DXE_NEX_TOKEN_NUMBER))) {\r
- InvokeCallbackOnSet (0, NULL, TokenNumber, Data, Size);\r
+ InvokeCallbackOnSet (0, NULL, TokenNumber + 1, Data, Size);\r
}\r
\r
TokenNumber = IsPeiDb ? TokenNumber\r