X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Ftr%2Ftpop_t.h;h=490f74a70758aef1476c67693df9b961708e697f;hb=cc73c2485f371de10db363869e5a324dbaf23e18;hp=1a5eeadc8c91890b17219e7169e50affe9a83312;hpb=bb9f2e36362333c6635b89f5258171b06c786608;p=libfirm diff --git a/ir/tr/tpop_t.h b/ir/tr/tpop_t.h index 1a5eeadc8..490f74a70 100644 --- a/ir/tr/tpop_t.h +++ b/ir/tr/tpop_t.h @@ -1,27 +1,12 @@ /* - * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. - * * This file is part of libFirm. - * - * This file may be distributed and/or modified under the terms of the - * GNU General Public License version 2 as published by the Free Software - * Foundation and appearing in the file LICENSE.GPL included in the - * packaging of this file. - * - * Licensees holding valid libFirm Professional Edition licenses may use - * this file in accordance with the libFirm Commercial License. - * Agreement provided with the Software. - * - * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE - * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE. + * Copyright (C) 2012 University of Karlsruhe. */ /** * @file * @brief Opcode of types -- private header. * @author Goetz Lindenmaier, Michael Beck - * @version $Id$ */ #ifndef FIRM_TR_TPOP_T_H #define FIRM_TR_TPOP_T_H @@ -32,6 +17,9 @@ #include "typerep.h" #include "irmode.h" +#define get_tpop_code(op) _get_tpop_code(op) +#define get_tpop_ident(op) _get_tpop_ident(op) + /** A function called to free attributes of a type. */ typedef void (*free_attrs_func)(ir_type *tp); @@ -48,12 +36,12 @@ typedef void (*set_type_mode_func)(ir_type *tp, ir_mode *m); typedef void (*set_type_size_func)(ir_type *tp, unsigned size); /** A function called to get the number of compound members */ -typedef int (*get_n_members_func)(const ir_type *tp); +typedef size_t (*get_n_members_func)(const ir_type *tp); /** A function called to get the pos'th compound member */ -typedef ir_entity *(*get_member_func)(const ir_type *tp, int pos); +typedef ir_entity *(*get_member_func)(const ir_type *tp, size_t pos); -typedef int (*get_member_index_func)(const ir_type *tp, ir_entity *member); +typedef size_t (*get_member_index_func)(const ir_type *tp, ir_entity *member); /** A function called to insert an entity into the type */ typedef void (*insert_entity_func)(ir_type *tp, ir_entity *member); @@ -61,7 +49,7 @@ typedef void (*insert_entity_func)(ir_type *tp, ir_entity *member); /** * tp_op operations. */ -typedef struct _tp_op_ops { +typedef struct tp_op_ops { free_attrs_func free_attrs; /**< Called to free the attributes of a type. */ free_entities_func free_entities; /**< Called to free the owned entities of a type. */ free_auto_entities_func free_auto_entities; /**< Called to free the automatic allocated entities of a type. */ @@ -89,7 +77,7 @@ struct tp_op { /** * Returns a new type opcode. * - * Allocates a new tp_op struct and initializes it's fields with + * Allocates a new tp_op struct and initializes its fields with * the passed values. This function is only to be used during * initialization of the library. * @@ -101,13 +89,12 @@ struct tp_op { * @param ops the tp_op operations for this type * @return A new type opcode. */ -tp_op *new_tpop (tp_opcode code, ident *name, unsigned flags, size_t attr_size, - const tp_op_ops *ops); +const tp_op *new_tpop (tp_opcode code, ident *name, unsigned flags, size_t attr_size, const tp_op_ops *ops); /** - * Free a tpop datastructure. + * Free a tpop data structure. */ -void free_tpop(tp_op *tpop); +void free_tpop(const tp_op *tpop); /** * Initialize the tpop module. @@ -118,7 +105,7 @@ void free_tpop(tp_op *tpop); * Allocates opcodes for classes, struct, method, union, array, * enumeration, pointer and primitive and sets the according values. */ -void init_tpop (void); +void init_tpop(void); /** * Finalize the tpop module. @@ -136,30 +123,23 @@ void finish_tpop(void); * @param op The type opcode to get the size for. * @return The size of the attribute of types with this opcode. */ -int get_tpop_attr_size (const tp_op *op); - +static inline size_t get_tpop_attr_size(const tp_op *op) +{ + return op->attr_size; +} /* ---------------- * * inline functions * * -----------------*/ -static inline tp_opcode -_get_tpop_code(const tp_op *op) { +static inline tp_opcode _get_tpop_code(const tp_op *op) +{ return op->code; } -static inline ident * -_get_tpop_ident(const tp_op *op){ +static inline ident *_get_tpop_ident(const tp_op *op) +{ return op->name; } -static inline size_t -_get_tpop_attr_size(const tp_op *op) { - return op->attr_size; -} - -#define get_tpop_code(op) _get_tpop_code(op) -#define get_tpop_ident(op) _get_tpop_ident(op) -#define get_tpop_attr_size(op) _get_tpop_attr_size(op) - #endif /* FIRM_TR_TPOP_T_H */