OSDN Git Service

* config/m68k/m68k.h: Remove comments copied over from tm.texi.
[pf3gnuchains/gcc-fork.git] / gcc / builtin-types.def
1 /* Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
2
3 This file is part of GCC.
4
5 GCC is free software; you can redistribute it and/or modify it under
6 the terms of the GNU General Public License as published by the Free
7 Software Foundation; either version 2, or (at your option) any later
8 version.
9
10 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
11 WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
13 for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with GCC; see the file COPYING.  If not, write to the Free
17 Software Foundation, 59 Temple Place - Suite 330, Boston, MA
18 02111-1307, USA.  */
19
20 /* This header provides a declarative way of describing the types that
21    are used when declaring builtin functions.
22
23    Before including this header, you must define the following macros:
24
25    DEF_PRIMITIVE_TYPE (ENUM, TYPE)
26
27      The ENUM is an identifier indicating which type is being defined.
28      TYPE is an expression for a `tree' that represents the type.
29
30    DEF_FUNCTION_TYPE_0 (ENUM, RETURN)
31    DEF_FUNCTION_TYPE_1 (ENUM, RETURN, ARG1)
32    DEF_FUNCTION_TYPE_2 (ENUM, RETURN, ARG1, ARG2)
33    DEF_FUNCTION_TYPE_3 (ENUM, RETURN, ARG1, ARG2, ARG3)
34    DEF_FUNCTION_TYPE_4 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4)
35
36      These macros describe function types.  ENUM is as above.  The
37      RETURN type is one of the enumerals already defined.  ARG1, ARG2,
38      and ARG3 give the types of the arguments, similarly.
39
40    DEF_FUNCTION_TYPE_VAR_0 (ENUM, RETURN)
41    DEF_FUNCTION_TYPE_VAR_1 (ENUM, RETURN, ARG1)
42    DEF_FUNCTION_TYPE_VAR_2 (ENUM, RETURN, ARG1, ARG2)
43    DEF_FUNCTION_TYPE_VAR_3 (ENUM, RETURN, ARG1, ARG2, ARG3)
44
45      Similar, but for function types that take variable arguments.
46      For example:
47
48        DEF_FUNCTION_TYPE_1 (BT_INT_DOUBLE, BT_INT, BT_DOUBLE)
49
50      describes the type `int ()(double)', using the enumeral
51      BT_INT_DOUBLE, whereas:
52
53        DEF_FUNCTION_TYPE_VAR_1 (BT_INT_DOUBLE_VAR, BT_INT, BT_DOUBLE)
54
55      describes the type `int ()(double, ...)'.
56  
57   DEF_POINTER_TYPE (ENUM, TYPE)
58
59     This macro describes a pointer type.  ENUM is as above; TYPE is
60     the type pointed to.  */
61
62 DEF_PRIMITIVE_TYPE (BT_VOID, void_type_node)
63 DEF_PRIMITIVE_TYPE (BT_INT, integer_type_node)
64 DEF_PRIMITIVE_TYPE (BT_UNSIGNED, unsigned_type_node)
65 DEF_PRIMITIVE_TYPE (BT_LONG, long_integer_type_node)
66 DEF_PRIMITIVE_TYPE (BT_LONGLONG, long_long_integer_type_node)
67 DEF_PRIMITIVE_TYPE (BT_WORD, (*lang_hooks.types.type_for_mode) (word_mode, 0))
68 DEF_PRIMITIVE_TYPE (BT_FLOAT, float_type_node)
69 DEF_PRIMITIVE_TYPE (BT_INTMAX, intmax_type_node)
70 DEF_PRIMITIVE_TYPE (BT_DOUBLE, double_type_node)
71 DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE, long_double_type_node)
72 DEF_PRIMITIVE_TYPE (BT_COMPLEX_FLOAT, complex_float_type_node)
73 DEF_PRIMITIVE_TYPE (BT_COMPLEX_DOUBLE, complex_double_type_node)
74 DEF_PRIMITIVE_TYPE (BT_COMPLEX_LONGDOUBLE, complex_long_double_type_node)
75
76 DEF_PRIMITIVE_TYPE (BT_PTR, ptr_type_node)
77 DEF_PRIMITIVE_TYPE (BT_CONST_PTR, const_ptr_type_node)
78 DEF_PRIMITIVE_TYPE (BT_PTRMODE, (*lang_hooks.types.type_for_mode)(ptr_mode, 0))
79 DEF_PRIMITIVE_TYPE (BT_INT_PTR, integer_ptr_type_node)
80 DEF_PRIMITIVE_TYPE (BT_FLOAT_PTR, float_ptr_type_node)
81 DEF_PRIMITIVE_TYPE (BT_DOUBLE_PTR, double_ptr_type_node)
82 DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE_PTR, long_double_ptr_type_node)
83 DEF_PRIMITIVE_TYPE (BT_PID, pid_type_node)
84 DEF_PRIMITIVE_TYPE (BT_SIZE, size_type_node)
85 DEF_PRIMITIVE_TYPE (BT_SSIZE, signed_size_type_node)
86 DEF_PRIMITIVE_TYPE (BT_WINT, wint_type_node)
87 DEF_PRIMITIVE_TYPE (BT_STRING, string_type_node)
88 DEF_PRIMITIVE_TYPE (BT_CONST_STRING, const_string_type_node)
89
90 DEF_PRIMITIVE_TYPE (BT_VALIST_REF, va_list_ref_type_node)
91 DEF_PRIMITIVE_TYPE (BT_VALIST_ARG, va_list_arg_type_node)
92
93 DEF_POINTER_TYPE (BT_PTR_CONST_STRING, BT_CONST_STRING)
94
95 DEF_FUNCTION_TYPE_0 (BT_FN_VOID, BT_VOID)
96 DEF_FUNCTION_TYPE_0 (BT_FN_PTR, BT_PTR)
97 DEF_FUNCTION_TYPE_0 (BT_FN_PID, BT_PID)
98 DEF_FUNCTION_TYPE_0 (BT_FN_UNSIGNED, BT_UNSIGNED)
99 DEF_FUNCTION_TYPE_0 (BT_FN_FLOAT, BT_FLOAT)
100 DEF_FUNCTION_TYPE_0 (BT_FN_DOUBLE, BT_DOUBLE)
101 /* For "long double" we use LONGDOUBLE (not LONG_DOUBLE) to
102    distinguish it from two types in sequence, "long" followed by
103    "double".  */
104 DEF_FUNCTION_TYPE_0 (BT_FN_LONGDOUBLE, BT_LONGDOUBLE)
105
106 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONG, BT_LONG, BT_LONG)
107 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGLONG, BT_LONGLONG, BT_LONGLONG)
108 DEF_FUNCTION_TYPE_1 (BT_FN_INTMAX_INTMAX, BT_INTMAX, BT_INTMAX)
109 DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_FLOAT, BT_FLOAT, BT_FLOAT)
110 DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_DOUBLE, BT_DOUBLE, BT_DOUBLE)
111 DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_LONGDOUBLE, 
112                      BT_LONGDOUBLE, BT_LONGDOUBLE)
113 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT, 
114                      BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
115 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE, 
116                      BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
117 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, 
118                      BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
119 DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_COMPLEX_FLOAT, 
120                      BT_FLOAT, BT_COMPLEX_FLOAT)
121 DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_COMPLEX_DOUBLE,
122                      BT_DOUBLE, BT_COMPLEX_DOUBLE)
123 DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_COMPLEX_LONGDOUBLE,
124                      BT_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
125 DEF_FUNCTION_TYPE_1 (BT_FN_PTR_UNSIGNED, BT_PTR, BT_UNSIGNED)
126 DEF_FUNCTION_TYPE_1 (BT_FN_PTR_SIZE, BT_PTR, BT_SIZE)
127 DEF_FUNCTION_TYPE_1 (BT_FN_INT_INT, BT_INT, BT_INT)
128 DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONG, BT_INT, BT_LONG)
129 DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGLONG, BT_INT, BT_LONGLONG)
130 DEF_FUNCTION_TYPE_1 (BT_FN_INT_PTR, BT_INT, BT_PTR)
131 DEF_FUNCTION_TYPE_1 (BT_FN_INT_FLOAT, BT_INT, BT_FLOAT)
132 DEF_FUNCTION_TYPE_1 (BT_FN_INT_DOUBLE, BT_INT, BT_DOUBLE)
133 DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
134 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_FLOAT, BT_LONG, BT_FLOAT)
135 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_DOUBLE, BT_LONG, BT_DOUBLE)
136 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONGDOUBLE, BT_LONG, BT_LONGDOUBLE)
137 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_FLOAT, BT_LONGLONG, BT_FLOAT)
138 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_DOUBLE, BT_LONGLONG, BT_DOUBLE)
139 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGDOUBLE, BT_LONGLONG, BT_LONGDOUBLE)
140 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTR, BT_VOID, BT_PTR)
141 DEF_FUNCTION_TYPE_1 (BT_FN_SIZE_CONST_STRING, BT_SIZE, BT_CONST_STRING)
142 DEF_FUNCTION_TYPE_1 (BT_FN_INT_CONST_STRING, BT_INT, BT_CONST_STRING)
143 DEF_FUNCTION_TYPE_1 (BT_FN_PTR_PTR, BT_PTR, BT_PTR)
144 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VALIST_REF, BT_VOID, BT_VALIST_REF)
145 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_INT, BT_VOID, BT_INT)
146 DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_CONST_STRING, BT_FLOAT, BT_CONST_STRING)
147 DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_CONST_STRING, BT_DOUBLE, BT_CONST_STRING)
148 DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_CONST_STRING,
149                      BT_LONGDOUBLE, BT_CONST_STRING)
150 DEF_FUNCTION_TYPE_1 (BT_FN_STRING_CONST_STRING, BT_STRING, BT_CONST_STRING)
151 DEF_FUNCTION_TYPE_1 (BT_FN_WORD_PTR, BT_WORD, BT_PTR)
152 DEF_FUNCTION_TYPE_1 (BT_FN_INT_WINT, BT_INT, BT_WINT)
153 DEF_FUNCTION_TYPE_1 (BT_FN_WINT_WINT, BT_WINT, BT_WINT)
154
155 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_INT, BT_VOID, BT_PTR, BT_INT)
156 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_STRING_CONST_STRING, 
157                      BT_STRING, BT_STRING, BT_CONST_STRING)
158 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_CONST_STRING,
159                      BT_INT, BT_CONST_STRING, BT_CONST_STRING)
160 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_CONST_STRING,
161                      BT_STRING, BT_CONST_STRING, BT_CONST_STRING)
162 DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_STRING_CONST_STRING,
163                      BT_SIZE, BT_CONST_STRING, BT_CONST_STRING)
164 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_INT,
165                      BT_STRING, BT_CONST_STRING, BT_INT)
166 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_PTR,
167                      BT_INT, BT_CONST_STRING, BT_PTR)
168 DEF_FUNCTION_TYPE_2 (BT_FN_INT_INT_PTR,
169                      BT_INT, BT_INT, BT_PTR)
170 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTRMODE_PTR,
171                      BT_VOID, BT_PTRMODE, BT_PTR)
172 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VALIST_REF_VALIST_ARG, 
173                      BT_VOID, BT_VALIST_REF, BT_VALIST_ARG)
174 DEF_FUNCTION_TYPE_2 (BT_FN_LONG_LONG_LONG,
175                      BT_LONG, BT_LONG, BT_LONG)
176 DEF_FUNCTION_TYPE_2 (BT_FN_INT_PTR_CONST_STRING,
177                      BT_INT, BT_PTR, BT_CONST_STRING)
178 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_SIZE,
179                      BT_VOID, BT_PTR, BT_SIZE)
180 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOAT,
181                      BT_FLOAT, BT_FLOAT, BT_FLOAT)
182 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLE,
183                      BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
184 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
185                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
186 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOATPTR,
187                      BT_FLOAT, BT_FLOAT, BT_FLOAT_PTR)
188 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLEPTR,
189                      BT_DOUBLE, BT_DOUBLE, BT_DOUBLE_PTR)
190 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLEPTR,
191                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR)
192 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONGDOUBLE,
193                      BT_FLOAT, BT_FLOAT, BT_LONGDOUBLE)
194 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONGDOUBLE,
195                      BT_DOUBLE, BT_DOUBLE, BT_LONGDOUBLE)
196 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INT,
197                      BT_FLOAT, BT_FLOAT, BT_INT)
198 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INT,
199                      BT_DOUBLE, BT_DOUBLE, BT_INT)
200 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INT,
201                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT)
202 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INTPTR,
203                      BT_FLOAT, BT_FLOAT, BT_INT_PTR)
204 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INTPTR,
205                      BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
206 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR,
207                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
208 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_INT_FLOAT,
209                      BT_FLOAT, BT_INT, BT_FLOAT)
210 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_INT_DOUBLE,
211                      BT_DOUBLE, BT_INT, BT_DOUBLE)
212 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_INT_LONGDOUBLE,
213                      BT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
214 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONG,
215                      BT_FLOAT, BT_FLOAT, BT_LONG)
216 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONG,
217                      BT_DOUBLE, BT_DOUBLE, BT_LONG)
218 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONG,
219                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONG)
220 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_VALIST_ARG,
221                      BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
222 DEF_FUNCTION_TYPE_2 (BT_FN_PTR_SIZE_SIZE,
223                      BT_PTR, BT_SIZE, BT_SIZE)
224 DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT, 
225                      BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
226 DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE, 
227                      BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
228 DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, 
229                      BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
230 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_PTR, BT_VOID, BT_PTR, BT_PTR)
231 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
232                      BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING)
233
234 DEF_FUNCTION_TYPE_3 (BT_FN_STRING_STRING_CONST_STRING_SIZE,
235                      BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE)
236 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_SIZE,
237                      BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_SIZE)
238 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_CONST_PTR_SIZE,
239                      BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE)
240 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_PTR_CONST_PTR_SIZE,
241                      BT_INT, BT_CONST_PTR, BT_CONST_PTR, BT_SIZE)
242 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_INT_SIZE,
243                      BT_PTR, BT_PTR, BT_INT, BT_SIZE)
244 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_INT_INT,
245                      BT_VOID, BT_PTR, BT_INT, BT_INT)
246 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_CONST_PTR_PTR_SIZE,
247                      BT_VOID, BT_CONST_PTR, BT_PTR, BT_SIZE)
248 DEF_FUNCTION_TYPE_3 (BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
249                      BT_INT, BT_STRING, BT_CONST_STRING, BT_VALIST_ARG)
250 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
251                      BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_VALIST_ARG)
252 DEF_FUNCTION_TYPE_3 (BT_FN_INT_PTR_CONST_STRING_VALIST_ARG,
253                      BT_INT, BT_PTR, BT_CONST_STRING, BT_VALIST_ARG)
254 DEF_FUNCTION_TYPE_3 (BT_FN_STRING_CONST_STRING_CONST_STRING_INT,
255                      BT_STRING, BT_CONST_STRING, BT_CONST_STRING, BT_INT)
256 DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_FLOAT,
257                      BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_FLOAT)
258 DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_DOUBLE,
259                      BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
260 DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
261                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
262 DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_INTPTR,
263                      BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_INT_PTR)
264 DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR,
265                      BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
266 DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR,
267                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
268 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR,
269                      BT_VOID, BT_FLOAT, BT_FLOAT_PTR, BT_FLOAT_PTR)
270 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR,
271                      BT_VOID, BT_DOUBLE, BT_DOUBLE_PTR, BT_DOUBLE_PTR)
272 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR,
273                      BT_VOID, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR, BT_LONGDOUBLE_PTR)
274 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_PTR_PTR, BT_VOID, BT_PTR, BT_PTR, BT_PTR)
275 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING,
276                      BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING, BT_PTR_CONST_STRING)
277
278 DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR,
279                      BT_SIZE, BT_CONST_PTR, BT_SIZE, BT_SIZE, BT_PTR)
280 DEF_FUNCTION_TYPE_4 (BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
281                 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_VALIST_ARG)
282 DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR,
283                 BT_SIZE, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_CONST_PTR)
284
285 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_VOID_VAR, BT_VOID)
286 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_INT_VAR, BT_INT)
287 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_PTR_VAR, BT_PTR)
288
289 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_VALIST_REF_VAR, 
290                          BT_VOID, BT_VALIST_REF)
291 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_CONST_PTR_VAR,
292                          BT_VOID, BT_CONST_PTR)
293 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_INT_CONST_STRING_VAR,
294                          BT_INT, BT_CONST_STRING)
295
296 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_PTR_CONST_STRING_VAR,
297                          BT_INT, BT_PTR, BT_CONST_STRING)
298 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_STRING_CONST_STRING_VAR,
299                          BT_INT, BT_STRING, BT_CONST_STRING)
300 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
301                          BT_INT, BT_CONST_STRING, BT_CONST_STRING)
302
303 DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_STRING_SIZE_CONST_STRING_VAR,
304                          BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING)
305 DEF_FUNCTION_TYPE_VAR_3 (BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR,
306                          BT_SSIZE, BT_STRING, BT_SIZE, BT_CONST_STRING)
307
308 DEF_POINTER_TYPE (BT_PTR_FN_VOID_VAR, BT_FN_VOID_VAR)
309 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE,
310                      BT_PTR, BT_PTR_FN_VOID_VAR, BT_PTR, BT_SIZE)