-# include <stddef.h>
-# include "tpop.h"
-/****h* libfirm/tpop_t.h
- *
- * NAME
- * file tpop_t.h
- * COPYRIGHT
- * (C) 2001 by Universitaet Karlsruhe
- * AUTHORS
- * Goetz Lindenmaier
- * NOTES
- * This file contains the datatypes hidden in tpop.h.
- * SEE ALSO
- * tpop.h
- *****
+#include <stdlib.h>
+
+#include "firm_types.h"
+#include "typerep.h"
+#include "irmode.h"
+
+/** 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 int (*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 int (*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);
+
+/**
+ * tp_op operations.