## @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>
# 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 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 include files contain only public or only private data
# Check whether include files NOT contain code or define data variables
IncludeFileCheckData = 1
# Check whether include files use '#pragma once' instead of a traditional #ifndef/#define include guard
IncludeFileCheckPragmaOnce = 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
# 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"\" \""
