1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
|
## @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 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"\" \""
|