fcml
1.1.3
include
fcml_errors.h
Go to the documentation of this file.
1
/*
2
* FCML - Free Code Manipulation Library.
3
* Copyright (C) 2010-2015 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
40
enum
fcml_en_ceh_error_globals
{
42
FCML_CEH_GEC_NO_ERROR
= 0,
44
FCML_CEH_GEC_OUT_OF_MEMORY
= 1,
46
FCML_CEH_GEC_INVALID_INPUT
= 2,
48
FCML_CEH_GEC_INTERNAL_ERROR
= 3,
50
FCML_CEH_GEC_NOT_INITIALIZED
= 4,
52
FCML_CEH_GEC_EOF
= 5,
54
FCML_CEH_GEC_VALUE_OUT_OF_RANGE
= 6,
56
FCML_CEH_GEC_FEATURE_NOT_SUPPORTED
= 7,
58
FCML_CEH_GEC_INVALID_OPERATING_MODE
= 8,
60
FCML_CEH_GEC_INVALID_ADDRESSING_FORM
= 9,
62
FCML_CEH_GEC_INVALID_INSTRUCTION_FORM
= 10,
64
FCML_CEH_GEC_INVALID_OPPERAND
= 11,
66
FCML_CEH_GEC_UNKNOWN_MNEMONIC
= 12,
68
FCML_CEH_GEC_INVALID_OPPERAND_SIZE
= 13,
70
FCML_CEH_GEC_INVALID_ADDRESS_SIZE
= 14,
72
FCML_CEH_GEC_UNKNOWN_INSTRUCTION
= 15,
74
FCML_CEH_GEC_INVALID_PREFIX
= 16,
76
FCML_CEH_GEC_INVALID_REGISTER_TYPE
= 17,
78
FCML_CEH_GEC_INVALID_REGISTER
= 18,
80
FCML_CEH_GEC_UNDEFINED_SYMBOL
= 19,
82
FCML_CEH_GEC_UNSUPPORTED_LABEL_DECLARATION
= 20
83
};
84
99
enum
fcml_en_ceh_message_errors
{
101
FCML_CEH_MEC_ERROR_ILLEGAL_SEG_REG_OVERRIDE
= 1000,
103
FCML_CEH_MEC_ERROR_TO_MANY_OPERANDS
= 1001,
105
FCML_CEH_MEC_ERROR_INVALID_PSEUDO_OPCODE_VALUE
= 1002,
107
FCML_CEH_MEC_ERROR_HLE_PREFIX_NOT_ALLOWED
= 1003,
109
FCML_CEH_MEC_ERROR_HLE_MORE_THAN_ONE_PREFIX
= 1004,
111
FCML_CEH_MEC_ERROR_DIVISION_BY_0
= 1005,
113
FCML_CEH_MEC_ERROR_WRONG_VALUE_FORMAT
= 1006,
115
FCML_CEH_MEC_ERROR_VALUE_OUT_OF_RANGE
= 1007,
117
FCML_CEH_MEC_ERROR_INVALID_SYNTAX
= 1008,
119
FCML_CEH_MEC_ERROR_INVALID_REGISTER_TYPE_SEG
= 1009,
121
FCML_CEH_MEC_ERROR_SYMBOL_ALREADY_DEFINED
= 1010,
123
FCML_CEH_MEC_ERROR_UNDEFINED_SYMBOL
= 1011,
125
FCML_CEH_MEC_ERROR_PARSED_LINE_TOO_LONG
= 1012
126
};
127
129
enum
fcml_en_ceh_message_warnings
{
131
FCML_CEH_MEW_WARN_VALUE_OUT_OF_RANGE
= 2000,
133
FCML_CEH_MEW_WARN_INVALID_ADDRESSING_MODE
= 2001
134
};
135
139
typedef
fcml_uint16_t
fcml_ceh_error
;
140
142
typedef
enum
fcml_en_ceh_error_level
{
144
FCML_EN_CEH_EL_WARN
,
146