1. Adjust the structure of TableFile
authorhche10x <hche10x@7335b38e-4728-0410-8992-fb3ffe349368>
Fri, 18 Jan 2008 03:04:41 +0000 (03:04 +0000)
committerhche10x <hche10x@7335b38e-4728-0410-8992-fb3ffe349368>
Fri, 18 Jan 2008 03:04:41 +0000 (03:04 +0000)
2. Adjust the structure of TableFunction
3. Add some new model used in Ecc
4. Split some checkpoints in config.ini to more detailed sub items, adjust some names of them, and add comment for each checkpoint.

git-svn-id: https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools@947 7335b38e-4728-0410-8992-fb3ffe349368

Source/Python/Common/DataType.py
Source/Python/CommonDataClass/DataClass.py
Source/Python/Ecc/Database.py
Source/Python/Ecc/config.ini
Source/Python/Table/TableFile.py
Source/Python/Table/TableFunction.py

index c6d0139..4a73e9b 100644 (file)
@@ -330,3 +330,12 @@ TAB_TOD_DEFINES_TOOL_CHAIN_TAG = 'TOOL_CHAIN_TAG'
 TAB_TOD_DEFINES_TARGET_ARCH = 'TARGET_ARCH'\r
 TAB_TOD_DEFINES_COMMAND_TYPE = 'COMMAND_TYPE'\r
 \r
+#\r
+# Conditional Statements\r
+#\r
+TAB_IF = '!if'\r
+TAB_END_IF = '!endif'\r
+TAB_ELSE_IF = '!elseif'\r
+TAB_ELSE = '!else'\r
+TAB_IF_DEF = '!ifdef'\r
+TAB_IF_N_DEF = '!ifndef'\r
index 4230426..9898a84 100644 (file)
@@ -35,10 +35,16 @@ MODEL_IDENTIFIER_PARAMETER = 2004
 MODEL_IDENTIFIER_STRUCTURE = 2005\r
 MODEL_IDENTIFIER_IDENTIFIER = 2006\r
 MODEL_IDENTIFIER_INCLUDE = 2007\r
-MODEL_IDENTIFIER_MACRO = 2008\r
-MODEL_IDENTIFIER_PREDICATE_EXPRESSION = 2009\r
-MODEL_IDENTIFIER_ENUMERATE = 2010\r
-MODEL_IDENTIFIER_PCD = 2011\r
+MODEL_IDENTIFIER_PREDICATE_EXPRESSION = 2008\r
+MODEL_IDENTIFIER_ENUMERATE = 2009\r
+MODEL_IDENTIFIER_PCD = 2010\r
+MODEL_IDENTIFIER_UNION = 2011\r
+MODEL_IDENTIFIER_MACRO_IFDEF = 2012\r
+MODEL_IDENTIFIER_MACRO_IFNDEF = 2013\r
+MODEL_IDENTIFIER_MACRO_DEFINE = 2014\r
+MODEL_IDENTIFIER_MACRO_ENDIF = 2015\r
+MODEL_IDENTIFIER_MACRO_PROGMA = 2016\r
+\r
 \r
 MODEL_EFI_PROTOCOL = 3001\r
 MODEL_EFI_PPI = 3002\r
@@ -58,10 +64,12 @@ MODEL_PCD_DYNAMIC = 4005
 MODEL_META_DATA_HEADER = 5001\r
 MODEL_META_DATA_INCLUDE = 5002\r
 MODEL_META_DATA_DEFINE = 5003\r
