Re: [edk2] [Patch] BaseTools: refactor the error for PCD value is negative or exceed max

2018-09-29 Thread Zhu, Yonghong
Reviewed-by: Yonghong Zhu  

Best Regards,
Zhu Yonghong


-Original Message-
From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Yonghong 
Zhu
Sent: Saturday, September 29, 2018 11:08 AM
To: edk2-devel@lists.01.org
Cc: Gao, Liming 
Subject: [edk2] [Patch] BaseTools: refactor the error for PCD value is negative 
or exceed max

From: zhijufan 

refactor the error handling for the PCD value that is negative or it exceed the 
max value.

Cc: Liming Gao 
Cc: Yonghong Zhu 
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Zhiju.Fan 
---
 BaseTools/Source/Python/AutoGen/GenC.py | 57 - 
 BaseTools/Source/Python/BPDG/GenVpd.py  | 44 -  
BaseTools/Source/Python/Common/Misc.py  |  4 +++
 3 files changed, 30 insertions(+), 75 deletions(-)

diff --git a/BaseTools/Source/Python/AutoGen/GenC.py 
b/BaseTools/Source/Python/AutoGen/GenC.py
index f455f83..09626d0 100644
--- a/BaseTools/Source/Python/AutoGen/GenC.py
+++ b/BaseTools/Source/Python/AutoGen/GenC.py
@@ -1013,54 +1013,23 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd):
 ValueNumber = int (Value, 0)
 except:
 EdkLogger.error("build", AUTOGEN_ERROR,
 "PCD value is not valid dec or hex number for 
datum type [%s] of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, 
TokenCName),
 ExtraData="[%s]" % str(Info))
-if Pcd.DatumType == TAB_UINT64:
-if ValueNumber < 0:
-EdkLogger.error("build", AUTOGEN_ERROR,
-"PCD can't be set to negative value for 
datum type [%s] of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, 
TokenCName),
-ExtraData="[%s]" % str(Info))
-elif ValueNumber >= 0x1:
-EdkLogger.error("build", AUTOGEN_ERROR,
-"Too large PCD value for datum type [%s] 
of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, TokenCName),
-ExtraData="[%s]" % str(Info))
-if not Value.endswith('ULL'):
-Value += 'ULL'
-elif Pcd.DatumType == TAB_UINT32:
-if ValueNumber < 0:
-EdkLogger.error("build", AUTOGEN_ERROR,
-"PCD can't be set to negative value for 
datum type [%s] of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, 
TokenCName),
-ExtraData="[%s]" % str(Info))
-elif ValueNumber >= 0x1:
-EdkLogger.error("build", AUTOGEN_ERROR,
-"Too large PCD value for datum type [%s] 
of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, TokenCName),
-ExtraData="[%s]" % str(Info))
-if not Value.endswith('U'):
-Value += 'U'
-elif Pcd.DatumType == TAB_UINT16:
-if ValueNumber < 0:
-EdkLogger.error("build", AUTOGEN_ERROR,
-"PCD can't be set to negative value for 
datum type [%s] of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, 
TokenCName),
-ExtraData="[%s]" % str(Info))
-elif ValueNumber >= 0x1:
-EdkLogger.error("build", AUTOGEN_ERROR,
-"Too large PCD value for datum type [%s] 
of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, TokenCName),
-ExtraData="[%s]" % str(Info))
-if not Value.endswith('U'):
-Value += 'U'
-elif Pcd.DatumType == TAB_UINT8:
-if ValueNumber < 0:
-EdkLogger.error("build", AUTOGEN_ERROR,
-"PCD can't be set to negative value for 
datum type [%s] of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, 
TokenCName),
-ExtraData="[%s]" % str(Info))
-elif ValueNumber >= 0x100:
-EdkLogger.error("build", AUTOGEN_ERROR,
-"Too large PCD value for datum type [%s] 
of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, TokenCName),
-ExtraData="[%s]" % str(Info))
-if not Value.endswith('U'):
-Value += 'U'
+if ValueNumber < 0:
+EdkLogger.error("build", AUTOGEN_ERROR,
+"PCD can't be set to negative value for datum 
type [%s] of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, TokenCName),
+ExtraData="[%s]" % str(Info))
+elif ValueNumber > MAX_VAL_TYPE[Pcd.DatumType]:

