fcml  1.2.2
fcml_errors.h
Go to the documentation of this file.
1 /*
2  * FCML - Free Code Manipulation Library.
3  * Copyright (C) 2010-2019 Slawomir Wojtasiak
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18  */
19 
26 #ifndef FCML_ASM_ERRORS_H_
27 #define FCML_ASM_ERRORS_H_
28 
29 #include "fcml_lib_export.h"
30 
31 #include "fcml_types.h"
32 
93  /* Decorator is invalid. For example wrong register type is used in
94  * opmask decorator. */
95  FCML_CEH_GEC_INVALID_OPERAND_DECORATOR = 24
96 };
97 
143 };
144 
151 };
152 
156 typedef fcml_uint16_t fcml_ceh_error;
157 
166 
168 typedef struct fcml_st_ceh_error_info {
172  fcml_string message;
178 
186 
187 #endif /* FCML_ASM_ERRORS_H_ */
FCML_CEH_GEC_INTERNAL_ERROR
@ FCML_CEH_GEC_INTERNAL_ERROR
An internal error occurred.
Definition: fcml_errors.h:49
FCML_CEH_GEC_INVALID_INSTRUCTION_FORM
@ FCML_CEH_GEC_INVALID_INSTRUCTION_FORM
Unsupported instruction form (Instruction may be supported, but not with given set of operands).
Definition: fcml_errors.h:65
fcml_st_ceh_error_info::message
fcml_string message
Error message.
Definition: fcml_errors.h:172
FCML_CEH_GEC_UNDEFINED_SYMBOL
@ FCML_CEH_GEC_UNDEFINED_SYMBOL
Error returned by parsers when there is undefined symbol used.
Definition: fcml_errors.h:84
FCML_CEH_MEC_ERROR_INVALID_SYNTAX
@ FCML_CEH_MEC_ERROR_INVALID_SYNTAX
Syntax error from parser.
Definition: fcml_errors.h:132
FCML_CEH_GEC_INVALID_REGISTER_TYPE
@ FCML_CEH_GEC_INVALID_REGISTER_TYPE
Wrong register type.
Definition: fcml_errors.h:80
FCML_CEH_MEC_ERROR_HLE_MORE_THAN_ONE_PREFIX
@ FCML_CEH_MEC_ERROR_HLE_MORE_THAN_ONE_PREFIX
There is more than one HLE prefix.
Definition: fcml_errors.h:122
FCML_CEH_MEC_ERROR_ILLEGAL_SEG_REG_OVERRIDE
@ FCML_CEH_MEC_ERROR_ILLEGAL_SEG_REG_OVERRIDE
Segment register can not be overridden.
Definition: fcml_errors.h:114
FCML_CEH_GEC_OUT_OF_MEMORY
@ FCML_CEH_GEC_OUT_OF_MEMORY
There is not enough memory to complete operation.
Definition: fcml_errors.h:44
FCML_CEH_GEC_INVALID_OPERATING_MODE
@ FCML_CEH_GEC_INVALID_OPERATING_MODE
Unsupported operating mode.
Definition: fcml_errors.h:60
fcml_en_ceh_message_warnings
fcml_en_ceh_message_warnings
Codes for textual warnings.
Definition: fcml_errors.h:146
FCML_CEH_MEC_ERROR_VALUE_OUT_OF_RANGE
@ FCML_CEH_MEC_ERROR_VALUE_OUT_OF_RANGE
Value out of range, for example 32 bit value used as segment selector.
Definition: fcml_errors.h:130
FCML_CEH_GEC_INVALID_INPUT
@ FCML_CEH_GEC_INVALID_INPUT
Invalid function arguments.
Definition: fcml_errors.h:46
fcml_lib_export.h
fcml_st_ceh_error_info::code
fcml_ceh_error code
Error code.
Definition: fcml_errors.h:174
FCML_CEH_MEC_ERROR_INVALID_PSEUDO_OPCODE_VALUE
@ FCML_CEH_MEC_ERROR_INVALID_PSEUDO_OPCODE_VALUE
Unsupported pseudo-op value.
Definition: fcml_errors.h:118
fcml_ceh_error
fcml_uint16_t fcml_ceh_error
All error codes should be held in variables of this type.
Definition: fcml_errors.h:156
fcml_en_ceh_message_errors
fcml_en_ceh_message_errors
Error codes dedicated to textual messages.
Definition: fcml_errors.h:112
FCML_CEH_MEC_ERROR_WRONG_VALUE_FORMAT
@ FCML_CEH_MEC_ERROR_WRONG_VALUE_FORMAT
Wrong value type used in given context.
Definition: fcml_errors.h:127
fcml_st_ceh_error_container
struct fcml_st_ceh_error_container fcml_st_ceh_error_container
Container for all collected errors and warnings.
FCML_EN_CEH_EL_ERROR
@ FCML_EN_CEH_EL_ERROR
Errors are reported when something more important happened and processing should be stopped.
Definition: fcml_errors.h:164
FCML_CEH_GEC_FEATURE_NOT_SUPPORTED
@ FCML_CEH_GEC_FEATURE_NOT_SUPPORTED
Chosen operation is not supported in case of given configuration.
Definition: fcml_errors.h:57
FCML_CEH_GEC_INVALID_REGISTER
@ FCML_CEH_GEC_INVALID_REGISTER
Wrong register.
Definition: fcml_errors.h:82
FCML_CEH_GEC_UNKNOWN_INSTRUCTION
@ FCML_CEH_GEC_UNKNOWN_INSTRUCTION
User chosen unsupported addressing form.
Definition: fcml_errors.h:75
FCML_CEH_MEC_ERROR_SYMBOL_ALREADY_DEFINED
@ FCML_CEH_MEC_ERROR_SYMBOL_ALREADY_DEFINED
Symbol is already defined in parser's symbol table.
Definition: fcml_errors.h:136
FCML_CEH_GEC_EOF
@ FCML_CEH_GEC_EOF
Incomplete instruction.
Definition: fcml_errors.h:53
FCML_CEH_MEC_ERROR_INVALID_VECTOR_LENGTH
@ FCML_CEH_MEC_ERROR_INVALID_VECTOR_LENGTH
Invalid vector length size.
Definition: fcml_errors.h:142
FCML_CEH_MEC_ERROR_UNDEFINED_SYMBOL
@ FCML_CEH_MEC_ERROR_UNDEFINED_SYMBOL
Symbol is undefined.
Definition: fcml_errors.h:138
fcml_st_ceh_error_info::next_error
struct fcml_st_ceh_error_info * next_error
Next error/warning on the list.
Definition: fcml_errors.h:170
fcml_st_ceh_error_info::level
fcml_en_ceh_error_level level
Error level.
Definition: fcml_errors.h:176
FCML_CEH_MEC_ERROR_PARSED_LINE_TOO_LONG
@ FCML_CEH_MEC_ERROR_PARSED_LINE_TOO_LONG
Parsed line exceed maximal allowed length.
Definition: fcml_errors.h:140
FCML_CEH_MEC_ERROR_DIVISION_BY_0
@ FCML_CEH_MEC_ERROR_DIVISION_BY_0
Expression attempts to divide by 0.
Definition: fcml_errors.h:124
FCML_CEH_GEC_UNKNOWN_MNEMONIC
@ FCML_CEH_GEC_UNKNOWN_MNEMONIC
Unknown mnemonic.
Definition: fcml_errors.h:69
FCML_CEH_GEC_INVALID_ADDRESS_SIZE
@ FCML_CEH_GEC_INVALID_ADDRESS_SIZE
Address size (Address size attribute) is not allowed in given context.
Definition: fcml_errors.h:73
FCML_CEH_MEC_ERROR_HLE_PREFIX_NOT_ALLOWED
@ FCML_CEH_MEC_ERROR_HLE_PREFIX_NOT_ALLOWED
HLE prefix is not allowed in given context.
Definition: fcml_errors.h:120
FCML_CEH_GEC_NOT_INITIALIZED
@ FCML_CEH_GEC_NOT_INITIALIZED
Component hasn't been initialized yet.
Definition: fcml_errors.h:51
FCML_CEH_GEC_NOT_SUPPORTED_DECORATOR
@ FCML_CEH_GEC_NOT_SUPPORTED_DECORATOR
Given operand decorator is not supported by operand.
Definition: fcml_errors.h:90
fcml_st_ceh_error_container::last_error
fcml_st_ceh_error_info * last_error
Pointer to the last error/warning on the list.
Definition: fcml_errors.h:184
FCML_EN_CEH_EL_WARN
@ FCML_EN_CEH_EL_WARN
Warnings are reported when processing does not need to be stopped.
Definition: fcml_errors.h:161
FCML_CEH_MEC_ERROR_INVALID_REGISTER_TYPE_SEG
@ FCML_CEH_MEC_ERROR_INVALID_REGISTER_TYPE_SEG
Wrong register type used in place of segment register.
Definition: fcml_errors.h:134
fcml_st_ceh_error_info
struct fcml_st_ceh_error_info fcml_st_ceh_error_info
Information about one particular error/warning.
FCML_CEH_GEC_INVALID_PREFIX
@ FCML_CEH_GEC_INVALID_PREFIX
Assembler can return this error code if there is not allowed prefix defined for given instruction.
Definition: fcml_errors.h:78
FCML_CEH_GEC_NO_ERROR
@ FCML_CEH_GEC_NO_ERROR
Operation succeed.
Definition: fcml_errors.h:42
FCML_CEH_GEC_UNSUPPORTED_LABEL_DECLARATION
@ FCML_CEH_GEC_UNSUPPORTED_LABEL_DECLARATION
Labels are not supported.
Definition: fcml_errors.h:86
fcml_en_ceh_error_level
fcml_en_ceh_error_level
Error levels.
Definition: fcml_errors.h:159
FCML_CEH_GEC_INVALID_INSTRUCTION_MODEL
@ FCML_CEH_GEC_INVALID_INSTRUCTION_MODEL
Gap between operands found.
Definition: fcml_errors.h:92
fcml_st_ceh_error_container
Container for all collected errors and warnings.
Definition: fcml_errors.h:180
FCML_CEH_MEW_WARN_VALUE_OUT_OF_RANGE
@ FCML_CEH_MEW_WARN_VALUE_OUT_OF_RANGE
Value out of range
Definition: fcml_errors.h:148
fcml_st_ceh_error_info
Information about one particular error/warning.
Definition: fcml_errors.h:168
FCML_CEH_GEC_VALUE_OUT_OF_RANGE
@ FCML_CEH_GEC_VALUE_OUT_OF_RANGE
Used mainly in case of integers and offsets.
Definition: fcml_errors.h:55
FCML_CEH_MEW_WARN_INVALID_ADDRESSING_MODE
@ FCML_CEH_MEW_WARN_INVALID_ADDRESSING_MODE
Invalid addressing mode.
Definition: fcml_errors.h:150
fcml_st_ceh_error_container::errors
fcml_st_ceh_error_info * errors
All errors and warnings going here.
Definition: fcml_errors.h:182
FCML_CEH_GEC_MISSING_DECORATOR
@ FCML_CEH_GEC_MISSING_DECORATOR
Required operand decorator is missing.
Definition: fcml_errors.h:88
fcml_en_ceh_error_globals
fcml_en_ceh_error_globals
All global error codes are placed here.
Definition: fcml_errors.h:40
FCML_CEH_MEC_ERROR_TO_MANY_OPERANDS
@ FCML_CEH_MEC_ERROR_TO_MANY_OPERANDS
To many operands passed to parser.
Definition: fcml_errors.h:116
FCML_CEH_GEC_INVALID_OPPERAND
@ FCML_CEH_GEC_INVALID_OPPERAND
Instruction do not support one of the defined operands.
Definition: fcml_errors.h:67
FCML_CEH_GEC_INVALID_ADDRESSING_FORM
@ FCML_CEH_GEC_INVALID_ADDRESSING_FORM
Chosen addressing form can not be encoded as for example ModR/M field.
Definition: fcml_errors.h:62
FCML_CEH_GEC_INVALID_OPPERAND_SIZE
@ FCML_CEH_GEC_INVALID_OPPERAND_SIZE
Operand size (Operand size attribute) is not allowed in given context.
Definition: fcml_errors.h:71
fcml_types.h