-MODEL_META_DATA_IFDEF = 5004\r
-MODEL_META_DATA_IFNDEF = 5005\r
-MODEL_META_DATA_BUILD_OPTION = 5006\r
-MODEL_META_DATA_COMPONENT = 5007\r
+MODEL_META_DATA_CONDITIONAL_STATEMENT_IF = 5004\r
+MODEL_META_DATA_CONDITIONAL_STATEMENT_ELSE = 5005\r
+MODEL_META_DATA_CONDITIONAL_STATEMENT_IFDEF = 5006\r
+MODEL_META_DATA_CONDITIONAL_STATEMENT_IFNDEF = 5007\r
+MODEL_META_DATA_BUILD_OPTION = 5008\r
+MODEL_META_DATA_COMPONENT = 5009\r
 \r
 MODEL_LIST = [('MODEL_UNKNOWN', MODEL_UNKNOWN),\r
               ('MODEL_FILE_C', MODEL_FILE_C),\r
@@ -78,16 +86,22 @@ MODEL_LIST = [('MODEL_UNKNOWN', MODEL_UNKNOWN),
               ('MODEL_IDENTIFIER_STRUCTURE', MODEL_IDENTIFIER_STRUCTURE),\r
               ('MODEL_IDENTIFIER_IDENTIFIER', MODEL_IDENTIFIER_IDENTIFIER),\r
               ('MODEL_IDENTIFIER_INCLUDE', MODEL_IDENTIFIER_INCLUDE),\r
-              ('MODEL_IDENTIFIER_MACRO', MODEL_IDENTIFIER_MACRO),\r
               ('MODEL_IDENTIFIER_PREDICATE_EXPRESSION', MODEL_IDENTIFIER_PREDICATE_EXPRESSION),\r
               ('MODEL_IDENTIFIER_ENUMERATE', MODEL_IDENTIFIER_ENUMERATE),\r
               ('MODEL_IDENTIFIER_PCD', MODEL_IDENTIFIER_PCD),\r
+              ('MODEL_IDENTIFIER_UNION', MODEL_IDENTIFIER_UNION),\r
+              ('MODEL_IDENTIFIER_MACRO_IFDEF', MODEL_IDENTIFIER_MACRO_IFDEF),\r
+              ('MODEL_IDENTIFIER_MACRO_IFNDEF', MODEL_IDENTIFIER_MACRO_IFNDEF),\r
+              ('MODEL_IDENTIFIER_MACRO_DEFINE', MODEL_IDENTIFIER_MACRO_DEFINE),\r
+              ('MODEL_IDENTIFIER_MACRO_ENDIF', MODEL_IDENTIFIER_MACRO_ENDIF),\r
+              ('MODEL_IDENTIFIER_MACRO_PROGMA', MODEL_IDENTIFIER_MACRO_PROGMA),\r
               ('MODEL_EFI_PROTOCOL', MODEL_EFI_PROTOCOL),\r
               ('MODEL_EFI_PPI', MODEL_EFI_PPI),\r
               ('MODEL_EFI_GUID', MODEL_EFI_GUID),\r
               ('MODEL_EFI_LIBRARY_CLASS', MODEL_EFI_LIBRARY_CLASS),\r
               ('MODEL_EFI_LIBRARY_INSTANCE', MODEL_EFI_LIBRARY_INSTANCE),\r
               ('MODEL_EFI_PCD', MODEL_EFI_PCD),\r
+              ('MODEL_IDENTIFIER_UNION', MODEL_IDENTIFIER_UNION),\r
               ('MODEL_EFI_SOURCE_FILE', MODEL_EFI_SOURCE_FILE),\r
               ('MODEL_EFI_BINARY_FILE', MODEL_EFI_BINARY_FILE),\r
               ('MODEL_PCD_FIXED_AT_BUILD', MODEL_PCD_FIXED_AT_BUILD),\r
@@ -98,8 +112,10 @@ MODEL_LIST = [('MODEL_UNKNOWN', MODEL_UNKNOWN),
               ("MODEL_META_DATA_HEADER", MODEL_META_DATA_HEADER),\r
               ("MODEL_META_DATA_INCLUDE", MODEL_META_DATA_INCLUDE),\r
               ("MODEL_META_DATA_DEFINE", MODEL_META_DATA_DEFINE),\r
-              ("MODEL_META_DATA_IFDEF", MODEL_META_DATA_IFDEF),\r
-              ("MODEL_META_DATA_IFNDEF", MODEL_META_DATA_IFNDEF),\r
+              ("MODEL_META_DATA_CONDITIONAL_STATEMENT_IF", MODEL_META_DATA_CONDITIONAL_STATEMENT_IF),\r
+              ("MODEL_META_DATA_CONDITIONAL_STATEMENT_ELSE", MODEL_META_DATA_CONDITIONAL_STATEMENT_ELSE),\r
+              ("MODEL_META_DATA_CONDITIONAL_STATEMENT_IFDEF", MODEL_META_DATA_CONDITIONAL_STATEMENT_IFDEF),\r
+              ("MODEL_META_DATA_CONDITIONAL_STATEMENT_IFNDEF", MODEL_META_DATA_CONDITIONAL_STATEMENT_IFNDEF),\r
               ("MODEL_META_DATA_BUILD_OPTION", MODEL_META_DATA_BUILD_OPTION),\r
               ("MODEL_META_DATA_COMPONENT", MODEL_META_DATA_COMPONENT)\r
              ]\r
@@ -117,6 +133,8 @@ MODEL_LIST = [('MODEL_UNKNOWN', MODEL_UNKNOWN),
 # @param StartColumn:      StartColumn of a Function\r
 # @param EndLine:          EndLine of a Function\r
 # @param EndColumn:        EndColumn of a Function\r
+# @param BodyStartLine:    BodyStartLine of a Function Body\r
+# @param BodyStartColumn:  BodyStartColumn of a Function Body\r
 # @param BelongsToFile:    The Function belongs to which file\r
 # @param IdentifierList:   IdentifierList of a File\r
 # @param PcdList:          PcdList of a File\r
@@ -130,12 +148,17 @@ MODEL_LIST = [('MODEL_UNKNOWN', MODEL_UNKNOWN),
 # @var StartColumn:        StartColumn of a Function\r
 # @var EndLine:            EndLine of a Function\r
 # @var EndColumn:          EndColumn of a Function\r
+# @var BodyStartLine:      StartLine of a Function Body\r
+# @var BodyStartColumn:    StartColumn of a Function Body\r
 # @var BelongsToFile:      The Function belongs to which file\r
 # @var IdentifierList:     IdentifierList of a File\r
 # @var PcdList:            PcdList of a File\r
 #\r
 class FunctionClass(object):\r
-    def __init__(self, ID = -1, Header = '', Modifier = '', Name = '', ReturnStatement = '', StartLine = -1, StartColumn = -1, EndLine = -1, EndColumn = -1, BelongsToFile = -1, IdentifierList = [], PcdList = []):\r
+    def __init__(self, ID = -1, Header = '', Modifier = '', Name = '', ReturnStatement = '', \\r
+                 StartLine = -1, StartColumn = -1, EndLine = -1, EndColumn = -1, \\r
+                 BodyStartLine = -1, BodyStartColumn = -1, BelongsToFile = -1, \\r
+                 IdentifierList = [], PcdList = []):\r
         self.ID = ID\r
         self.Header = Header\r
         self.Modifier = Modifier                    \r
@@ -145,6 +168,8 @@ class FunctionClass(object):
         self.StartColumn = StartColumn\r
         self.EndLine = EndLine\r
         self.EndColumn = EndColumn\r
+        self.BodyStartLine = BodyStartLine\r
+        self.BodyStartColumn = BodyStartColumn\r
         self.BelongsToFile = BelongsToFile\r
         \r
         self.IdentifierList = IdentifierList\r
@@ -181,7 +206,8 @@ class FunctionClass(object):
 # @var EndColumn:            EndColumn of a Identifier\r
 #\r
 class IdentifierClass(object):\r
-    def __init__(self, ID = -1, Modifier = '', Type = '', Name = '', Value = '', Model = MODEL_UNKNOWN, BelongsToFile = -1, BelongsToFunction = -1, StartLine = -1, StartColumn = -1, EndLine = -1, EndColumn = -1):\r
+    def __init__(self, ID = -1, Modifier = '', Type = '', Name = '', Value = '', Model = MODEL_UNKNOWN, \\r
+                 BelongsToFile = -1, BelongsToFunction = -1, StartLine = -1, StartColumn = -1, EndLine = -1, EndColumn = -1):\r
         self.ID = ID\r
         self.Modifier = Modifier\r
         self.Type = Type\r
@@ -226,7 +252,8 @@ class IdentifierClass(object):
 # @var EndColumn:              EndColumn of a Pcd\r
 #\r
 class PcdClass(object):\r
-    def __init__(self, ID = -1, CName = '', TokenSpaceGuidCName = '', Token = '', DatumType = '', Model = MODEL_UNKNOWN, BelongsToFile = -1, BelongsToFunction = -1, StartLine = -1, StartColumn = -1, EndLine = -1, EndColumn = -1):\r
+    def __init__(self, ID = -1, CName = '', TokenSpaceGuidCName = '', Token = '', DatumType = '', Model = MODEL_UNKNOWN, \\r
+                 BelongsToFile = -1, BelongsToFunction = -1, StartLine = -1, StartColumn = -1, EndLine = -1, EndColumn = -1):\r
         self.ID = ID\r
         self.CName = CName\r
         self.TokenSpaceGuidCName = TokenSpaceGuidCName\r
@@ -249,6 +276,7 @@ class PcdClass(object):
 # @param Path:            Path of a File\r
 # @param FullPath:        FullPath of a File\r
 # @param Model:           Model of a File\r
+# @param TimeStamp:       TimeStamp of a File\r
 # @param FunctionList:    FunctionList of a File\r
 # @param IdentifierList:  IdentifierList of a File\r
 # @param PcdList:         PcdList of a File\r
@@ -259,18 +287,21 @@ class PcdClass(object):
 # @var Path:              Path of a File\r
 # @var FullPath:          FullPath of a File\r
 # @var Model:             Model of a File\r
+# @var TimeStamp:         TimeStamp of a File\r
 # @var FunctionList:      FunctionList of a File\r
 # @var IdentifierList:    IdentifierList of a File\r
 # @var PcdList:           PcdList of a File\r
 #\r
 class FileClass(object):\r
-    def __init__(self, ID = -1, Name = '', ExtName = '', Path = '', FullPath = '', Model = MODEL_UNKNOWN, FunctionList = [], IdentifierList = [], PcdList = []):\r
+    def __init__(self, ID = -1, Name = '', ExtName = '', Path = '', FullPath = '', Model = MODEL_UNKNOWN, TimeStamp = '', \\r
+                 FunctionList = [], IdentifierList = [], PcdList = []):\r
         self.ID = ID                                   \r
         self.Name = Name\r
         self.ExtName = ExtName                    \r
         self.Path = Path\r
         self.FullPath = FullPath\r
         self.Model = Model\r
+        self.TimeStamp = TimeStamp\r
         \r
         self.FunctionList = FunctionList\r
         self.IdentifierList = IdentifierList\r
index 16d44bb..f92c3cd 100644 (file)
@@ -108,7 +108,7 @@ class Database(object):
         # Insert a record for file\r
         #\r
         FileID = self.TblFile.GetCount() + 1\r
-        self.TblFile.Insert(FileID, File.Name, File.ExtName, File.Path, File.FullPath, Model = File.Model)\r
+        self.TblFile.Insert(FileID, File.Name, File.ExtName, File.Path, File.FullPath, Model = File.Model, TimeStamp = File.TimeStamp)\r
 \r
         #\r
         # Insert function of file\r
@@ -116,7 +116,8 @@ class Database(object):
         for Function in File.FunctionList:\r
             FunctionID = self.TblFunction.GetCount() + 1\r
             self.TblFunction.Insert(FunctionID, Function.Header, Function.Modifier, Function.Name, Function.ReturnStatement, \\r
-                                    Function.StartLine, Function.StartColumn, Function.EndLine, Function.EndColumn, FileID)\r
+                                    Function.StartLine, Function.StartColumn, Function.EndLine, Function.EndColumn, \\r
+                                    Function.BodyStartLine, Function.BodyStartColumn, FileID)\r
             #\r
             # Insert Identifier of function\r
             #\r
@@ -216,8 +217,8 @@ if __name__ == '__main__':
     identifier2 = DataClass.IdentifierClass(-1, '', '', 'i1', 'aaa', DataClass.MODEL_IDENTIFIER_COMMENT, 1, -1, 15,  43,  20,  43)\r
     identifier3 = DataClass.IdentifierClass(-1, '', '', 'i1', 'aaa', DataClass.MODEL_IDENTIFIER_COMMENT, 1, -1, 55,  43,  58,  43)\r
     identifier4 = DataClass.IdentifierClass(-1, '', '', 'i1', 'aaa', DataClass.MODEL_IDENTIFIER_COMMENT, 1, -1, 77,  43,  88,  43)\r
-    fun1 = DataClass.FunctionClass(-1, '', '', 'fun1', '', 21, 2, 60,  45, 1, [], [])\r
-    file = DataClass.FileClass(-1, 'F1', 'c', 'C:\\', 'C:\\F1.exe', DataClass.MODEL_FILE_C, [fun1], [identifier1, identifier2, identifier3, identifier4], [])\r
+    fun1 = DataClass.FunctionClass(-1, '', '', 'fun1', '', 21, 2, 60,  45, 1, 23, 0, [], [])\r
+    file = DataClass.FileClass(-1, 'F1', 'c', 'C:\\', 'C:\\F1.exe', DataClass.MODEL_FILE_C, '2007-12-28', [fun1], [identifier1, identifier2, identifier3, identifier4], [])\r
     Db.InsertOneFile(file)\r
     Db.UpdateIdentifierBelongsToFunction()\r
         \r
index bcc8fc7..3c85080 100644 (file)
@@ -38,21 +38,36 @@ CheckAll = 0
 #\r
 AutoCorrect = 1\r
 \r
+#\r
+# List customized Modifer here, split with ','\r
+#\r
+ModifierList = IN, OUT, OPTIONAL, UNALIGNED, EFI_RUNTIMESERVICE, EFI_BOOTSERVICE, EFIAPI\r
+\r
 #\r
 # General Checking\r
 #\r
 GeneralCheckAll = 0\r
 \r
-GeneralCheckTab = 1\r
+# Check whether NO Tab is used, replaced with spaces\r
+GeneralCheckNoTab = 1\r
+# The width of Tab\r
 GeneralCheckTabWidth = 2\r
+# Check whether the indentation is followed coding style\r
 GeneralCheckIndentation = 1\r
+# The width of indentation\r
 GeneralCheckIndentationWidth = 2\r
+# Check whether no line is exceeding defined widty\r
 GeneralCheckLine = 1\r
+# The width of a line\r
 GeneralCheckLineWidth = 120\r
+# Check whether no use of _asm in the source file\r
 GeneralCheckNo_Asm = 1\r
+# Check whether no use of "#progma" in source file except "#pragma pack(#)".\r
 GeneralCheckNoProgma = 1\r
+# Check whether there is a carriage return at the end of the file\r
 GeneralCheckCarriageReturn = 1\r
-GeneralCheckPathName = 1\r
+# Check whether the file exists\r
+GeneralCheckFileExistence = 1\r
 \r
 #\r
 # Space Checking\r
@@ -64,16 +79,21 @@ SpaceCheckAll = 1
 #\r
 PredicateExpressionCheckAll = 0\r
 \r
+# Check whether Boolean values, variable type BOOLEAN not use explicit comparisons to TRUE or FALSE\r
 PredicateExpressionCheckBooleanValue = 1\r
-PredicateExpressionCheckBooleanOperator = 1\r
-PredicateExpressionCheckNullType = 1\r
+# Check whether Non-Boolean comparisons use a compare operator (==, !=, >, < >=, <=). \r
+PredicateExpressionCheckNonBooleanOperator = 1\r
+# Check whether a comparison of any pointer to zero must be done via the NULL type\r
+PredicateExpressionCheckComparisonNullType = 1\r
 \r
 #\r
 # Headers Checking\r
 #\r
 HeaderCheckAll = 0\r
 \r
+# Check whether File header exists\r
 HeaderCheckFile = 1\r
+# Check whether Function header exists\r
 HeaderCheckFunction = 1\r
 \r
 #\r
@@ -81,12 +101,22 @@ HeaderCheckFunction = 1
 #\r
 CFunctionLayoutCheckAll = 0\r
 \r
+# Check whether return type exists and in the first line\r
 CFunctionLayoutCheckReturnType = 1\r
+# Check whether any optional functional modifiers exist and next to the return type\r
 CFunctionLayoutCheckOptionalFunctionalModifier = 1\r
+# Check whether the next line contains the function name, left justified, followed by the beginning of the parameter list\r
+# Check whether the closing parenthesis is on its own line and also indented two spaces\r
 CFunctionLayoutCheckFunctionName = 1\r
+# Check whether the function prototypes in include files have the same form as function definitions\r
 CFunctionLayoutCheckFunctionPrototype = 1\r
+# Check whether the body of a function is contained by open and close braces that must be in the first column\r
 CFunctionLayoutCheckFunctionBody = 1\r
+# Check whether the data declarations is the first code in a module.\r
 CFunctionLayoutCheckDataDeclaration = 1\r
+# Check whether no initialization of a variable as part of its declaration\r
+CFunctionLayoutCheckNoInitOfVariable = 1\r
+# Check whether no use of STATIC for functions\r
 CFunctionLayoutCheckNoStatic = 1\r
 \r
 #\r
@@ -94,7 +124,12 @@ CFunctionLayoutCheckNoStatic = 1
 #\r
 IncludeFileCheckAll = 0\r
 \r
+# Check whether all include file contents is guarded by a #ifndef statement.\r
+# the #ifndef must be the first line of code following the file header comment\r
+# the #endif must appear on the last line in the file\r
 IncludeFileCheckIfndefStatement = 1\r
+# Check whether include files contain only public or only private data\r
+# Check whether include files NOT contain code or define data variables\r
 IncludeFileCheckData = 1\r
 \r
 #\r
@@ -102,23 +137,42 @@ IncludeFileCheckData = 1
 #\r
 DeclarationDataTypeCheckAll = 0\r
 \r
+# Check whether no use of int, unsigned, char, void, static, long in any .c, .h or .asl files.\r
 DeclarationDataTypeCheckNoUseCType = 1\r
+# Check whether the modifiers IN, OUT, OPTIONAL, and UNALIGNED are used only to qualify arguments to a function and should not appear in a data type declaration\r
 DeclarationDataTypeCheckInOutModifier = 1\r
+# Check whether the EFIAPI modifier should be used at the entry of drivers, events, and member functions of protocols\r
 DeclarationDataTypeCheckEFIAPIModifier = 1\r
+# Check whether Enumerated Type has a 'typedef' and the name is capital\r
 DeclarationDataTypeCheckEnumeratedType = 1\r
+# Check whether Structure Type has a 'typedef' and the name is capital\r
 DeclarationDataTypeCheckStructureDeclaration = 1\r
+# Check whether Union Type has a 'typedef' and the name is capital\r
+DeclarationDataTypeCheckUnionType = 1\r
+\r
 \r
 #\r
 # Naming Conventions Checking\r
 #\r
 NamingConventionCheckAll = 0\r
 \r
+# Check whether only capital letters are used for #define declarations\r
 NamingConventionCheckDefineStatement = 1\r
+# Check whether only capital letters are used for typedef declarations\r
 NamingConventionCheckTypedefStatement = 1\r
+# Check whether the #ifndef at the start of an include file uses both prefix and postfix underscore characters, ¡®_¡¯.\r
 NamingConventionCheckIfndefStatement = 1\r
+# Rule for path name, variable name and function name\r
+# 1. First character should be upper case\r
+# 2. Existing lower case in a word\r
+# 3. No space existence\r
+# Check whether the path name followed the rule\r
 NamingConventionCheckPathName = 1\r
+# Check whether the variable name followed the rule\r
 NamingConventionCheckVariableName = 1\r
+# Check whether the function name followed the rule\r
 NamingConventionCheckFunctionName = 1\r
+# Check whether NO use short variable name with single character\r
 NamingConventionCheckSingleCharacterVariable = 1\r
 \r
 #\r
@@ -126,10 +180,16 @@ NamingConventionCheckSingleCharacterVariable = 1
 #\r
 DoxygenCheckAll = 0\r
 \r
+# Check whether the file headers are followed Doxygen special documentation blocks in section 2.3.5\r
 DoxygenCheckFileHeader = 1\r
+# Check whether the function headers are followed Doxygen special documentation blocks in section 2.3.5\r
 DoxygenCheckFunctionHeader = 1\r
+# Check whether the first line of text in a comment block is a brief description of the element being documented. \r
+# The brief description must end with a period.\r
 DoxygenCheckCommentDescription = 1\r
+# Check whether comment lines with ¡®///< ¡­ text ¡­¡¯ format, if it is used, it should be after the code section.\r
 DoxygenCheckCommentFormat = 1\r
+# Check whether only Doxygen commands allowed to mark the code are @bug and @todo.\r
 DoxygenCheckCommand = 1\r
 \r
 #\r
@@ -137,12 +197,31 @@ DoxygenCheckCommand = 1
 #\r
 MetaDataFileCheckAll = 0\r
 \r
+# Check whether each file defined in meta-data exists\r
 MetaDataFileCheckPathName = 1\r
+# Generate a list for all files defined in meta-data files\r
 MetaDataFileCheckGenerateFileList = 1\r
+# The path of log file\r
 MetaDataFileCheckPathOfGenerateFileList = C:\File.log\r
+# Check whether all Library Instances defined for a given module (or dependent library instance) match the module¡¯s type.  \r
+# Each Library Instance must specify the Supported Module Types in its INF file, \r
+# and any module specifying the library instance must be one of the supported types.\r
 MetaDataFileCheckLibraryInstance = 1\r
+# Check whether a Library Instance has been defined for all dependent library classes\r
+MetaDataFileCheckLibraryInstanceDependent = 1\r
+# Check whether the Library Instances specified by the LibraryClasses sections are listed in order of dependencies\r
+MetaDataFileCheckLibraryInstanceOrder = 1\r
+# Check whether the unnecessary inclusion of library classes in the INF file\r
+MetaDataFileCheckLibraryNoUse = 1\r
+# Check whether an INF file is specified in the FDF file, but not in the DSC file, then the INF file must be for a Binary module only\r
 MetaDataFileCheckBinaryInfInFdf = 1\r
-MetaDataFileCheckPcd = 1\r
+Not to report error and warning related OS include file such as ¡°windows.h¡± and ¡°stdio.h¡±.\r
+# Check whether a PCD is set in a DSC file or the FDF file, but not in both.\r
+MetaDataFileCheckPcdDuplicate = 1\r
+# Check whether PCD settings in the FDF file can only be related to flash.\r
+MetaDataFileCheckPcdFlash = 1\r
+# Check whether PCDs used in INF files but not specified in DSC or FDF files\r
+MetaDataFileCheckPcdNoUse = 1\r
 \r
 #\r
 # The check points in this section are reserved\r
index c920b3b..ca76d26 100644 (file)
@@ -38,6 +38,7 @@ class TableFile(Table):
     # @param Path:      Path of a File\r
     # @param FullPath:  FullPath of a File\r
     # @param Model:     Model of a File\r
+    # @param TimeStamp: TimeStamp of a File\r
     #\r
     def Create(self):\r
         SqlCommand = """create table IF NOT EXISTS %s (ID SINGLE PRIMARY KEY,\r
@@ -45,7 +46,8 @@ class TableFile(Table):
                                                        ExtName VARCHAR,\r
                                                        Path VARCHAR,\r
                                                        FullPath VARCHAR NOT NULL,\r
-                                                       Model INTEGER DEFAULT 0\r
+                                                       Model INTEGER DEFAULT 0,\r
+                                                       TimeStamp VARCHAR NOT NULL\r
                                                       )""" % self.Table\r
         Table.Create(self, SqlCommand)\r
 \r
@@ -59,8 +61,9 @@ class TableFile(Table):
     # @param Path:      Path of a File\r
     # @param FullPath:  FullPath of a File\r
     # @param Model:     Model of a File\r
+    # @param TimeStamp: TimeStamp of a File\r
     #\r
-    def Insert(self, ID, Name, ExtName, Path, FullPath, Model):\r
-        SqlCommand = """insert into %s values(%s, '%s', '%s', '%s', '%s', %s)""" \\r
-                                           % (self.Table, ID, Name, ExtName, Path, FullPath, Model)\r
+    def Insert(self, ID, Name, ExtName, Path, FullPath, Model, TimeStamp):\r
+        SqlCommand = """insert into %s values(%s, '%s', '%s', '%s', '%s', %s, '%s')""" \\r
+                                           % (self.Table, ID, Name, ExtName, Path, FullPath, Model, TimeStamp)\r
         Table.Insert(self, SqlCommand)\r
index 5929b98..1fcaea5 100644 (file)
@@ -21,7 +21,7 @@ from Table import Table
 #\r
 # This class defined a table used for function\r
 # \r
-# @param object:       Inherited from object class\r
+# @param Table:       Inherited from Table class\r
 #\r
 class TableFunction(Table):\r
     def __init__(self, Cursor):\r
@@ -41,6 +41,8 @@ class TableFunction(Table):
     # @param StartColumn:      StartColumn of a Function\r
     # @param EndLine:          EndLine of a Function\r
     # @param EndColumn:        EndColumn of a Function\r
+    # @param BodyStartLine:    StartLine of a Function body\r
+    # @param BodyStartColumn:  StartColumn of a Function body\r
     # @param BelongsToFile:    The Function belongs to which file\r
     #\r
     def Create(self):\r
@@ -53,6 +55,8 @@ class TableFunction(Table):
                                                        StartColumn INTEGER NOT NULL,\r
                                                        EndLine INTEGER NOT NULL,\r
                                                        EndColumn INTEGER NOT NULL,\r
+                                                       BodyStartLine INTEGER NOT NULL,\r
+                                                       BodyStartColumn INTEGER NOT NULL,\r
                                                        BelongsToFile SINGLE NOT NULL\r
                                                       )""" % self.Table\r
         Table.Create(self, SqlCommand)\r
@@ -70,9 +74,11 @@ class TableFunction(Table):
     # @param StartColumn:      StartColumn of a Function\r
     # @param EndLine:          EndLine of a Function\r
     # @param EndColumn:        EndColumn of a Function\r
+    # @param BodyStartLine:    StartLine of a Function body\r
+    # @param BodyStartColumn:  StartColumn of a Function body\r
     # @param BelongsToFile:    The Function belongs to which file\r
     #\r
-    def Insert(self, ID, Header, Modifier, Name, ReturnStatement, StartLine, StartColumn, EndLine, EndColumn, BelongsToFile):\r
-        SqlCommand = """insert into %s values(%s, '%s', '%s', '%s', '%s', %s, %s, %s, %s, %s)""" \\r
-                                           % (self.Table, ID, Header, Modifier, Name, ReturnStatement, StartLine, StartColumn, EndLine, EndColumn, BelongsToFile)\r
+    def Insert(self, ID, Header, Modifier, Name, ReturnStatement, StartLine, StartColumn, EndLine, EndColumn, BodyStartLine, BodyStartColumn, BelongsToFile):\r
+        SqlCommand = """insert into %s values(%s, '%s', '%s', '%s', '%s', %s, %s, %s, %s, %s, %s, %s)""" \\r
+                                    % (self.Table, ID, Header, Modifier, Name, ReturnStatement, StartLine, StartColumn, EndLine, EndColumn, BodyStartLine, BodyStartColumn, BelongsToFile)\r
         Table.Insert(self, SqlCommand)\r