2 # Standardized Error Hanlding infrastructures.
4 # Copyright (c) 20087, Intel Corporation
5 # All rights reserved. This program and the accompanying materials
6 # are licensed and made available under the terms and conditions of the BSD License
7 # which accompanies this distribution. The full text of the license may be found at
8 # http://opensource.org/licenses/bsd-license.php
10 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14 ERROR_GENERAL_CHECK_ALL
= 1000
15 ERROR_GENERAL_CHECK_NO_TAB
= 1001
16 ERROR_GENERAL_CHECK_INDENTATION
= 1002
17 ERROR_GENERAL_CHECK_LINE
= 1003
18 ERROR_GENERAL_CHECK_NO_ASM
= 1004
19 ERROR_GENERAL_CHECK_NO_PROGMA
= 1005
20 ERROR_GENERAL_CHECK_CARRIAGE_RETURN
= 1006
21 ERROR_GENERAL_CHECK_FILE_EXISTENCE
= 1007
23 ERROR_SPACE_CHECK_ALL
= 2000
25 ERROR_PREDICATE_EXPRESSION_CHECK_ALL
= 3000
26 ERROR_PREDICATE_EXPRESSION_CHECK_BOOLEAN_VALUE
= 3001
27 ERROR_PREDICATE_EXPRESSION_CHECK_NO_BOOLEAN_OPERATOR
= 3002
28 ERROR_PREDICATE_EXPRESSION_CHECK_COMPARISON_NULL_TYPE
= 3003
30 ERROR_HEADER_CHECK_ALL
= 4000
31 ERROR_HEADER_CHECK_FILE
= 4001
32 ERROR_HEADER_CHECK_FUNCTION
= 4002
34 ERROR_C_FUNCTION_LAYOUT_CHECK_ALL
= 5000
35 ERROR_C_FUNCTION_LAYOUT_CHECK_RETURN_TYPE
= 5001
36 ERROR_C_FUNCTION_LAYOUT_CHECK_OPTIONAL_FUNCTIONAL_MODIFIER
= 5002
37 ERROR_C_FUNCTION_LAYOUT_CHECK_FUNCTION_NAME
= 5003
38 ERROR_C_FUNCTION_LAYOUT_CHECK_FUNCTION_PROTO_TYPE
= 5004
39 ERROR_C_FUNCTION_LAYOUT_CHECK_FUNCTION_BODY
= 5005
40 ERROR_C_FUNCTION_LAYOUT_CHECK_DATA_DECLARATION
= 5006
41 ERROR_C_FUNCTION_LAYOUT_CHECK_NO_INIT_OF_VARIABLE
= 5007
42 ERROR_C_FUNCTION_LAYOUT_CHECK_NO_STATIC
= 5008
44 ERROR_INCLUDE_FILE_CHECK_ALL
= 6000
45 ERROR_INCLUDE_FILE_CHECK_IFNDEF_STATEMENT_1
= 6001
46 ERROR_INCLUDE_FILE_CHECK_IFNDEF_STATEMENT_2
= 6002
47 ERROR_INCLUDE_FILE_CHECK_IFNDEF_STATEMENT_3
= 6003
48 ERROR_INCLUDE_FILE_CHECK_DATA
= 6004
49 ERROR_INCLUDE_FILE_CHECK_NAME
= 6005
51 ERROR_DECLARATION_DATA_TYPE_CHECK_ALL
= 7000
52 ERROR_DECLARATION_DATA_TYPE_CHECK_NO_USE_C_TYPE
= 7001
53 ERROR_DECLARATION_DATA_TYPE_CHECK_IN_OUT_MODIFIER
= 7002
54 ERROR_DECLARATION_DATA_TYPE_CHECK_EFI_API_MODIFIER
= 7003
55 ERROR_DECLARATION_DATA_TYPE_CHECK_ENUMERATED_TYPE
= 7004
56 ERROR_DECLARATION_DATA_TYPE_CHECK_STRUCTURE_DECLARATION
= 7005
57 ERROR_DECLARATION_DATA_TYPE_CHECK_SAME_STRUCTURE
= 7007
58 ERROR_DECLARATION_DATA_TYPE_CHECK_UNION_TYPE
= 7006
59 ERROR_DECLARATION_DATA_TYPE_CHECK_NESTED_STRUCTURE
= 7008
61 ERROR_NAMING_CONVENTION_CHECK_ALL
= 8000
62 ERROR_NAMING_CONVENTION_CHECK_DEFINE_STATEMENT
= 8001
63 ERROR_NAMING_CONVENTION_CHECK_TYPEDEF_STATEMENT
= 8002
64 ERROR_NAMING_CONVENTION_CHECK_IFNDEF_STATEMENT
= 8003
65 ERROR_NAMING_CONVENTION_CHECK_PATH_NAME
= 8004
66 ERROR_NAMING_CONVENTION_CHECK_VARIABLE_NAME
= 8005
67 ERROR_NAMING_CONVENTION_CHECK_FUNCTION_NAME
= 8006
68 ERROR_NAMING_CONVENTION_CHECK_SINGLE_CHARACTER_VARIABLE
= 8007
70 ERROR_DOXYGEN_CHECK_ALL
= 9000
71 ERROR_DOXYGEN_CHECK_FILE_HEADER
= 9001
72 ERROR_DOXYGEN_CHECK_FUNCTION_HEADER
= 9002
73 ERROR_DOXYGEN_CHECK_COMMENT_DESCRIPTION
= 9003
74 ERROR_DOXYGEN_CHECK_COMMENT_FORMAT
= 9004
75 ERROR_DOXYGEN_CHECK_COMMAND
= 9005
77 ERROR_META_DATA_FILE_CHECK_ALL
= 10000
78 ERROR_META_DATA_FILE_CHECK_PATH_NAME
= 10001
79 ERROR_META_DATA_FILE_CHECK_LIBRARY_INSTANCE_1
= 10002
80 ERROR_META_DATA_FILE_CHECK_LIBRARY_INSTANCE_2
= 10003
81 ERROR_META_DATA_FILE_CHECK_LIBRARY_INSTANCE_DEPENDENT
= 10004
82 ERROR_META_DATA_FILE_CHECK_LIBRARY_INSTANCE_ORDER
= 10005
83 ERROR_META_DATA_FILE_CHECK_LIBRARY_NO_USE
= 10006
84 ERROR_META_DATA_FILE_CHECK_BINARY_INF_IN_FDF
= 10007
85 ERROR_META_DATA_FILE_CHECK_PCD_DUPLICATE
= 10008
86 ERROR_META_DATA_FILE_CHECK_PCD_FLASH
= 10009
87 ERROR_META_DATA_FILE_CHECK_PCD_NO_USE
= 10010
88 ERROR_META_DATA_FILE_CHECK_DUPLICATE_GUID
= 10011
89 ERROR_META_DATA_FILE_CHECK_DUPLICATE_PROTOCOL
= 10012
90 ERROR_META_DATA_FILE_CHECK_DUPLICATE_PPI
= 10013
91 ERROR_META_DATA_FILE_CHECK_MODULE_FILE_NO_USE
= 10014
92 ERROR_META_DATA_FILE_CHECK_PCD_TYPE
= 10015
94 ERROR_SPELLING_CHECK_ALL
= 11000
97 ERROR_GENERAL_CHECK_ALL
: "",
98 ERROR_GENERAL_CHECK_NO_TAB
: "'TAB' character is not allowed in source code, please replace each 'TAB' with two spaces",
99 ERROR_GENERAL_CHECK_INDENTATION
: "Indentation does not follow coding style",
100 ERROR_GENERAL_CHECK_LINE
: "The width of each line does not follow coding style",
101 ERROR_GENERAL_CHECK_NO_ASM
: "There should be no use of _asm in the source file",
102 ERROR_GENERAL_CHECK_NO_PROGMA
: """There should be no use of "#progma" in source file except "#pragma pack(#)\"""",
103 ERROR_GENERAL_CHECK_CARRIAGE_RETURN : "There should be a carriage return at the end of the file",
104 ERROR_GENERAL_CHECK_FILE_EXISTENCE : "File not found",
106 ERROR_SPACE_CHECK_ALL : "",
108 ERROR_PREDICATE_EXPRESSION_CHECK_ALL : "",
109 ERROR_PREDICATE_EXPRESSION_CHECK_BOOLEAN_VALUE : "Boolean values and variable type BOOLEAN should not use explicit comparisons to TRUE or FALSE",
110 ERROR_PREDICATE_EXPRESSION_CHECK_NO_BOOLEAN_OPERATOR : "Non-Boolean comparisons should use a compare operator (==, !=, >, < >=, <=)",
111 ERROR_PREDICATE_EXPRESSION_CHECK_COMPARISON_NULL_TYPE : "A comparison of any pointer to zero must be done via the NULL type",
113 ERROR_HEADER_CHECK_ALL : "",
114 ERROR_HEADER_CHECK_FILE : "File header doesn't exist",
115 ERROR_HEADER_CHECK_FUNCTION : "Function header doesn't exist",
117 ERROR_C_FUNCTION_LAYOUT_CHECK_ALL : "",
118 ERROR_C_FUNCTION_LAYOUT_CHECK_RETURN_TYPE : "Return type of a function should exist and in the first line",
119 ERROR_C_FUNCTION_LAYOUT_CHECK_OPTIONAL_FUNCTIONAL_MODIFIER : "Any optional functional modifiers should exist and next to the return type",
120 ERROR_C_FUNCTION_LAYOUT_CHECK_FUNCTION_NAME : """Function name should be left justified
, followed by the beginning of the parameter
list, with the closing parenthesis on its own line
, indented two spaces
""",
121 ERROR_C_FUNCTION_LAYOUT_CHECK_FUNCTION_PROTO_TYPE : "Function prototypes in include files have the same form as function definitions",
122 ERROR_C_FUNCTION_LAYOUT_CHECK_FUNCTION_BODY : "The body of a function should be contained by open and close braces that must be in the first column",
123 ERROR_C_FUNCTION_LAYOUT_CHECK_DATA_DECLARATION : "The data declarations should be the first code in a module",
124 ERROR_C_FUNCTION_LAYOUT_CHECK_NO_INIT_OF_VARIABLE : "There should be no initialization of a variable as part of its declaration",
125 ERROR_C_FUNCTION_LAYOUT_CHECK_NO_STATIC : "There should be no use of STATIC for functions",
127 ERROR_INCLUDE_FILE_CHECK_ALL : "",
128 ERROR_INCLUDE_FILE_CHECK_IFNDEF_STATEMENT_1 : "All include file contents should be guarded by a #ifndef statement.",
129 ERROR_INCLUDE_FILE_CHECK_IFNDEF_STATEMENT_2 : "The #ifndef must be the first line of code following the file header comment",
130 ERROR_INCLUDE_FILE_CHECK_IFNDEF_STATEMENT_3 : "The #endif must appear on the last line in the file",
131 ERROR_INCLUDE_FILE_CHECK_DATA : "Include files should contain only public or only private data and cannot contain code or define data variables",
132 ERROR_INCLUDE_FILE_CHECK_NAME : "No permission for the inlcude file with same names",
134 ERROR_DECLARATION_DATA_TYPE_CHECK_ALL : "",
135 ERROR_DECLARATION_DATA_TYPE_CHECK_NO_USE_C_TYPE : "There should be no use of int, unsigned, char, void, static, long in any .c, .h or .asl files",
136 ERROR_DECLARATION_DATA_TYPE_CHECK_IN_OUT_MODIFIER : """The modifiers IN
, OUT
, OPTIONAL
, and UNALIGNED should be used only to qualify arguments to a function
and should
not appear
in a data
type declaration
""",
137 ERROR_DECLARATION_DATA_TYPE_CHECK_EFI_API_MODIFIER : "The EFIAPI modifier should be used at the entry of drivers, events, and member functions of protocols",
138 ERROR_DECLARATION_DATA_TYPE_CHECK_ENUMERATED_TYPE : "Enumerated Type should have a 'typedef' and the name must be in capital letters",
139 ERROR_DECLARATION_DATA_TYPE_CHECK_STRUCTURE_DECLARATION : "Structure Type should have a 'typedef' and the name must be in capital letters",
140 ERROR_DECLARATION_DATA_TYPE_CHECK_SAME_STRUCTURE : "No permission for the structure with same names",
141 ERROR_DECLARATION_DATA_TYPE_CHECK_UNION_TYPE : "Union Type should have a 'typedef' and the name must be in capital letters",
142 ERROR_DECLARATION_DATA_TYPE_CHECK_NESTED_STRUCTURE : "Complex types should be typedef-ed",
144 ERROR_NAMING_CONVENTION_CHECK_ALL : "",
145 ERROR_NAMING_CONVENTION_CHECK_DEFINE_STATEMENT : "Only capital letters are allowed to be used for #define declarations",
146 ERROR_NAMING_CONVENTION_CHECK_TYPEDEF_STATEMENT : "Only capital letters are allowed to be used for typedef declarations",
147 ERROR_NAMING_CONVENTION_CHECK_IFNDEF_STATEMENT : "The #ifndef at the start of an include file should use both prefix and postfix underscore characters, '_'",
148 ERROR_NAMING_CONVENTION_CHECK_PATH_NAME : """Path name does
not follow the rules
: 1. First character should be upper case
2. Must contain lower case characters
3. No white space characters
""",
149 ERROR_NAMING_CONVENTION_CHECK_VARIABLE_NAME : """Variable name does
not follow the rules
: 1. First character should be upper case
2. Must contain lower case characters
3. No white space characters
4. Global variable name must start with a
'g'""",
150 ERROR_NAMING_CONVENTION_CHECK_FUNCTION_NAME : """Function name does
not follow the rules
: 1. First character should be upper case
2. Must contain lower case characters
3. No white space characters
""",
151 ERROR_NAMING_CONVENTION_CHECK_SINGLE_CHARACTER_VARIABLE : "There should be no use of short (single character) variable names",
153 ERROR_DOXYGEN_CHECK_ALL : "",
154 ERROR_DOXYGEN_CHECK_FILE_HEADER : "The file headers should follow Doxygen special documentation blocks in section 2.3.5",
155 ERROR_DOXYGEN_CHECK_FUNCTION_HEADER : "The function headers should follow Doxygen special documentation blocks in section 2.3.5",
156 ERROR_DOXYGEN_CHECK_COMMENT_DESCRIPTION : """The first line of text
in a comment block should be a brief description of the element being documented
and the brief description must end with a period
.""",
157 ERROR_DOXYGEN_CHECK_COMMENT_FORMAT : "For comment line with '///< ... text ...' format, if it is used, it should be after the code section",
158 ERROR_DOXYGEN_CHECK_COMMAND : "Only Doxygen commands @bug and @todo are allowed to mark the code",
160 ERROR_META_DATA_FILE_CHECK_ALL : "",
161 ERROR_META_DATA_FILE_CHECK_PATH_NAME : "The file defined in meta-data does not exist",
162 ERROR_META_DATA_FILE_CHECK_LIBRARY_INSTANCE_1 : "A library instances defined for a given module (or dependent library instance) doesn't match the module's type.",
163 ERROR_META_DATA_FILE_CHECK_LIBRARY_INSTANCE_2 : "A library instance must specify the Supported Module Types in its INF file",
164 ERROR_META_DATA_FILE_CHECK_LIBRARY_INSTANCE_DEPENDENT : "A library instance must be defined for all dependent library classes",
165 ERROR_META_DATA_FILE_CHECK_LIBRARY_INSTANCE_ORDER : "The library Instances specified by the LibraryClasses sections should be listed in order of dependencies",
166 ERROR_META_DATA_FILE_CHECK_LIBRARY_NO_USE : "There should be no unnecessary inclusion of library classes in the INF file",
167 ERROR_META_DATA_FILE_CHECK_BINARY_INF_IN_FDF : "An INF file is specified in the FDF file, but not in the DSC file, therefore the INF file must be for a Binary module only",
168 ERROR_META_DATA_FILE_CHECK_PCD_DUPLICATE : "Duplicate PCDs found",
169 ERROR_META_DATA_FILE_CHECK_PCD_FLASH : "PCD settings in the FDF file should only be related to flash",
170 ERROR_META_DATA_FILE_CHECK_PCD_NO_USE : "There should be no PCDs declared in INF files that are not specified in in either a DSC or FDF file",
171 ERROR_META_DATA_FILE_CHECK_DUPLICATE_GUID : "Duplicate GUID found",
172 ERROR_META_DATA_FILE_CHECK_DUPLICATE_PROTOCOL : "Duplicate PROTOCOL found",
173 ERROR_META_DATA_FILE_CHECK_DUPLICATE_PPI : "Duplicate PPI found",
174 ERROR_META_DATA_FILE_CHECK_MODULE_FILE_NO_USE : "No used module files found",
175 ERROR_META_DATA_FILE_CHECK_PCD_TYPE : "Wrong C code function used for this kind of PCD",
177 ERROR_SPELLING_CHECK_ALL : "",