[edk2] [Patch] BaseTools: refactor the error for PCD value is negative or exceed max

2018-09-28 Thread Yonghong Zhu
From: zhijufan 

refactor the error handling for the PCD value that is negative or it
exceed the max value.

Cc: Liming Gao 
Cc: Yonghong Zhu 
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Zhiju.Fan 
---
 BaseTools/Source/Python/AutoGen/GenC.py | 57 -
 BaseTools/Source/Python/BPDG/GenVpd.py  | 44 -
 BaseTools/Source/Python/Common/Misc.py  |  4 +++
 3 files changed, 30 insertions(+), 75 deletions(-)

diff --git a/BaseTools/Source/Python/AutoGen/GenC.py 
b/BaseTools/Source/Python/AutoGen/GenC.py
index f455f83..09626d0 100644
--- a/BaseTools/Source/Python/AutoGen/GenC.py
+++ b/BaseTools/Source/Python/AutoGen/GenC.py
@@ -1013,54 +1013,23 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd):
 ValueNumber = int (Value, 0)
 except:
 EdkLogger.error("build", AUTOGEN_ERROR,
 "PCD value is not valid dec or hex number for 
datum type [%s] of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, 
TokenCName),
 ExtraData="[%s]" % str(Info))
-if Pcd.DatumType == TAB_UINT64:
-if ValueNumber < 0:
-EdkLogger.error("build", AUTOGEN_ERROR,
-"PCD can't be set to negative value for 
datum type [%s] of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, 
TokenCName),
-ExtraData="[%s]" % str(Info))
-elif ValueNumber >= 0x1:
-EdkLogger.error("build", AUTOGEN_ERROR,
-"Too large PCD value for datum type [%s] 
of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, TokenCName),
-ExtraData="[%s]" % str(Info))
-if not Value.endswith('ULL'):
-Value += 'ULL'
-elif Pcd.DatumType == TAB_UINT32:
-if ValueNumber < 0:
-EdkLogger.error("build", AUTOGEN_ERROR,
-"PCD can't be set to negative value for 
datum type [%s] of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, 
TokenCName),
-ExtraData="[%s]" % str(Info))
-elif ValueNumber >= 0x1:
-EdkLogger.error("build", AUTOGEN_ERROR,
-"Too large PCD value for datum type [%s] 
of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, TokenCName),
-ExtraData="[%s]" % str(Info))
-if not Value.endswith('U'):
-Value += 'U'
-elif Pcd.DatumType == TAB_UINT16:
-if ValueNumber < 0:
-EdkLogger.error("build", AUTOGEN_ERROR,
-"PCD can't be set to negative value for 
datum type [%s] of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, 
TokenCName),
-ExtraData="[%s]" % str(Info))
-elif ValueNumber >= 0x1:
-EdkLogger.error("build", AUTOGEN_ERROR,
-"Too large PCD value for datum type [%s] 
of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, TokenCName),
-ExtraData="[%s]" % str(Info))
-if not Value.endswith('U'):
-Value += 'U'
-elif Pcd.DatumType == TAB_UINT8:
-if ValueNumber < 0:
-EdkLogger.error("build", AUTOGEN_ERROR,
-"PCD can't be set to negative value for 
datum type [%s] of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, 
TokenCName),
-ExtraData="[%s]" % str(Info))
-elif ValueNumber >= 0x100:
-EdkLogger.error("build", AUTOGEN_ERROR,
-"Too large PCD value for datum type [%s] 
of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, TokenCName),
-ExtraData="[%s]" % str(Info))
-if not Value.endswith('U'):
-Value += 'U'
+if ValueNumber < 0:
+EdkLogger.error("build", AUTOGEN_ERROR,
+"PCD can't be set to negative value for datum 
type [%s] of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, TokenCName),
+ExtraData="[%s]" % str(Info))
+elif ValueNumber > MAX_VAL_TYPE[Pcd.DatumType]:
+EdkLogger.error("build", AUTOGEN_ERROR,
+"Too large PCD value for datum type [%s] of 
PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, TokenCName),
+ExtraData="[%s]" % str(Info))
+if Pcd.DatumType == TAB_UINT64 and not Value.endswith('ULL'):
+