* [Patch] BaseTool: Fixed the issue of empty PcdDB.
@ 2018-03-23 2:24 BobCF
2018-03-23 2:25 ` Gao, Liming
0 siblings, 1 reply; 2+ messages in thread
From: BobCF @ 2018-03-23 2:24 UTC (permalink / raw)
To: edk2-devel; +Cc: Bob Feng, Liming Gao
If there is no dynamic pcds, there should be DB header
in the Pcd DataBase.
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
---
BaseTools/Source/Python/AutoGen/GenPcdDb.py | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/BaseTools/Source/Python/AutoGen/GenPcdDb.py b/BaseTools/Source/Python/AutoGen/GenPcdDb.py
index e2848e7aaf..e4d7f3b759 100644
--- a/BaseTools/Source/Python/AutoGen/GenPcdDb.py
+++ b/BaseTools/Source/Python/AutoGen/GenPcdDb.py
@@ -978,12 +978,10 @@ def CreatePcdDatabaseCode (Info, AutoGenC, AutoGenH):
DbFile.write(PcdDbBuffer)
Changed = SaveFileOnChange(DbFileName, DbFile.getvalue(), True)
def CreatePcdDataBase(PcdDBData):
delta = {}
basedata = {}
- if not PcdDBData:
- return ""
for skuname,skuid in PcdDBData:
if len(PcdDBData[(skuname,skuid)][1]) != len(PcdDBData[("DEFAULT","0")][1]):
EdkLogger.ERROR("The size of each sku in one pcd are not same")
for skuname,skuid in PcdDBData:
if skuname == "DEFAULT":
@@ -1059,13 +1057,16 @@ def NewCreatePcdDatabasePhaseSpecificAutoGen(Platform,Phase):
VarCheckTable = CreateVarCheckBin(VarCheckTableData)
VarCheckTable.dump(dest, Phase)
AdditionalAutoGenH, AdditionalAutoGenC = CreateAutoGen(PcdDriverAutoGenData)
else:
AdditionalAutoGenH, AdditionalAutoGenC, PcdDbBuffer,VarCheckTab = CreatePcdDatabasePhaseSpecificAutoGen (Platform,{}, Phase)
+ final_data = ()
+ for item in PcdDbBuffer:
+ final_data += unpack("B",item)
+ PcdDBData[("DEFAULT","0")] = (PcdDbBuffer, final_data)
- PcdDbBuffer = CreatePcdDataBase(PcdDBData)
- return AdditionalAutoGenH, AdditionalAutoGenC, PcdDbBuffer
+ return AdditionalAutoGenH, AdditionalAutoGenC, CreatePcdDataBase(PcdDBData)
## Create PCD database in DXE or PEI phase
#
# @param Platform The platform object
# @retval tuple Two TemplateString objects for C code and header file,
# respectively
--
2.14.3.windows.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [Patch] BaseTool: Fixed the issue of empty PcdDB.
2018-03-23 2:24 [Patch] BaseTool: Fixed the issue of empty PcdDB BobCF
@ 2018-03-23 2:25 ` Gao, Liming
0 siblings, 0 replies; 2+ messages in thread
From: Gao, Liming @ 2018-03-23 2:25 UTC (permalink / raw)
To: Feng, Bob C, edk2-devel@lists.01.org
Reviewed-by: Liming Gao <liming.gao@intel.com>
> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of BobCF
> Sent: Friday, March 23, 2018 10:24 AM
> To: edk2-devel@lists.01.org
> Cc: Gao, Liming <liming.gao@intel.com>
> Subject: [edk2] [Patch] BaseTool: Fixed the issue of empty PcdDB.
>
> If there is no dynamic pcds, there should be DB header
> in the Pcd DataBase.
>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Bob Feng <bob.c.feng@intel.com>
> Cc: Liming Gao <liming.gao@intel.com>
> ---
> BaseTools/Source/Python/AutoGen/GenPcdDb.py | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/BaseTools/Source/Python/AutoGen/GenPcdDb.py b/BaseTools/Source/Python/AutoGen/GenPcdDb.py
> index e2848e7aaf..e4d7f3b759 100644
> --- a/BaseTools/Source/Python/AutoGen/GenPcdDb.py
> +++ b/BaseTools/Source/Python/AutoGen/GenPcdDb.py
> @@ -978,12 +978,10 @@ def CreatePcdDatabaseCode (Info, AutoGenC, AutoGenH):
> DbFile.write(PcdDbBuffer)
> Changed = SaveFileOnChange(DbFileName, DbFile.getvalue(), True)
> def CreatePcdDataBase(PcdDBData):
> delta = {}
> basedata = {}
> - if not PcdDBData:
> - return ""
> for skuname,skuid in PcdDBData:
> if len(PcdDBData[(skuname,skuid)][1]) != len(PcdDBData[("DEFAULT","0")][1]):
> EdkLogger.ERROR("The size of each sku in one pcd are not same")
> for skuname,skuid in PcdDBData:
> if skuname == "DEFAULT":
> @@ -1059,13 +1057,16 @@ def NewCreatePcdDatabasePhaseSpecificAutoGen(Platform,Phase):
> VarCheckTable = CreateVarCheckBin(VarCheckTableData)
> VarCheckTable.dump(dest, Phase)
> AdditionalAutoGenH, AdditionalAutoGenC = CreateAutoGen(PcdDriverAutoGenData)
> else:
> AdditionalAutoGenH, AdditionalAutoGenC, PcdDbBuffer,VarCheckTab = CreatePcdDatabasePhaseSpecificAutoGen
> (Platform,{}, Phase)
> + final_data = ()
> + for item in PcdDbBuffer:
> + final_data += unpack("B",item)
> + PcdDBData[("DEFAULT","0")] = (PcdDbBuffer, final_data)
>
> - PcdDbBuffer = CreatePcdDataBase(PcdDBData)
> - return AdditionalAutoGenH, AdditionalAutoGenC, PcdDbBuffer
> + return AdditionalAutoGenH, AdditionalAutoGenC, CreatePcdDataBase(PcdDBData)
> ## Create PCD database in DXE or PEI phase
> #
> # @param Platform The platform object
> # @retval tuple Two TemplateString objects for C code and header file,
> # respectively
> --
> 2.14.3.windows.1
>
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2018-03-23 2:18 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-03-23 2:24 [Patch] BaseTool: Fixed the issue of empty PcdDB BobCF
2018-03-23 2:25 ` Gao, Liming
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox