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
144
152
156typedef fcml_uint16_t fcml_ceh_error;
157
166
172 fcml_string message;
178
186
187#endif /* FCML_ASM_ERRORS_H_ */
fcml_uint16_t fcml_ceh_error
All error codes should be held in variables of this type.
Definition: fcml_errors.h:156
struct fcml_st_ceh_error_info fcml_st_ceh_error_info
Information about one particular error/warning.
struct fcml_st_ceh_error_container fcml_st_ceh_error_container
Container for all collected errors and warnings.
fcml_en_ceh_error_level
Error levels.
Definition: fcml_errors.h:159
@ FCML_EN_CEH_EL_ERROR
Errors are reported when something more important happened and processing should be stopped.
Definition: fcml_errors.h:164
@ FCML_EN_CEH_EL_WARN
Warnings are reported when processing does not need to be stopped.
Definition: fcml_errors.h:161
Handles Win32 DLL symbols importing/exporting.
Types declarations.
fcml_en_ceh_error_globals
All global error codes are placed here.
Definition: fcml_errors.h:40
@ FCML_CEH_GEC_NOT_INITIALIZED
Component hasn't been initialized yet.
Definition: fcml_errors.h:51
@ FCML_CEH_GEC_UNSUPPORTED_LABEL_DECLARATION
Labels are not supported.
Definition: fcml_errors.h:86
@ FCML_CEH_GEC_EOF
Incomplete instruction.
Definition: fcml_errors.h:53
@ FCML_CEH_GEC_UNKNOWN_INSTRUCTION
User chosen unsupported addressing form.
Definition: fcml_errors.h:75
@ FCML_CEH_GEC_INVALID_INSTRUCTION_MODEL
Gap between operands found.
Definition: fcml_errors.h:92
@ FCML_CEH_GEC_INVALID_REGISTER_TYPE
Wrong register type.
Definition: fcml_errors.h:80
@ FCML_CEH_GEC_INTERNAL_ERROR
An internal error occurred.
Definition: fcml_errors.h:49
@ FCML_CEH_GEC_NO_ERROR
Operation succeed.
Definition: fcml_errors.h:42
@ FCML_CEH_GEC_INVALID_INPUT
Invalid function arguments.
Definition: fcml_errors.h:46
@ 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_INVALID_OPPERAND
Instruction do not support one of the defined operands.
Definition: fcml_errors.h:67
@ FCML_CEH_GEC_NOT_SUPPORTED_DECORATOR
Given operand decorator is not supported by operand.
Definition: fcml_errors.h:90
@ FCML_CEH_GEC_OUT_OF_MEMORY
There is not enough memory to complete operation.
Definition: fcml_errors.h:44
@ FCML_CEH_GEC_UNDEFINED_SYMBOL
Error returned by parsers when there is undefined symbol used.
Definition: fcml_errors.h:84
@ FCML_CEH_GEC_UNKNOWN_MNEMONIC
Unknown mnemonic.
Definition: fcml_errors.h:69
@ FCML_CEH_GEC_INVALID_REGISTER
Wrong register.
Definition: fcml_errors.h:82
@ 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_OPERATING_MODE
Unsupported operating mode.
Definition: fcml_errors.h:60
@ 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_CEH_GEC_INVALID_ADDRESS_SIZE
Address size (Address size attribute) is not allowed in given context.
Definition: fcml_errors.h:73
@ 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
Operand size (Operand size attribute) is not allowed in given context.
Definition: fcml_errors.h:71
@ FCML_CEH_GEC_MISSING_DECORATOR
Required operand decorator is missing.
Definition: fcml_errors.h:88
@ FCML_CEH_GEC_VALUE_OUT_OF_RANGE
Used mainly in case of integers and offsets.
Definition: fcml_errors.h:55
fcml_en_ceh_message_warnings
Codes for textual warnings.
Definition: fcml_errors.h:146
fcml_en_ceh_message_errors
Error codes dedicated to textual messages.
Definition: fcml_errors.h:112
@ FCML_CEH_MEW_WARN_INVALID_ADDRESSING_MODE
Invalid addressing mode.
Definition: fcml_errors.h:150
@ FCML_CEH_MEW_WARN_VALUE_OUT_OF_RANGE
Value out of range
Definition: fcml_errors.h:148
@ 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_PARSED_LINE_TOO_LONG
Parsed line exceed maximal allowed length.
Definition: fcml_errors.h:140
@ FCML_CEH_MEC_ERROR_WRONG_VALUE_FORMAT
Wrong value type used in given context.
Definition: fcml_errors.h:127
@ FCML_CEH_MEC_ERROR_INVALID_VECTOR_LENGTH
Invalid vector length size.
Definition: fcml_errors.h:142
@ FCML_CEH_MEC_ERROR_UNDEFINED_SYMBOL
Symbol is undefined.
Definition: fcml_errors.h:138
@ FCML_CEH_MEC_ERROR_SYMBOL_ALREADY_DEFINED
Symbol is already defined in parser's symbol table.
Definition: fcml_errors.h:136
@ 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_MEC_ERROR_TO_MANY_OPERANDS
To many operands passed to parser.
Definition: fcml_errors.h:116
@ FCML_CEH_MEC_ERROR_HLE_PREFIX_NOT_ALLOWED
HLE prefix is not allowed in given context.
Definition: fcml_errors.h:120
@ FCML_CEH_MEC_ERROR_ILLEGAL_SEG_REG_OVERRIDE
Segment register can not be overridden.
Definition: fcml_errors.h:114
@ FCML_CEH_MEC_ERROR_INVALID_SYNTAX
Syntax error from parser.
Definition: fcml_errors.h:132
@ FCML_CEH_MEC_ERROR_INVALID_REGISTER_TYPE_SEG
Wrong register type used in place of segment register.
Definition: fcml_errors.h:134
@ FCML_CEH_MEC_ERROR_INVALID_PSEUDO_OPCODE_VALUE
Unsupported pseudo-op value.
Definition: fcml_errors.h:118
@ FCML_CEH_MEC_ERROR_DIVISION_BY_0
Expression attempts to divide by 0.
Definition: fcml_errors.h:124
Container for all collected errors and warnings.
Definition: fcml_errors.h:180
fcml_st_ceh_error_info * errors
All errors and warnings going here.
Definition: fcml_errors.h:182
fcml_st_ceh_error_info * last_error
Pointer to the last error/warning on the list.
Definition: fcml_errors.h:184
Information about one particular error/warning.
Definition: fcml_errors.h:168
struct fcml_st_ceh_error_info * next_error
Next error/warning on the list.
Definition: fcml_errors.h:170
fcml_en_ceh_error_level level
Error level.
Definition: fcml_errors.h:176
fcml_ceh_error code
Error code.
Definition: fcml_errors.h:174
fcml_string message
Error message.
Definition: fcml_errors.h:172