tpop_t.h 1.93 KB
Newer Older
Götz Lindenmaier's avatar
new.  
Götz Lindenmaier committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86

# ifndef _IROP_T_H_
# define _IROP_T_H_

# 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
 *****
 */

struct tp_op {
  tp_opcode code;
  ident *name;
  size_t attr_size;
};

/****f* tpop/new_tpop
 *
 * 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.
 ***
 */
tp_op * new_tpop (tp_opcode code, ident *name, size_t attr_size);

/****f* tpop/new_tpop
 *
 * 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
 *
 * NAME
 *   get_topo_attr_size - 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
 ***
 */
int get_tpop_attr_size (tp_op *op);

#endif /* _IROP_T_H_ */