PR target/16201
[official-gcc.git] / gcc / builtin-types.def
blob845863108b09eaf82b0c57a16a4882e93106cd57
1 /* Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
3 This file is part of GCC.
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.
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.
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. */
20 /* This header provides a declarative way of describing the types that
21 are used when declaring builtin functions.
23 Before including this header, you must define the following macros:
25 DEF_PRIMITIVE_TYPE (ENUM, TYPE)
27 The ENUM is an identifier indicating which type is being defined.
28 TYPE is an expression for a `tree' that represents the type.
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)
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.
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)
45 Similar, but for function types that take variable arguments.
46 For example:
48 DEF_FUNCTION_TYPE_1 (BT_INT_DOUBLE, BT_INT, BT_DOUBLE)
50 describes the type `int ()(double)', using the enumeral
51 BT_INT_DOUBLE, whereas:
53 DEF_FUNCTION_TYPE_VAR_1 (BT_INT_DOUBLE_VAR, BT_INT, BT_DOUBLE)
55 describes the type `int ()(double, ...)'.
57 DEF_POINTER_TYPE (ENUM, TYPE)
59 This macro describes a pointer type. ENUM is as above; TYPE is
60 the type pointed to. */
62 DEF_PRIMITIVE_TYPE (BT_VOID, void_type_node)
63 DEF_PRIMITIVE_TYPE (BT_INT, integer_type_node)
64 DEF_PRIMITIVE_TYPE (BT_UINT, unsigned_type_node)
65 DEF_PRIMITIVE_TYPE (BT_LONG, long_integer_type_node)
66 DEF_PRIMITIVE_TYPE (BT_ULONG, long_unsigned_type_node)
67 DEF_PRIMITIVE_TYPE (BT_LONGLONG, long_long_integer_type_node)
68 DEF_PRIMITIVE_TYPE (BT_ULONGLONG, long_long_unsigned_type_node)
69 DEF_PRIMITIVE_TYPE (BT_INTMAX, intmax_type_node)
70 DEF_PRIMITIVE_TYPE (BT_UINTMAX, uintmax_type_node)
71 DEF_PRIMITIVE_TYPE (BT_WORD, (*lang_hooks.types.type_for_mode) (word_mode, 0))
72 DEF_PRIMITIVE_TYPE (BT_FLOAT, float_type_node)
73 DEF_PRIMITIVE_TYPE (BT_DOUBLE, double_type_node)
74 DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE, long_double_type_node)
75 DEF_PRIMITIVE_TYPE (BT_COMPLEX_FLOAT, complex_float_type_node)
76 DEF_PRIMITIVE_TYPE (BT_COMPLEX_DOUBLE, complex_double_type_node)
77 DEF_PRIMITIVE_TYPE (BT_COMPLEX_LONGDOUBLE, complex_long_double_type_node)
79 DEF_PRIMITIVE_TYPE (BT_PTR, ptr_type_node)
80 DEF_PRIMITIVE_TYPE (BT_FILEPTR, fileptr_type_node)
81 DEF_PRIMITIVE_TYPE (BT_CONST_PTR, const_ptr_type_node)
82 DEF_PRIMITIVE_TYPE (BT_PTRMODE, (*lang_hooks.types.type_for_mode)(ptr_mode, 0))
83 DEF_PRIMITIVE_TYPE (BT_INT_PTR, integer_ptr_type_node)
84 DEF_PRIMITIVE_TYPE (BT_FLOAT_PTR, float_ptr_type_node)
85 DEF_PRIMITIVE_TYPE (BT_DOUBLE_PTR, double_ptr_type_node)
86 DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE_PTR, long_double_ptr_type_node)
87 DEF_PRIMITIVE_TYPE (BT_PID, pid_type_node)
88 DEF_PRIMITIVE_TYPE (BT_SIZE, size_type_node)
89 DEF_PRIMITIVE_TYPE (BT_SSIZE, signed_size_type_node)
90 DEF_PRIMITIVE_TYPE (BT_WINT, wint_type_node)
91 DEF_PRIMITIVE_TYPE (BT_STRING, string_type_node)
92 DEF_PRIMITIVE_TYPE (BT_CONST_STRING, const_string_type_node)
94 DEF_PRIMITIVE_TYPE (BT_VALIST_REF, va_list_ref_type_node)
95 DEF_PRIMITIVE_TYPE (BT_VALIST_ARG, va_list_arg_type_node)
97 DEF_POINTER_TYPE (BT_PTR_CONST_STRING, BT_CONST_STRING)
99 DEF_FUNCTION_TYPE_0 (BT_FN_VOID, BT_VOID)
100 DEF_FUNCTION_TYPE_0 (BT_FN_PTR, BT_PTR)
101 DEF_FUNCTION_TYPE_0 (BT_FN_PID, BT_PID)
102 DEF_FUNCTION_TYPE_0 (BT_FN_UINT, BT_UINT)
103 DEF_FUNCTION_TYPE_0 (BT_FN_FLOAT, BT_FLOAT)
104 DEF_FUNCTION_TYPE_0 (BT_FN_DOUBLE, BT_DOUBLE)
105 /* For "long double" we use LONGDOUBLE (not LONG_DOUBLE) to
106 distinguish it from two types in sequence, "long" followed by
107 "double". */
108 DEF_FUNCTION_TYPE_0 (BT_FN_LONGDOUBLE, BT_LONGDOUBLE)
110 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONG, BT_LONG, BT_LONG)
111 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGLONG, BT_LONGLONG, BT_LONGLONG)
112 DEF_FUNCTION_TYPE_1 (BT_FN_INTMAX_INTMAX, BT_INTMAX, BT_INTMAX)
113 DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_FLOAT, BT_FLOAT, BT_FLOAT)
114 DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_DOUBLE, BT_DOUBLE, BT_DOUBLE)
115 DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_LONGDOUBLE,
116 BT_LONGDOUBLE, BT_LONGDOUBLE)
117 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT,
118 BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
119 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
120 BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
121 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE,
122 BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
123 DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_COMPLEX_FLOAT,
124 BT_FLOAT, BT_COMPLEX_FLOAT)
125 DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_COMPLEX_DOUBLE,
126 BT_DOUBLE, BT_COMPLEX_DOUBLE)
127 DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_COMPLEX_LONGDOUBLE,
128 BT_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
129 DEF_FUNCTION_TYPE_1 (BT_FN_PTR_UINT, BT_PTR, BT_UINT)
130 DEF_FUNCTION_TYPE_1 (BT_FN_PTR_SIZE, BT_PTR, BT_SIZE)
131 DEF_FUNCTION_TYPE_1 (BT_FN_INT_INT, BT_INT, BT_INT)
132 DEF_FUNCTION_TYPE_1 (BT_FN_INT_UINT, BT_INT, BT_UINT)
133 DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONG, BT_INT, BT_LONG)
134 DEF_FUNCTION_TYPE_1 (BT_FN_INT_ULONG, BT_INT, BT_ULONG)
135 DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGLONG, BT_INT, BT_LONGLONG)
136 DEF_FUNCTION_TYPE_1 (BT_FN_INT_ULONGLONG, BT_INT, BT_ULONGLONG)
137 DEF_FUNCTION_TYPE_1 (BT_FN_INT_INTMAX, BT_INT, BT_INTMAX)
138 DEF_FUNCTION_TYPE_1 (BT_FN_INT_UINTMAX, BT_INT, BT_UINTMAX)
139 DEF_FUNCTION_TYPE_1 (BT_FN_INT_PTR, BT_INT, BT_PTR)
140 DEF_FUNCTION_TYPE_1 (BT_FN_INT_FLOAT, BT_INT, BT_FLOAT)
141 DEF_FUNCTION_TYPE_1 (BT_FN_INT_DOUBLE, BT_INT, BT_DOUBLE)
142 DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
143 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_FLOAT, BT_LONG, BT_FLOAT)
144 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_DOUBLE, BT_LONG, BT_DOUBLE)
145 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONGDOUBLE, BT_LONG, BT_LONGDOUBLE)
146 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_FLOAT, BT_LONGLONG, BT_FLOAT)
147 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_DOUBLE, BT_LONGLONG, BT_DOUBLE)
148 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGDOUBLE, BT_LONGLONG, BT_LONGDOUBLE)
149 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTR, BT_VOID, BT_PTR)
150 DEF_FUNCTION_TYPE_1 (BT_FN_SIZE_CONST_STRING, BT_SIZE, BT_CONST_STRING)
151 DEF_FUNCTION_TYPE_1 (BT_FN_INT_CONST_STRING, BT_INT, BT_CONST_STRING)
152 DEF_FUNCTION_TYPE_1 (BT_FN_PTR_PTR, BT_PTR, BT_PTR)
153 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VALIST_REF, BT_VOID, BT_VALIST_REF)
154 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_INT, BT_VOID, BT_INT)
155 DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_CONST_STRING, BT_FLOAT, BT_CONST_STRING)
156 DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_CONST_STRING, BT_DOUBLE, BT_CONST_STRING)
157 DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_CONST_STRING,
158 BT_LONGDOUBLE, BT_CONST_STRING)
159 DEF_FUNCTION_TYPE_1 (BT_FN_STRING_CONST_STRING, BT_STRING, BT_CONST_STRING)
160 DEF_FUNCTION_TYPE_1 (BT_FN_WORD_PTR, BT_WORD, BT_PTR)
161 DEF_FUNCTION_TYPE_1 (BT_FN_INT_WINT, BT_INT, BT_WINT)
162 DEF_FUNCTION_TYPE_1 (BT_FN_WINT_WINT, BT_WINT, BT_WINT)
164 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_INT, BT_VOID, BT_PTR, BT_INT)
165 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_STRING_CONST_STRING,
166 BT_STRING, BT_STRING, BT_CONST_STRING)
167 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_CONST_STRING,
168 BT_INT, BT_CONST_STRING, BT_CONST_STRING)
169 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_CONST_STRING,
170 BT_STRING, BT_CONST_STRING, BT_CONST_STRING)
171 DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_STRING_CONST_STRING,
172 BT_SIZE, BT_CONST_STRING, BT_CONST_STRING)
173 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_INT,
174 BT_STRING, BT_CONST_STRING, BT_INT)
175 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_FILEPTR,
176 BT_INT, BT_CONST_STRING, BT_FILEPTR)
177 DEF_FUNCTION_TYPE_2 (BT_FN_INT_INT_FILEPTR,
178 BT_INT, BT_INT, BT_FILEPTR)
179 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTRMODE_PTR,
180 BT_VOID, BT_PTRMODE, BT_PTR)
181 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VALIST_REF_VALIST_ARG,
182 BT_VOID, BT_VALIST_REF, BT_VALIST_ARG)
183 DEF_FUNCTION_TYPE_2 (BT_FN_LONG_LONG_LONG,
184 BT_LONG, BT_LONG, BT_LONG)
185 DEF_FUNCTION_TYPE_2 (BT_FN_INT_PTR_CONST_STRING,
186 BT_INT, BT_PTR, BT_CONST_STRING)
187 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_SIZE,
188 BT_VOID, BT_PTR, BT_SIZE)
189 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOAT,
190 BT_FLOAT, BT_FLOAT, BT_FLOAT)
191 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLE,
192 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
193 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
194 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
195 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOATPTR,
196 BT_FLOAT, BT_FLOAT, BT_FLOAT_PTR)
197 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLEPTR,
198 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE_PTR)
199 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLEPTR,
200 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR)
201 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONGDOUBLE,
202 BT_FLOAT, BT_FLOAT, BT_LONGDOUBLE)
203 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONGDOUBLE,
204 BT_DOUBLE, BT_DOUBLE, BT_LONGDOUBLE)
205 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INT,
206 BT_FLOAT, BT_FLOAT, BT_INT)
207 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INT,
208 BT_DOUBLE, BT_DOUBLE, BT_INT)
209 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INT,
210 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT)
211 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INTPTR,
212 BT_FLOAT, BT_FLOAT, BT_INT_PTR)
213 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INTPTR,
214 BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
215 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR,
216 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
217 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_INT_FLOAT,
218 BT_FLOAT, BT_INT, BT_FLOAT)
219 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_INT_DOUBLE,
220 BT_DOUBLE, BT_INT, BT_DOUBLE)
221 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_INT_LONGDOUBLE,
222 BT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
223 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONG,
224 BT_FLOAT, BT_FLOAT, BT_LONG)
225 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONG,
226 BT_DOUBLE, BT_DOUBLE, BT_LONG)
227 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONG,
228 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONG)
229 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_VALIST_ARG,
230 BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
231 DEF_FUNCTION_TYPE_2 (BT_FN_PTR_SIZE_SIZE,
232 BT_PTR, BT_SIZE, BT_SIZE)
233 DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT,
234 BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
235 DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
236 BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
237 DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE,
238 BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
239 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_PTR, BT_VOID, BT_PTR, BT_PTR)
240 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
241 BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING)
243 DEF_FUNCTION_TYPE_3 (BT_FN_STRING_STRING_CONST_STRING_SIZE,
244 BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE)
245 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_SIZE,
246 BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_SIZE)
247 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_CONST_PTR_SIZE,
248 BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE)
249 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_PTR_CONST_PTR_SIZE,
250 BT_INT, BT_CONST_PTR, BT_CONST_PTR, BT_SIZE)
251 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_INT_SIZE,
252 BT_PTR, BT_PTR, BT_INT, BT_SIZE)
253 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_INT_INT,
254 BT_VOID, BT_PTR, BT_INT, BT_INT)
255 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_CONST_PTR_PTR_SIZE,
256 BT_VOID, BT_CONST_PTR, BT_PTR, BT_SIZE)
257 DEF_FUNCTION_TYPE_3 (BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
258 BT_INT, BT_STRING, BT_CONST_STRING, BT_VALIST_ARG)
259 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
260 BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_VALIST_ARG)
261 DEF_FUNCTION_TYPE_3 (BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
262 BT_INT, BT_FILEPTR, BT_CONST_STRING, BT_VALIST_ARG)
263 DEF_FUNCTION_TYPE_3 (BT_FN_STRING_CONST_STRING_CONST_STRING_INT,
264 BT_STRING, BT_CONST_STRING, BT_CONST_STRING, BT_INT)
265 DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_FLOAT,
266 BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_FLOAT)
267 DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_DOUBLE,
268 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
269 DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
270 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
271 DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_INTPTR,
272 BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_INT_PTR)
273 DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR,
274 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
275 DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR,
276 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
277 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR,
278 BT_VOID, BT_FLOAT, BT_FLOAT_PTR, BT_FLOAT_PTR)
279 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR,
280 BT_VOID, BT_DOUBLE, BT_DOUBLE_PTR, BT_DOUBLE_PTR)
281 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR,
282 BT_VOID, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR, BT_LONGDOUBLE_PTR)
283 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_PTR_PTR, BT_VOID, BT_PTR, BT_PTR, BT_PTR)
284 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING,
285 BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING, BT_PTR_CONST_STRING)
287 DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
288 BT_SIZE, BT_CONST_PTR, BT_SIZE, BT_SIZE, BT_FILEPTR)
289 DEF_FUNCTION_TYPE_4 (BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
290 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_VALIST_ARG)
291 DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR,
292 BT_SIZE, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_CONST_PTR)
294 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_VOID_VAR, BT_VOID)
295 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_INT_VAR, BT_INT)
296 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_PTR_VAR, BT_PTR)
298 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_VALIST_REF_VAR,
299 BT_VOID, BT_VALIST_REF)
300 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_CONST_PTR_VAR,
301 BT_VOID, BT_CONST_PTR)
302 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_INT_CONST_STRING_VAR,
303 BT_INT, BT_CONST_STRING)
305 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_FILEPTR_CONST_STRING_VAR,
306 BT_INT, BT_FILEPTR, BT_CONST_STRING)
307 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_STRING_CONST_STRING_VAR,
308 BT_INT, BT_STRING, BT_CONST_STRING)
309 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
310 BT_INT, BT_CONST_STRING, BT_CONST_STRING)
312 DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_STRING_SIZE_CONST_STRING_VAR,
313 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING)
314 DEF_FUNCTION_TYPE_VAR_3 (BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR,
315 BT_SSIZE, BT_STRING, BT_SIZE, BT_CONST_STRING)
317 DEF_POINTER_TYPE (BT_PTR_FN_VOID_VAR, BT_FN_VOID_VAR)
318 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE,
319 BT_PTR, BT_PTR_FN_VOID_VAR, BT_PTR, BT_SIZE)