avoid long long in public API
[libfirm] / include / libfirm / firm_types.h
1 /*
2  * Copyright (C) 1995-2008 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 typedef unsigned long ir_visited_t;
30 typedef unsigned long ir_exc_region_t;
31 typedef unsigned long ir_label_t;
32
33 typedef struct dbg_info             dbg_info,            *dbg_info_ptr;
34 typedef const struct _ident         ident,               *ir_ident_ptr;
35 typedef struct ir_node              ir_node,             *ir_node_ptr;
36 typedef struct ir_op                ir_op,               *ir_op_ptr;
37 typedef struct ir_mode              ir_mode,             *ir_mode_ptr;
38 typedef struct _ir_edge_t           ir_edge_t,           *ir_edge_ptr;
39 typedef struct tarval               tarval,              *ir_tarval_ptr;
40 typedef struct ir_enum_const        ir_enum_const,       *ir_enum_const_ptr;
41 typedef struct ir_type              ir_type,             *ir_type_ptr;
42 typedef struct ir_graph             ir_graph,            *ir_graph_ptr;
43 typedef struct ir_loop              ir_loop,             *ir_loop_ptr;
44 typedef struct ir_region            ir_region,           *ir_region_ptr;
45 typedef struct ir_reg_tree          ir_reg_tree,         *ir_reg_tree_ptr;
46 typedef struct ir_entity            ir_entity,           *ir_entity_ptr;
47 typedef struct compound_graph_path  compound_graph_path, *ir_compound_graph_path_ptr;
48 typedef struct _ir_phase            ir_phase,            *ir_phase_ptr;
49 typedef struct _ir_extblk           ir_extblk,           *ir_extblk_ptr;
50 typedef struct ir_exec_freq         ir_exec_freq,        *ir_exec_freq_ptr;
51 typedef struct ir_cdep              ir_cdep,             *ir_cdep_ptr;
52 typedef struct sn_entry             *seqno_t;
53 typedef struct arch_irn_ops_t       arch_irn_ops_t;
54
55 typedef union  ir_initializer_t     ir_initializer_t,    *ir_initializer_ptr;
56
57 typedef void irg_walk_func(ir_node *, void *);
58 typedef void irg_reg_walk_func(ir_region *, void *);
59
60 /* settings */
61 typedef struct ir_settings_arch_dep_t ir_settings_arch_dep_t;
62 typedef struct ir_settings_if_conv_t  ir_settings_if_conv_t;
63
64 /* states */
65
66 /** The state of the interprocedural view.
67  *
68  * This value indicates the state of the interprocedural view.
69  */
70 typedef enum {
71         ip_view_no,       /**< The interprocedural view is not constructed.  There are no
72                                view specific nodes (EndReg, Filter, Break ...) in any graph.  */
73         ip_view_valid,    /**< The interprocedural view is valid.  */
74         ip_view_invalid   /**< The interprocedural view is invalid.  Specific nodes are
75                                all still in the representation, but the graph is no more complete. */
76 } ip_view_state;
77
78
79
80 #endif