X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Ftr%2Ftpop_t.h;h=a24b5d733ab6d5f2dfd7293c7b1fa0e37c56bdaf;hb=0850a3224410b24400a5552feff23cf85bf443c3;hp=ec11429c0c33d8a12ef1e53449303d66d332640b;hpb=431cb9dad40cf6ecf37291738b6ec971749feb39;p=libfirm diff --git a/ir/tr/tpop_t.h b/ir/tr/tpop_t.h index ec11429c0..a24b5d733 100644 --- a/ir/tr/tpop_t.h +++ b/ir/tr/tpop_t.h @@ -1,86 +1,110 @@ +/* + * Project: libFIRM + * File name: ir/tr/tpop_t.h + * Purpose: Opcode of types -- private header. + * Author: Goetz Lindenmaier + * Modified by: + * Created: + * CVS-ID: $Id$ + * Copyright: (c) 2001-2003 Universität Karlsruhe + * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE. + */ + -# ifndef _IROP_T_H_ -# define _IROP_T_H_ +# ifndef _TPOP_T_H_ +# define _TPOP_T_H_ # include # include "tpop.h" -/****h* libfirm/tpop_t.h +/** + * @file tpop_t.h + * + * This file contains the datatypes hidden in tpop.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 - ***** + * @autor Goetz Lindenmaier + * @see tpop.h */ +/** The type opcode */ struct tp_op { tp_opcode code; ident *name; size_t attr_size; }; -/****f* tpop/new_tpop +/** + * Returns a new type opcode. * - * NAME - * new_tpop - Returns a new type opcode. - * NOTE * Allocates a new tp_op struct and initializes it's fields with * the passed values. This function is only to be used during * initialization of the library. - * SYNOPSIS - * tp_op * new_tpop (tp_opcode code, ident *name, size_t attr_size); - * INPUTS - * code - the enum for this type opcode. - * name - an ident for the name of the type opcode. - * attr_size - the size of the attributes necessary for a type with - * this opcode - * RESULT - * A new type opcode. - *** + * + * @param code the enum for this type opcode. + * @param name an ident for the name of the type opcode. + * @param attr_size the size of the attributes necessary for a type with + * this opcode + * @return A new type opcode. + * */ -tp_op * new_tpop (tp_opcode code, ident *name, size_t attr_size); +tp_op *new_tpop (tp_opcode code, ident *name, size_t attr_size); -/****f* tpop/new_tpop +/** + * Free a tpop datastructure. + */ +void free_tpop(tp_op* tpop); + +/** + * Initialize the tpop module. * - * NAME - * init_tpop - Initialize the tpop module. - * NOTE * Must be called during the initizlization of the library. Allocates * opcodes and sets the globals that are external visible as specified * in tpop.h. - * SYNOPSIS - * void init_tpop (void); - * INPUTS - * RESULT - * SIDE EFFECTS * Allocates opcodes for classes, struct, method, union, array, * enumeration, pointer and primitive and sets the according values. - *** */ void init_tpop (void); -/****f* tpop/get_topo_attr_size +/** + * Finalize the topo module. * - * NAME - * get_topo_attr_size - Returns the size of the attribute to this kind + * Frees all type opcodes. + */ +void finish_tpop(void); + +/** + * Returns the size of the attribute to this kind * of type. - * NOTE + * * Internal feature. - * SYNOPSIS - * int get_tpop_attr_size (tp_op *op) - * INPUTS - * op - The type opcode to get the size for. - * RESULT - * The size of the attribute of types with this opcode. - * SIDE EFFECTS - *** + * + * @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 (tp_op *op); -#endif /* _IROP_T_H_ */ + +/* ---------------- * + * inline functions * + * -----------------*/ + +static INLINE tp_opcode +__get_tpop_code(tp_op *op) { + return op->code; +} + +static INLINE ident * +__get_tpop_ident(tp_op *op){ + return op->name; +} + +static INLINE int +__get_tpop_attr_size(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 /* _TPOP_T_H_ */