## @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.<BR>
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution.  The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#

#
# 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

#
# 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 ACSII char
GeneralCheckNonAcsii = 1
# Check whether UNI file is valid
GeneralCheckUni = 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
