## @file # This file is used to set configuration of ECC tool # For the items listed below, 1 means valid, 0 means invalid # # Copyright (c) 2007 - 2015, Intel Corporation. All rights reserved.
# SPDX-License-Identifier: BSD-2-Clause-Patent # # # Identify the version of current configuration # Version = 0.1 # # Identify to if check all items # 1 - Check all items and ignore all other detailed items # 0 - Not check all items, the tool will go through all other detailed items to decide to check or not # CheckAll = 0 # # Identify to if automatically correct mistakes # 1 - Automatically correct # 0 - Not automatically correct # Only the following check points can be automatically corrected, others not listed below are not supported even it is 1 # # GeneralCheckTab # GeneralCheckIndentation # GeneralCheckLine # GeneralCheckCarriageReturn # SpaceCheckAll # AutoCorrect = 1 # # List customized Modifer here, split with ',' # ModifierList = IN, OUT, OPTIONAL, UNALIGNED, EFI_RUNTIMESERVICE, EFI_BOOTSERVICE, EFIAPI, TPMINTERNALAPI, STATIC, static # # General Checking # GeneralCheckAll = 0 # Check whether NO Tab is used, replaced with spaces GeneralCheckNoTab = 1 # The width of Tab GeneralCheckTabWidth = 2 # Check whether the indentation is followed coding style GeneralCheckIndentation = 1 # The width of indentation GeneralCheckIndentationWidth = 2 # Check whether no line is exceeding defined widty GeneralCheckLine = 1 # The width of a line GeneralCheckLineWidth = 120 # Check whether no use of _asm in the source file GeneralCheckNo_Asm = 1 # Check whether no use of "#progma" in source file except "#pragma pack(#)". GeneralCheckNoProgma = 1 # Check whether there is a carriage return at the end of the file GeneralCheckCarriageReturn = 1 # Check whether the file exists GeneralCheckFileExistence = 1 # Check whether file has non ASCII char GeneralCheckNonAscii = 1 # Check whether UNI file is valid GeneralCheckUni = 1 # Check Only use CRLF (Carriage Return Line Feed) line endings. GeneralCheckLineEnding = 1 # Check if there is no trailing white space in one line. GeneralCheckTrailingWhiteSpaceLine = 1 # # Space Checking # SpaceCheckAll = 1 # # Predicate Expression Checking # PredicateExpressionCheckAll = 0 # Check whether Boolean values, variable type BOOLEAN not use explicit comparisons to TRUE or FALSE PredicateExpressionCheckBooleanValue = 1 # Check whether Non-Boolean comparisons use a compare operator (==, !=, >, < >=, <=). PredicateExpressionCheckNonBooleanOperator = 1 # Check whether a comparison of any pointer to zero must be done via the NULL type PredicateExpressionCheckComparisonNullType = 1 # # Headers Checking # HeaderCheckAll = 0 # Check whether File header exists HeaderCheckFile = 1 # Check whether Function header exists HeaderCheckFunction = 1 # Check whether Meta data File header Comment End with '##' HeaderCheckFileCommentEnd = 0 # Check whether C File header Comment content start with two spaces HeaderCheckCFileCommentStartSpacesNum = 0 # Check whether C File header Comment's each reference at list should begin with a bullet character '-' HeaderCheckCFileCommentReferenceFormat = 0 # Check whether C File header Comment have the License immediately after the ""Copyright"" line HeaderCheckCFileCommentLicenseFormat = 0 # # C Function Layout Checking # CFunctionLayoutCheckAll = 0 # Check whether return type exists and in the first line CFunctionLayoutCheckReturnType = 1 # Check whether any optional functional modifiers exist and next to the return type CFunctionLayoutCheckOptionalFunctionalModifier = 1 # Check whether the next line contains the function name, left justified, followed by the beginning of the parameter list # Check whether the closing parenthesis is on its own line and also indented two spaces CFunctionLayoutCheckFunctionName = 1 # Check whether the function prototypes in include files have the same form as function definitions CFunctionLayoutCheckFunctionPrototype = 1 # Check whether the body of a function is contained by open and close braces that must be in the first column CFunctionLayoutCheckFunctionBody = 1 # Check whether the data declarations is the first code in a module. CFunctionLayoutCheckDataDeclaration = 1 # Check whether no initialization of a variable as part of its declaration CFunctionLayoutCheckNoInitOfVariable = 1 # Check whether no use of STATIC for functions CFunctionLayoutCheckNoStatic = 1 # # Include Files Checking # IncludeFileCheckAll = 0 #Check whether having include files with same name IncludeFileCheckSameName = 1 # Check whether all include file contents is guarded by a #ifndef statement. # the #ifndef must be the first line of code following the file header comment # the #endif must appear on the last line in the file IncludeFileCheckIfndefStatement = 1 # Check whether include files contain only public or only private data # Check whether include files NOT contain code or define data variables IncludeFileCheckData = 1 # # Declarations and Data Types Checking # DeclarationDataTypeCheckAll = 0 # Check whether no use of int, unsigned, char, void, static, long in any .c, .h or .asl files. DeclarationDataTypeCheckNoUseCType = 1 # 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 DeclarationDataTypeCheckInOutModifier = 1 # Check whether the EFIAPI modifier should be used at the entry of drivers, events, and member functions of protocols DeclarationDataTypeCheckEFIAPIModifier = 1 # Check whether Enumerated Type has a 'typedef' and the name is capital DeclarationDataTypeCheckEnumeratedType = 1 # Check whether Structure Type has a 'typedef' and the name is capital DeclarationDataTypeCheckStructureDeclaration = 1 # Check whether having same Structure DeclarationDataTypeCheckSameStructure = 1 # Check whether Union Type has a 'typedef' and the name is capital DeclarationDataTypeCheckUnionType = 1 # # Naming Conventions Checking # NamingConventionCheckAll = 0 # Check whether only capital letters are used for #define declarations NamingConventionCheckDefineStatement = 1 # Check whether only capital letters are used for typedef declarations NamingConventionCheckTypedefStatement = 1 # Check whether the #ifndef at the start of an include file uses both prefix and postfix underscore characters, '_'. NamingConventionCheckIfndefStatement = 1 # Rule for path name, variable name and function name # 1. First character should be upper case # 2. Existing lower case in a word # 3. No space existence # 4. Global variable name must start by a 'g' # Check whether the path name followed the rule NamingConventionCheckPathName = 1 # Check whether the variable name followed the rule NamingConventionCheckVariableName = 1 # Check whether the function name followed the rule NamingConventionCheckFunctionName = 1 # Check whether NO use short variable name with single character NamingConventionCheckSingleCharacterVariable = 1 # # Doxygen Checking # DoxygenCheckAll = 0 # Check whether the file headers are followed Doxygen special documentation blocks in section 2.3.5 DoxygenCheckFileHeader = 1 # Check whether the function headers are followed Doxygen special documentation blocks in section 2.3.5 DoxygenCheckFunctionHeader = 1 # Check whether the first line of text in a comment block is a brief description of the element being documented. # The brief description must end with a period. DoxygenCheckCommentDescription = 1 # Check whether comment lines with '///< ... text ...' format, if it is used, it should be after the code section. DoxygenCheckCommentFormat = 1 # Check whether only Doxygen commands allowed to mark the code are @bug and @todo. DoxygenCheckCommand = 1 # # Meta-Data File Processing Checking # MetaDataFileCheckAll = 0 # Check whether each file defined in meta-data exists MetaDataFileCheckPathName = 1 # Generate a list for all files defined in meta-data files MetaDataFileCheckGenerateFileList = 1 # The path of log file MetaDataFileCheckPathOfGenerateFileList = File.log # Check whether all Library Instances defined for a given module (or dependent library instance) match the module's type. # Each Library Instance must specify the Supported Module Types in its INF file, # and any module specifying the library instance must be one of the supported types. MetaDataFileCheckLibraryInstance = 1 # Check whether a Library Instance has been defined for all dependent library classes MetaDataFileCheckLibraryInstanceDependent = 1 # Check whether the Library Instances specified by the LibraryClasses sections are listed in order of dependencies MetaDataFileCheckLibraryInstanceOrder = 1 # Check whether the unnecessary inclusion of library classes in the INF file MetaDataFileCheckLibraryNoUse = 1 # Check the header file in Include\Library directory whether be defined in the package DEC file. MetaDataFileCheckLibraryDefinedInDec = 1 # 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 MetaDataFileCheckBinaryInfInFdf = 1 # Not to report error and warning related OS include file such as "windows.h" and "stdio.h". # Check whether a PCD is set in a DSC file or the FDF file, but not in both. MetaDataFileCheckPcdDuplicate = 1 # Check whether PCD settings in the FDF file can only be related to flash. MetaDataFileCheckPcdFlash = 1 # Check whether PCDs used in INF files but not specified in DSC or FDF files MetaDataFileCheckPcdNoUse = 0 # Check whether having duplicate guids defined for Guid/Protocol/Ppi MetaDataFileCheckGuidDuplicate = 1 # Check whether all files under module directory are described in INF files MetaDataFileCheckModuleFileNoUse = 1 # Check whether the PCD is correctly used in C function via its type MetaDataFileCheckPcdType = 1 # Check whether there are FILE_GUID duplication among different INF files MetaDataFileCheckModuleFileGuidDuplication = 1 # # Uni File Processing Checking # UniCheckAll = 0 # Check INF or DEC file whether defined the localized information in the associated UNI file. UniCheckHelpInfo = 1 # Check PCD whether defined the prompt, help in the DEC file and localized information in the associated UNI file. UniCheckPCDInfo = 1 # Uncheck whether UNI file is in UTF-16 format GeneralCheckUni = -1 # # SMM Communicate Function Parameter Checking # SmmCommParaCheckAll = 0 # Check if the EFI_SMM_COMMUNICATION_PROTOCOL parameter buffer type is Reserved / ACPI NVS or UEFI RT code/data SmmCommParaCheckBufferType = 1 # # The check points in this section are reserved # # GotoStatementCheckAll = 0 # SpellingCheckAll = 0 # # A list for binary file ext name BinaryExtList = EXE, EFI, FV, ROM, DLL, COM, BMP, GIF, PYD, CMP, BIN, JPG, UNI, RAW, COM2, LIB, DEPEX, SYS, DB # A list for only scanning dirs, the dirs should be the top folder(s) under workspace ScanOnlyDirList = ScanFolder1 ScanFolder2 # A list for Used to circumvent special strings TokenReleaceList = L'', L'\"', L"\"", L''', L""", L"\"\"", L"\"^", L" \"", L"\" \""