/*
- * 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
#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);
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);
/**
* 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.
*
* @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 *
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 */