1 /* Copyright (C
) 2001, 2002, 2003, 2004, 2005 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
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
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
, 51 Franklin Street
, Fifth Floor
, Boston
, MA
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)
35 DEF_FUNCTION_TYPE_5 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5)
37 These macros describe function types. ENUM is as above. The
38 RETURN type is one of the enumerals already defined. ARG1, ARG2,
39 and ARG3 give the types of the arguments, similarly.
41 DEF_FUNCTION_TYPE_VAR_0 (ENUM, RETURN)
42 DEF_FUNCTION_TYPE_VAR_1 (ENUM, RETURN, ARG1)
43 DEF_FUNCTION_TYPE_VAR_2 (ENUM, RETURN, ARG1, ARG2)
44 DEF_FUNCTION_TYPE_VAR_3 (ENUM, RETURN, ARG1, ARG2, ARG3)
45 DEF_FUNCTION_TYPE_VAR_4 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4)
47 Similar, but for function types that take variable arguments.
50 DEF_FUNCTION_TYPE_1 (BT_INT_DOUBLE, BT_INT, BT_DOUBLE)
52 describes the type `int ()(double)', using the enumeral
53 BT_INT_DOUBLE
, whereas
:
55 DEF_FUNCTION_TYPE_VAR_1 (BT_INT_DOUBLE_VAR
, BT_INT
, BT_DOUBLE
)
57 describes the type `
int ()(double
, ...
)'.
59 DEF_POINTER_TYPE (ENUM, TYPE)
61 This macro describes a pointer type. ENUM is as above; TYPE is
62 the type pointed to. */
64 DEF_PRIMITIVE_TYPE (BT_VOID, void_type_node)
65 DEF_PRIMITIVE_TYPE (BT_BOOL, boolean_type_node)
66 DEF_PRIMITIVE_TYPE (BT_INT, integer_type_node)
67 DEF_PRIMITIVE_TYPE (BT_UINT, unsigned_type_node)
68 DEF_PRIMITIVE_TYPE (BT_LONG, long_integer_type_node)
69 DEF_PRIMITIVE_TYPE (BT_ULONG, long_unsigned_type_node)
70 DEF_PRIMITIVE_TYPE (BT_LONGLONG, long_long_integer_type_node)
71 DEF_PRIMITIVE_TYPE (BT_ULONGLONG, long_long_unsigned_type_node)
72 DEF_PRIMITIVE_TYPE (BT_INTMAX, intmax_type_node)
73 DEF_PRIMITIVE_TYPE (BT_UINTMAX, uintmax_type_node)
74 DEF_PRIMITIVE_TYPE (BT_WORD, (*lang_hooks.types.type_for_mode) (word_mode, 0))
75 DEF_PRIMITIVE_TYPE (BT_FLOAT, float_type_node)
76 DEF_PRIMITIVE_TYPE (BT_DOUBLE, double_type_node)
77 DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE, long_double_type_node)
78 DEF_PRIMITIVE_TYPE (BT_COMPLEX_FLOAT, complex_float_type_node)
79 DEF_PRIMITIVE_TYPE (BT_COMPLEX_DOUBLE, complex_double_type_node)
80 DEF_PRIMITIVE_TYPE (BT_COMPLEX_LONGDOUBLE, complex_long_double_type_node)
82 DEF_PRIMITIVE_TYPE (BT_PTR, ptr_type_node)
83 DEF_PRIMITIVE_TYPE (BT_FILEPTR, fileptr_type_node)
84 DEF_PRIMITIVE_TYPE (BT_CONST_PTR, const_ptr_type_node)
85 DEF_PRIMITIVE_TYPE (BT_VOLATILE_PTR,
87 (build_qualified_type (void_type_node,
89 DEF_PRIMITIVE_TYPE (BT_PTRMODE, (*lang_hooks.types.type_for_mode)(ptr_mode, 0))
90 DEF_PRIMITIVE_TYPE (BT_INT_PTR, integer_ptr_type_node)
91 DEF_PRIMITIVE_TYPE (BT_FLOAT_PTR, float_ptr_type_node)
92 DEF_PRIMITIVE_TYPE (BT_DOUBLE_PTR, double_ptr_type_node)
93 DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE_PTR, long_double_ptr_type_node)
94 DEF_PRIMITIVE_TYPE (BT_PID, pid_type_node)
95 DEF_PRIMITIVE_TYPE (BT_SIZE, size_type_node)
96 DEF_PRIMITIVE_TYPE (BT_SSIZE, signed_size_type_node)
97 DEF_PRIMITIVE_TYPE (BT_WINT, wint_type_node)
98 DEF_PRIMITIVE_TYPE (BT_STRING, string_type_node)
99 DEF_PRIMITIVE_TYPE (BT_CONST_STRING, const_string_type_node)
101 DEF_PRIMITIVE_TYPE (BT_VALIST_REF, va_list_ref_type_node)
102 DEF_PRIMITIVE_TYPE (BT_VALIST_ARG, va_list_arg_type_node)
104 DEF_PRIMITIVE_TYPE (BT_I1, builtin_type_for_size (BITS_PER_UNIT*1, 1))
105 DEF_PRIMITIVE_TYPE (BT_I2, builtin_type_for_size (BITS_PER_UNIT*2, 1))
106 DEF_PRIMITIVE_TYPE (BT_I4, builtin_type_for_size (BITS_PER_UNIT*4, 1))
107 DEF_PRIMITIVE_TYPE (BT_I8, builtin_type_for_size (BITS_PER_UNIT*8, 1))
109 DEF_POINTER_TYPE (BT_PTR_CONST_STRING, BT_CONST_STRING)
111 DEF_FUNCTION_TYPE_0 (BT_FN_VOID, BT_VOID)
112 DEF_FUNCTION_TYPE_0 (BT_FN_PTR, BT_PTR)
113 DEF_FUNCTION_TYPE_0 (BT_FN_PID, BT_PID)
114 DEF_FUNCTION_TYPE_0 (BT_FN_UINT, BT_UINT)
115 DEF_FUNCTION_TYPE_0 (BT_FN_FLOAT, BT_FLOAT)
116 DEF_FUNCTION_TYPE_0 (BT_FN_DOUBLE, BT_DOUBLE)
117 /* For "long double" we use LONGDOUBLE (not LONG_DOUBLE) to
118 distinguish it from two types in sequence, "long" followed by
120 DEF_FUNCTION_TYPE_0 (BT_FN_LONGDOUBLE, BT_LONGDOUBLE)
122 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONG, BT_LONG, BT_LONG)
123 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGLONG, BT_LONGLONG, BT_LONGLONG)
124 DEF_FUNCTION_TYPE_1 (BT_FN_INTMAX_INTMAX, BT_INTMAX, BT_INTMAX)
125 DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_FLOAT, BT_FLOAT, BT_FLOAT)
126 DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_DOUBLE, BT_DOUBLE, BT_DOUBLE)
127 DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_LONGDOUBLE,
128 BT_LONGDOUBLE, BT_LONGDOUBLE)
129 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT,
130 BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
131 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
132 BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
133 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE,
134 BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
135 DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_COMPLEX_FLOAT,
136 BT_FLOAT, BT_COMPLEX_FLOAT)
137 DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_COMPLEX_DOUBLE,
138 BT_DOUBLE, BT_COMPLEX_DOUBLE)
139 DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_COMPLEX_LONGDOUBLE,
140 BT_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
141 DEF_FUNCTION_TYPE_1 (BT_FN_PTR_UINT, BT_PTR, BT_UINT)
142 DEF_FUNCTION_TYPE_1 (BT_FN_PTR_SIZE, BT_PTR, BT_SIZE)
143 DEF_FUNCTION_TYPE_1 (BT_FN_INT_INT, BT_INT, BT_INT)
144 DEF_FUNCTION_TYPE_1 (BT_FN_INT_UINT, BT_INT, BT_UINT)
145 DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONG, BT_INT, BT_LONG)
146 DEF_FUNCTION_TYPE_1 (BT_FN_INT_ULONG, BT_INT, BT_ULONG)
147 DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGLONG, BT_INT, BT_LONGLONG)
148 DEF_FUNCTION_TYPE_1 (BT_FN_INT_ULONGLONG, BT_INT, BT_ULONGLONG)
149 DEF_FUNCTION_TYPE_1 (BT_FN_INT_INTMAX, BT_INT, BT_INTMAX)
150 DEF_FUNCTION_TYPE_1 (BT_FN_INT_UINTMAX, BT_INT, BT_UINTMAX)
151 DEF_FUNCTION_TYPE_1 (BT_FN_INT_PTR, BT_INT, BT_PTR)
152 DEF_FUNCTION_TYPE_1 (BT_FN_INT_FLOAT, BT_INT, BT_FLOAT)
153 DEF_FUNCTION_TYPE_1 (BT_FN_INT_DOUBLE, BT_INT, BT_DOUBLE)
154 DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
155 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_FLOAT, BT_LONG, BT_FLOAT)
156 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_DOUBLE, BT_LONG, BT_DOUBLE)
157 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONGDOUBLE, BT_LONG, BT_LONGDOUBLE)
158 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_FLOAT, BT_LONGLONG, BT_FLOAT)
159 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_DOUBLE, BT_LONGLONG, BT_DOUBLE)
160 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGDOUBLE, BT_LONGLONG, BT_LONGDOUBLE)
161 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTR, BT_VOID, BT_PTR)
162 DEF_FUNCTION_TYPE_1 (BT_FN_SIZE_CONST_STRING, BT_SIZE, BT_CONST_STRING)
163 DEF_FUNCTION_TYPE_1 (BT_FN_INT_CONST_STRING, BT_INT, BT_CONST_STRING)
164 DEF_FUNCTION_TYPE_1 (BT_FN_PTR_PTR, BT_PTR, BT_PTR)
165 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VALIST_REF, BT_VOID, BT_VALIST_REF)
166 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_INT, BT_VOID, BT_INT)
167 DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_CONST_STRING, BT_FLOAT, BT_CONST_STRING)
168 DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_CONST_STRING, BT_DOUBLE, BT_CONST_STRING)
169 DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_CONST_STRING,
170 BT_LONGDOUBLE, BT_CONST_STRING)
171 DEF_FUNCTION_TYPE_1 (BT_FN_STRING_CONST_STRING, BT_STRING, BT_CONST_STRING)
172 DEF_FUNCTION_TYPE_1 (BT_FN_WORD_PTR, BT_WORD, BT_PTR)
173 DEF_FUNCTION_TYPE_1 (BT_FN_INT_WINT, BT_INT, BT_WINT)
174 DEF_FUNCTION_TYPE_1 (BT_FN_WINT_WINT, BT_WINT, BT_WINT)
175 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VPTR, BT_VOID, BT_VOLATILE_PTR)
177 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_INT, BT_VOID, BT_PTR, BT_INT)
178 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_STRING_CONST_STRING,
179 BT_STRING, BT_STRING, BT_CONST_STRING)
180 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_CONST_STRING,
181 BT_INT, BT_CONST_STRING, BT_CONST_STRING)
182 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_CONST_STRING,
183 BT_STRING, BT_CONST_STRING, BT_CONST_STRING)
184 DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_STRING_CONST_STRING,
185 BT_SIZE, BT_CONST_STRING, BT_CONST_STRING)
186 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_INT,
187 BT_STRING, BT_CONST_STRING, BT_INT)
188 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_SIZE,
189 BT_STRING, BT_CONST_STRING, BT_SIZE)
190 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_FILEPTR,
191 BT_INT, BT_CONST_STRING, BT_FILEPTR)
192 DEF_FUNCTION_TYPE_2 (BT_FN_INT_INT_FILEPTR,
193 BT_INT, BT_INT, BT_FILEPTR)
194 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTRMODE_PTR,
195 BT_VOID, BT_PTRMODE, BT_PTR)
196 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VALIST_REF_VALIST_ARG,
197 BT_VOID, BT_VALIST_REF, BT_VALIST_ARG)
198 DEF_FUNCTION_TYPE_2 (BT_FN_LONG_LONG_LONG,
199 BT_LONG, BT_LONG, BT_LONG)
200 DEF_FUNCTION_TYPE_2 (BT_FN_INT_PTR_CONST_STRING,
201 BT_INT, BT_PTR, BT_CONST_STRING)
202 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_SIZE,
203 BT_VOID, BT_PTR, BT_SIZE)
204 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOAT,
205 BT_FLOAT, BT_FLOAT, BT_FLOAT)
206 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLE,
207 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
208 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
209 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
210 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOATPTR,
211 BT_FLOAT, BT_FLOAT, BT_FLOAT_PTR)
212 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLEPTR,
213 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE_PTR)
214 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLEPTR,
215 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR)
216 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONGDOUBLE,
217 BT_FLOAT, BT_FLOAT, BT_LONGDOUBLE)
218 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONGDOUBLE,
219 BT_DOUBLE, BT_DOUBLE, BT_LONGDOUBLE)
220 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INT,
221 BT_FLOAT, BT_FLOAT, BT_INT)
222 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INT,
223 BT_DOUBLE, BT_DOUBLE, BT_INT)
224 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INT,
225 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT)
226 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INTPTR,
227 BT_FLOAT, BT_FLOAT, BT_INT_PTR)
228 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INTPTR,
229 BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
230 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR,
231 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
232 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_INT_FLOAT,
233 BT_FLOAT, BT_INT, BT_FLOAT)
234 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_INT_DOUBLE,
235 BT_DOUBLE, BT_INT, BT_DOUBLE)
236 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_INT_LONGDOUBLE,
237 BT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
238 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONG,
239 BT_FLOAT, BT_FLOAT, BT_LONG)
240 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONG,
241 BT_DOUBLE, BT_DOUBLE, BT_LONG)
242 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONG,
243 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONG)
244 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_VALIST_ARG,
245 BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
246 DEF_FUNCTION_TYPE_2 (BT_FN_PTR_SIZE_SIZE,
247 BT_PTR, BT_SIZE, BT_SIZE)
248 DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT,
249 BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
250 DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
251 BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
252 DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE,
253 BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
254 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_PTR, BT_VOID, BT_PTR, BT_PTR)
255 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
256 BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING)
257 DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_PTR_INT, BT_SIZE, BT_CONST_PTR, BT_INT)
258 DEF_FUNCTION_TYPE_2 (BT_FN_I1_VPTR_I1, BT_I1, BT_VOLATILE_PTR, BT_I1)
259 DEF_FUNCTION_TYPE_2 (BT_FN_I2_VPTR_I2, BT_I2, BT_VOLATILE_PTR, BT_I2)
260 DEF_FUNCTION_TYPE_2 (BT_FN_I4_VPTR_I4, BT_I4, BT_VOLATILE_PTR, BT_I4)
261 DEF_FUNCTION_TYPE_2 (BT_FN_I8_VPTR_I8, BT_I8, BT_VOLATILE_PTR, BT_I8)
263 DEF_FUNCTION_TYPE_3 (BT_FN_STRING_STRING_CONST_STRING_SIZE,
264 BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE)
265 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_SIZE,
266 BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_SIZE)
267 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_CONST_PTR_SIZE,
268 BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE)
269 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_PTR_CONST_PTR_SIZE,
270 BT_INT, BT_CONST_PTR, BT_CONST_PTR, BT_SIZE)
271 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_INT_SIZE,
272 BT_PTR, BT_PTR, BT_INT, BT_SIZE)
273 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_INT_INT,
274 BT_VOID, BT_PTR, BT_INT, BT_INT)
275 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_CONST_PTR_PTR_SIZE,
276 BT_VOID, BT_CONST_PTR, BT_PTR, BT_SIZE)
277 DEF_FUNCTION_TYPE_3 (BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
278 BT_INT, BT_STRING, BT_CONST_STRING, BT_VALIST_ARG)
279 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
280 BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_VALIST_ARG)
281 DEF_FUNCTION_TYPE_3 (BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
282 BT_INT, BT_FILEPTR, BT_CONST_STRING, BT_VALIST_ARG)
283 DEF_FUNCTION_TYPE_3 (BT_FN_STRING_CONST_STRING_CONST_STRING_INT,
284 BT_STRING, BT_CONST_STRING, BT_CONST_STRING, BT_INT)
285 DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_FLOAT,
286 BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_FLOAT)
287 DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_DOUBLE,
288 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
289 DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
290 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
291 DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_INTPTR,
292 BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_INT_PTR)
293 DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR,
294 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
295 DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR,
296 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
297 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR,
298 BT_VOID, BT_FLOAT, BT_FLOAT_PTR, BT_FLOAT_PTR)
299 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR,
300 BT_VOID, BT_DOUBLE, BT_DOUBLE_PTR, BT_DOUBLE_PTR)
301 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR,
302 BT_VOID, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR, BT_LONGDOUBLE_PTR)
303 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_PTR_PTR, BT_VOID, BT_PTR, BT_PTR, BT_PTR)
304 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING,
305 BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING, BT_PTR_CONST_STRING)
306 DEF_FUNCTION_TYPE_3 (BT_FN_INT_INT_CONST_STRING_VALIST_ARG,
307 BT_INT, BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
308 DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I1_I1, BT_BOOL, BT_VOLATILE_PTR,
310 DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I2_I2, BT_BOOL, BT_VOLATILE_PTR,
312 DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I4_I4, BT_BOOL, BT_VOLATILE_PTR,
314 DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I8_I8, BT_BOOL, BT_VOLATILE_PTR,
316 DEF_FUNCTION_TYPE_3 (BT_FN_I1_VPTR_I1_I1, BT_I1, BT_VOLATILE_PTR, BT_I1, BT_I1)
317 DEF_FUNCTION_TYPE_3 (BT_FN_I2_VPTR_I2_I2, BT_I2, BT_VOLATILE_PTR, BT_I2, BT_I2)
318 DEF_FUNCTION_TYPE_3 (BT_FN_I4_VPTR_I4_I4, BT_I4, BT_VOLATILE_PTR, BT_I4, BT_I4)
319 DEF_FUNCTION_TYPE_3 (BT_FN_I8_VPTR_I8_I8, BT_I8, BT_VOLATILE_PTR, BT_I8, BT_I8)
321 DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
322 BT_SIZE, BT_CONST_PTR, BT_SIZE, BT_SIZE, BT_FILEPTR)
323 DEF_FUNCTION_TYPE_4 (BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
324 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_VALIST_ARG)
325 DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR,
326 BT_SIZE, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_CONST_PTR)
327 DEF_FUNCTION_TYPE_4 (BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE,
328 BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE, BT_SIZE)
329 DEF_FUNCTION_TYPE_4 (BT_FN_PTR_PTR_INT_SIZE_SIZE,
330 BT_PTR, BT_PTR, BT_INT, BT_SIZE, BT_SIZE)
331 DEF_FUNCTION_TYPE_4 (BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE,
332 BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE, BT_SIZE)
333 DEF_FUNCTION_TYPE_4 (BT_FN_INT_FILEPTR_INT_CONST_STRING_VALIST_ARG,
334 BT_INT, BT_FILEPTR, BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
336 DEF_FUNCTION_TYPE_5 (BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG,
337 BT_INT, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING,
340 DEF_FUNCTION_TYPE_6 (BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG,
341 BT_INT, BT_STRING, BT_SIZE, BT_INT, BT_SIZE,
342 BT_CONST_STRING, BT_VALIST_ARG)
344 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_VOID_VAR, BT_VOID)
345 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_INT_VAR, BT_INT)
346 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_PTR_VAR, BT_PTR)
348 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_VALIST_REF_VAR,
349 BT_VOID, BT_VALIST_REF)
350 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_CONST_PTR_VAR,
351 BT_VOID, BT_CONST_PTR)
352 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_INT_CONST_STRING_VAR,
353 BT_INT, BT_CONST_STRING)
355 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_FILEPTR_CONST_STRING_VAR,
356 BT_INT, BT_FILEPTR, BT_CONST_STRING)
357 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_STRING_CONST_STRING_VAR,
358 BT_INT, BT_STRING, BT_CONST_STRING)
359 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
360 BT_INT, BT_CONST_STRING, BT_CONST_STRING)
361 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_INT_CONST_STRING_VAR,
362 BT_INT, BT_INT, BT_CONST_STRING)
364 DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_STRING_SIZE_CONST_STRING_VAR,
365 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING)
366 DEF_FUNCTION_TYPE_VAR_3 (BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR,
367 BT_SSIZE, BT_STRING, BT_SIZE, BT_CONST_STRING)
368 DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR,
369 BT_INT, BT_FILEPTR, BT_INT, BT_CONST_STRING)
371 DEF_FUNCTION_TYPE_VAR_4 (BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR,
372 BT_INT, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING)
374 DEF_FUNCTION_TYPE_VAR_5 (BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR,
375 BT_INT, BT_STRING, BT_SIZE, BT_INT, BT_SIZE,
378 DEF_POINTER_TYPE (BT_PTR_FN_VOID_VAR, BT_FN_VOID_VAR)
379 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE,
380 BT_PTR, BT_PTR_FN_VOID_VAR, BT_PTR, BT_SIZE)