+/**
+ * @file
+ * @brief Opcode of types -- private header.
+ * @author Goetz Lindenmaier, Michael Beck
+ */
+#ifndef FIRM_TR_TPOP_T_H
+#define FIRM_TR_TPOP_T_H
+
+#include <stdlib.h>
+
+#include "firm_types.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);
+
+/** A function called to free owned entities of a type. */
+typedef void (*free_entities_func)(ir_type *tp);
+
+/** A function called to free all automatic allocated entities of a type. */
+typedef void (*free_auto_entities_func)(ir_type *tp);
+
+/** A function called to set the mode of a type. */
+typedef void (*set_type_mode_func)(ir_type *tp, ir_mode *m);
+
+/** A function called to set the size of a type in bytes. */
+typedef void (*set_type_size_func)(ir_type *tp, unsigned size);
+
+/** A function called to get the number of compound members */
+typedef size_t (*get_n_members_func)(const ir_type *tp);