def prune_sku(pcd,skuname):\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 ['UINT8','UINT16','UINT32','UINT64']:\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
+ if defaultvalue != 0:\r
+ new_pcd.isinit = "INIT"\r
+ break\r
+ elif skuobj.VariableName:\r
+ new_pcd.isinit = "INIT"\r
+ break\r
+ else:\r
+ new_pcd.isinit = "UNINIT"\r
return new_pcd\r
DynamicPcds = Platform.DynamicPcdList\r
DynamicPcdSet_Sku = {(SkuName,skuobj.SkuId):[] for pcd in DynamicPcds for (SkuName,skuobj) in pcd.SkuInfoList.items() }\r
if Sku.DefaultValue == 'TRUE':\r
Pcd.InitString = 'INIT'\r
else:\r
- if int(Sku.DefaultValue, 0) != 0:\r
- Pcd.InitString = 'INIT'\r
+ Pcd.InitString = Pcd.isinit\r
#\r
# For UNIT64 type PCD's value, ULL should be append to avoid\r
# warning under linux building environment.\r