OSDN Git Service

* builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
[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_SIZE, size_type_node)
84 DEF_PRIMITIVE_TYPE (BT_SSIZE, signed_size_type_node)
85 DEF_PRIMITIVE_TYPE (BT_WINT, wint_type_node)
86 DEF_PRIMITIVE_TYPE (BT_STRING, string_type_node)
87 DEF_PRIMITIVE_TYPE (BT_CONST_STRING, const_string_type_node)
88
89 DEF_PRIMITIVE_TYPE (BT_VALIST_REF, va_list_ref_type_node)
90 DEF_PRIMITIVE_TYPE (BT_VALIST_ARG, va_list_arg_type_node)
91
92 DEF_FUNCTION_TYPE_0 (BT_FN_VOID, BT_VOID)
93 DEF_FUNCTION_TYPE_0 (BT_FN_PTR, BT_PTR)
94 DEF_FUNCTION_TYPE_0 (BT_FN_UNSIGNED, BT_UNSIGNED)
95 DEF_FUNCTION_TYPE_0 (BT_FN_FLOAT, BT_FLOAT)
96 DEF_FUNCTION_TYPE_0 (BT_FN_DOUBLE, BT_DOUBLE)
97 /* For "long double" we use LONGDOUBLE (not LONG_DOUBLE) to
98    distinguish it from two types in sequence, "long" followed by
99    "double".  */
100 DEF_FUNCTION_TYPE_0 (BT_FN_LONGDOUBLE, BT_LONGDOUBLE)
101
102 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONG, BT_LONG, BT_LONG)
103 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGLONG, BT_LONGLONG, BT_LONGLONG)
104 DEF_FUNCTION_TYPE_1 (BT_FN_INTMAX_INTMAX, BT_INTMAX, BT_INTMAX)
105 DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_FLOAT, BT_FLOAT, BT_FLOAT)
106 DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_DOUBLE, BT_DOUBLE, BT_DOUBLE)
107 DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_LONGDOUBLE, 
108                      BT_LONGDOUBLE, BT_LONGDOUBLE)
109 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT, 
110                      BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
111 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE, 
112                      BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
113 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, 
114                      BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
115 DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_COMPLEX_FLOAT, 
116                      BT_FLOAT, BT_COMPLEX_FLOAT)
117 DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_COMPLEX_DOUBLE,
118                      BT_DOUBLE, BT_COMPLEX_DOUBLE)
119 DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_COMPLEX_LONGDOUBLE,
120                      BT_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
121 DEF_FUNCTION_TYPE_1 (BT_FN_PTR_UNSIGNED, BT_PTR, BT_UNSIGNED)
122 DEF_FUNCTION_TYPE_1 (BT_FN_PTR_SIZE, BT_PTR, BT_SIZE)
123 DEF_FUNCTION_TYPE_1 (BT_FN_INT_INT, BT_INT, BT_INT)
124 DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONG, BT_INT, BT_LONG)
125 DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGLONG, BT_INT, BT_LONGLONG)
126 DEF_FUNCTION_TYPE_1 (BT_FN_INT_PTR, BT_INT, BT_PTR)
127 DEF_FUNCTION_TYPE_1 (BT_FN_INT_FLOAT, BT_INT, BT_FLOAT)
128 DEF_FUNCTION_TYPE_1 (BT_FN_INT_DOUBLE, BT_INT, BT_DOUBLE)
129 DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
130 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_FLOAT, BT_LONG, BT_FLOAT)
131 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_DOUBLE, BT_LONG, BT_DOUBLE)
132 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONGDOUBLE, BT_LONG, BT_LONGDOUBLE)
133 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_FLOAT, BT_LONGLONG, BT_FLOAT)
134 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_DOUBLE, BT_LONGLONG, BT_DOUBLE)
135 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGDOUBLE, BT_LONGLONG, BT_LONGDOUBLE)
136 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTR, BT_VOID, BT_PTR)
137 DEF_FUNCTION_TYPE_1 (BT_FN_SIZE_CONST_STRING, BT_SIZE, BT_CONST_STRING)
138 DEF_FUNCTION_TYPE_1 (BT_FN_INT_CONST_STRING, BT_INT, BT_CONST_STRING)
139 DEF_FUNCTION_TYPE_1 (BT_FN_PTR_PTR, BT_PTR, BT_PTR)
140 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VALIST_REF, BT_VOID, BT_VALIST_REF)
141 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_INT, BT_VOID, BT_INT)
142 DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_CONST_STRING, BT_FLOAT, BT_CONST_STRING)
143 DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_CONST_STRING, BT_DOUBLE, BT_CONST_STRING)
144 DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_CONST_STRING,
145                      BT_LONGDOUBLE, BT_CONST_STRING)
146 DEF_FUNCTION_TYPE_1 (BT_FN_STRING_CONST_STRING, BT_STRING, BT_CONST_STRING)
147 DEF_FUNCTION_TYPE_1 (BT_FN_WORD_PTR, BT_WORD, BT_PTR)
148 DEF_FUNCTION_TYPE_1 (BT_FN_INT_WINT, BT_INT, BT_WINT)
149 DEF_FUNCTION_TYPE_1 (BT_FN_WINT_WINT, BT_WINT, BT_WINT)
150
151 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_INT, BT_VOID, BT_PTR, BT_INT)
152 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_STRING_CONST_STRING, 
153                      BT_STRING, BT_STRING, BT_CONST_STRING)
154 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_CONST_STRING,
155                      BT_INT, BT_CONST_STRING, BT_CONST_STRING)
156 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_CONST_STRING,
157                      BT_STRING, BT_CONST_STRING, BT_CONST_STRING)
158 DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_STRING_CONST_STRING,
159                      BT_SIZE, BT_CONST_STRING, BT_CONST_STRING)
160 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_INT,
161                      BT_STRING, BT_CONST_STRING, BT_INT)
162 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_PTR,
163                      BT_INT, BT_CONST_STRING, BT_PTR)
164 DEF_FUNCTION_TYPE_2 (BT_FN_INT_INT_PTR,
165                      BT_INT, BT_INT, BT_PTR)
166 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTRMODE_PTR,
167                      BT_VOID, BT_PTRMODE, BT_PTR)
168 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VALIST_REF_VALIST_ARG, 
169                      BT_VOID, BT_VALIST_REF, BT_VALIST_ARG)
170 DEF_FUNCTION_TYPE_2 (BT_FN_LONG_LONG_LONG,
171                      BT_LONG, BT_LONG, BT_LONG)
172 DEF_FUNCTION_TYPE_2 (BT_FN_INT_PTR_CONST_STRING,
173                      BT_INT, BT_PTR, BT_CONST_STRING)
174 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_SIZE,
175                      BT_VOID, BT_PTR, BT_SIZE)
176 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOAT,
177                      BT_FLOAT, BT_FLOAT, BT_FLOAT)
178 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLE,
179                      BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
180 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
181                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
182 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOATPTR,
183                      BT_FLOAT, BT_FLOAT, BT_FLOAT_PTR)
184 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLEPTR,
185                      BT_DOUBLE, BT_DOUBLE, BT_DOUBLE_PTR)
186 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLEPTR,
187                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR)
188 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONGDOUBLE,
189                      BT_FLOAT, BT_FLOAT, BT_LONGDOUBLE)
190 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONGDOUBLE,
191                      BT_DOUBLE, BT_DOUBLE, BT_LONGDOUBLE)
192 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INT,
193                      BT_FLOAT, BT_FLOAT, BT_INT)
194 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INT,
195                      BT_DOUBLE, BT_DOUBLE, BT_INT)
196 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INT,
197                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT)
198 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INTPTR,
199                      BT_FLOAT, BT_FLOAT, BT_INT_PTR)
200 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INTPTR,
201                      BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
202 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR,
203                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
204 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_INT_FLOAT,
205                      BT_FLOAT, BT_INT, BT_FLOAT)
206 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_INT_DOUBLE,
207                      BT_DOUBLE, BT_INT, BT_DOUBLE)
208 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_INT_LONGDOUBLE,
209                      BT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
210 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONG,
211                      BT_FLOAT, BT_FLOAT, BT_LONG)
212 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONG,
213                      BT_DOUBLE, BT_DOUBLE, BT_LONG)
214 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONG,
215                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONG)
216 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_VALIST_ARG,
217                      BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
218 DEF_FUNCTION_TYPE_2 (BT_FN_PTR_SIZE_SIZE,
219                      BT_PTR, BT_SIZE, BT_SIZE)
220 DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT, 
221                      BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
222 DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE, 
223                      BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
224 DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, 
225                      BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
226
227 DEF_FUNCTION_TYPE_3 (BT_FN_STRING_STRING_CONST_STRING_SIZE,
228                      BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE)
229 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_SIZE,
230                      BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_SIZE)
231 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_CONST_PTR_SIZE,
232                      BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE)
233 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_PTR_CONST_PTR_SIZE,
234                      BT_INT, BT_CONST_PTR, BT_CONST_PTR, BT_SIZE)
235 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_INT_SIZE,
236                      BT_PTR, BT_PTR, BT_INT, BT_SIZE)
237 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_INT_INT,
238                      BT_VOID, BT_PTR, BT_INT, BT_INT)
239 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_CONST_PTR_PTR_SIZE,
240                      BT_VOID, BT_CONST_PTR, BT_PTR, BT_SIZE)
241 DEF_FUNCTION_TYPE_3 (BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
242                      BT_INT, BT_STRING, BT_CONST_STRING, BT_VALIST_ARG)
243 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
244                      BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_VALIST_ARG)
245 DEF_FUNCTION_TYPE_3 (BT_FN_INT_PTR_CONST_STRING_VALIST_ARG,
246                      BT_INT, BT_PTR, BT_CONST_STRING, BT_VALIST_ARG)
247 DEF_FUNCTION_TYPE_3 (BT_FN_STRING_CONST_STRING_CONST_STRING_INT,
248                      BT_STRING, BT_CONST_STRING, BT_CONST_STRING, BT_INT)
249 DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_FLOAT,
250                      BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_FLOAT)
251 DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_DOUBLE,
252                      BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
253 DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
254                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
255 DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_INTPTR,
256                      BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_INT_PTR)
257 DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR,
258                      BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
259 DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR,
260                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
261 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR,
262                      BT_VOID, BT_FLOAT, BT_FLOAT_PTR, BT_FLOAT_PTR)
263 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR,
264                      BT_VOID, BT_DOUBLE, BT_DOUBLE_PTR, BT_DOUBLE_PTR)
265 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR,
266                      BT_VOID, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR, BT_LONGDOUBLE_PTR)
267
268 DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR,
269                      BT_SIZE, BT_CONST_PTR, BT_SIZE, BT_SIZE, BT_PTR)
270 DEF_FUNCTION_TYPE_4 (BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
271                 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_VALIST_ARG)
272 DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR,
273                 BT_SIZE, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_CONST_PTR)
274
275 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_VOID_VAR, BT_VOID)
276 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_INT_VAR, BT_INT)
277 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_PTR_VAR, BT_PTR)
278
279 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_VALIST_REF_VAR, 
280                          BT_VOID, BT_VALIST_REF)
281 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_CONST_PTR_VAR,
282                          BT_VOID, BT_CONST_PTR)
283 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_INT_CONST_STRING_VAR,
284                          BT_INT, BT_CONST_STRING)
285
286 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_PTR_CONST_STRING_VAR,
287                          BT_INT, BT_PTR, BT_CONST_STRING)
288 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_STRING_CONST_STRING_VAR,
289                          BT_INT, BT_STRING, BT_CONST_STRING)
290 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
291                          BT_INT, BT_CONST_STRING, BT_CONST_STRING)
292
293 DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_STRING_SIZE_CONST_STRING_VAR,
294                          BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING)
295 DEF_FUNCTION_TYPE_VAR_3 (BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR,
296                          BT_SSIZE, BT_STRING, BT_SIZE, BT_CONST_STRING)
297
298 DEF_POINTER_TYPE (BT_PTR_FN_VOID_VAR, BT_FN_VOID_VAR)
299 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE,
300                      BT_PTR, BT_PTR_FN_VOID_VAR, BT_PTR, BT_SIZE)