move adt headers
[libfirm] / include / firm_types.h
1 /*
2  * Copyright (C) 1995-2007 University of Karlsruhe.  All right reserved.
3  *
4  * This file is part of libFirm.
5  *
6  * This file may be distributed and/or modified under the terms of the
7  * GNU General Public License version 2 as published by the Free Software
8  * Foundation and appearing in the file LICENSE.GPL included in the
9  * packaging of this file.
10  *
11  * Licensees holding valid libFirm Professional Edition licenses may use
12  * this file in accordance with the libFirm Commercial License.
13  * Agreement provided with the Software.
14  *
15  * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
16  * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17  * PURPOSE.
18  */
19
20 /**
21  * @file
22  * @brief      Definition of opaque firm types
23  * @author     Michael Beck
24  * @version    $Id$
25  */
26 #ifndef FIRM_COMMON_FIRM_TYPES_H
27 #define FIRM_COMMON_FIRM_TYPES_H
28
29 #ifdef _MSC_VER
30 typedef          __int64 long64;
31 typedef unsigned __int64 ulong64;
32
33 #define LL_FMT  "i64"
34 #define ULL_FMT "ui64"
35
36 #else
37 typedef          long long long64;
38 typedef unsigned long long ulong64;
39
40 #define LL_FMT  "ll"
41 #define ULL_FMT "llu"
42
43 #endif /* _MSC_VER */
44
45 #ifndef _IDENT_TYPEDEF_
46 #define _IDENT_TYPEDEF_
47 typedef const struct _ident ident, *ir_ident_ptr;
48 #endif
49
50 #ifndef _IR_NODE_TYPEDEF_
51 #define _IR_NODE_TYPEDEF_
52 typedef struct ir_node ir_node, *ir_node_ptr;
53 #endif
54
55 #ifndef _IR_OP_TYPEDEF_
56 #define _IR_OP_TYPEDEF_
57 typedef struct ir_op ir_op, *ir_op_ptr;
58 #endif
59
60 #ifndef _IR_MODE_TYPEDEF_
61 #define _IR_MODE_TYPEDEF_
62 typedef struct ir_mode ir_mode, *ir_mode_ptr;
63 #endif
64
65 #ifndef _IR_EDGE_TYPEDEF_
66 #define _IR_EDGE_TYPEDEF_
67 typedef struct _ir_edge_t ir_edge_t, *ir_edge_ptr;
68 #endif
69
70 #ifndef _TARVAL_TYPEDEF_
71 #define _TARVAL_TYPEDEF_
72 typedef struct tarval tarval, *ir_tarval_ptr;
73 #endif
74
75 #ifndef _IR_ENUM_CONST_TYPEDEF_
76 #define _IR_ENUM_CONST_TYPEDEF_
77 typedef struct ir_enum_const ir_enum_const, *ir_enum_const_ptr;
78 #endif
79
80 #ifndef _IR_TYPE_TYPEDEF_
81 #define _IR_TYPE_TYPEDEF_
82 typedef struct ir_type ir_type, *ir_type_ptr;
83 #endif
84
85 #ifndef _IR_GRAPH_TYPEDEF_
86 #define _IR_GRAPH_TYPEDEF_
87 typedef struct ir_graph ir_graph, *ir_graph_ptr;
88 #endif
89
90 #ifndef _IR_LOOP_TYPEDEF_
91 #define _IR_LOOP_TYPEDEF_
92 typedef struct ir_loop ir_loop, *ir_loop_ptr;
93 #endif
94
95 #ifndef _IR_REGION_TYPEDEF_
96 #define _IR_REGION_TYPEDEF_
97 typedef struct ir_region ir_region, *ir_region_ptr;
98 #endif
99
100 #ifndef _IR_REG_TREE_TYPEDEF_
101 #define _IR_REG_TREE_TYPEDEF_
102 typedef struct ir_reg_tree ir_reg_tree, *ir_reg_tree_ptr;
103 #endif
104
105 #ifndef _ENTITY_TYPEDEF_
106 #define _ENTITY_TYPEDEF_
107 typedef struct ir_entity ir_entity, *ir_entity_ptr;
108 #endif
109
110 #ifndef _COMPOUND_GRAPH_PATH_TYPEDEF_
111 #define _COMPOUND_GRAPH_PATH_TYPEDEF_
112 typedef struct compound_graph_path compound_graph_path, *ir_compound_graph_path_ptr;
113 #endif
114
115 #ifndef _IR_PHASE_TYPEDEF_
116 #define _IR_PHASE_TYPEDEF_
117 typedef struct _ir_phase ir_phase, *ir_phase_ptr;
118 #endif
119
120 #ifndef _IR_EXTBB_TYPEDEF_
121 #define _IR_EXTBB_TYPEDEF_
122 typedef struct _ir_extblk ir_extblk, *ir_extblk_ptr;
123 #endif
124
125 #ifndef _IRG_WALK_FUNC_TYPEDEF_
126 #define _IRG_WALK_FUNC_TYPEDEF_
127 typedef void irg_walk_func(ir_node *, void *);
128 #endif
129
130 #ifndef _IRG_REG_WALK_FUNC_TYPEDEF_
131 #define _IRG_REG_WALK_FUNC_TYPEDEF_
132 typedef void irg_reg_walk_func(ir_region *, void *);
133 #endif
134
135 #ifndef _SEQNO_T_TYPEDEF_
136 #define _SEQNO_T_TYPEDEF_
137 typedef struct sn_entry *seqno_t;
138 #endif
139
140 #ifndef _EXECFREQ_TYPEDEF
141 #define _EXECFREQ_TYPEDEF
142 typedef struct ir_exec_freq ir_exec_freq, *ir_exec_freq_ptr;
143 #endif
144
145 #endif