# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
#\r
+from __future__ import absolute_import\r
from io import BytesIO\r
from Common.Misc import *\r
from Common.StringUtils import StringToArray\r
from struct import pack\r
-from ValidCheckingInfoObject import VAR_CHECK_PCD_VARIABLE_TAB_CONTAINER\r
-from ValidCheckingInfoObject import VAR_CHECK_PCD_VARIABLE_TAB\r
-from ValidCheckingInfoObject import GetValidationObject\r
+from .ValidCheckingInfoObject import VAR_CHECK_PCD_VARIABLE_TAB_CONTAINER\r
+from .ValidCheckingInfoObject import VAR_CHECK_PCD_VARIABLE_TAB\r
+from .ValidCheckingInfoObject import GetValidationObject\r
from Common.VariableAttributes import VariableAttributes\r
import copy\r
from struct import unpack\r
from Common.DataType import *\r
+from Common import GlobalData\r
+from Common import EdkLogger\r
+import Common.LongFilePathOs as os\r
\r
DATABASE_VERSION = 7\r
\r
new_pcd = copy.deepcopy(pcd)\r
new_pcd.SkuInfoList = {skuname:pcd.SkuInfoList[skuname]}\r
new_pcd.isinit = 'INIT'\r
- if new_pcd.DatumType in TAB_PCD_CLEAN_NUMERIC_TYPES:\r
+ if new_pcd.DatumType in TAB_PCD_NUMERIC_TYPES:\r
for skuobj in pcd.SkuInfoList.values():\r
if skuobj.DefaultValue:\r
defaultvalue = int(skuobj.DefaultValue, 16) if skuobj.DefaultValue.upper().startswith("0X") else int(skuobj.DefaultValue, 10)\r
# and calculate the VariableHeadStringIndex\r
\r
VariableNameStructure = StringToArray(Sku.VariableName)\r
+\r
+ # Make pointer of VaraibleName(HII PCD) 2 bytes aligned\r
+ VariableNameStructureBytes = VariableNameStructure.lstrip("{").rstrip("}").split(",")\r
+ if len(VariableNameStructureBytes) % 2:\r
+ VariableNameStructure = "{%s,0x00}" % ",".join(VariableNameStructureBytes)\r
+\r
if VariableNameStructure not in Dict['STRING_TABLE_VALUE']:\r
Dict['STRING_TABLE_CNAME'].append(CName)\r
Dict['STRING_TABLE_GUID'].append(TokenSpaceGuid)\r