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
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
, 59 Temple Place
- Suite
330, 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)
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.
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_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)
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)
90 DEF_PRIMITIVE_TYPE (BT_VALIST_REF, va_list_ref_type_node)
91 DEF_PRIMITIVE_TYPE (BT_VALIST_ARG, va_list_arg_type_node)
93 DEF_POINTER_TYPE (BT_PTR_CONST_STRING, BT_CONST_STRING)
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
104 DEF_FUNCTION_TYPE_0 (BT_FN_LONGDOUBLE, BT_LONGDOUBLE)
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)
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_INT_CONST_STRING_PTR_CONST_STRING,
231 BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING)
233 DEF_FUNCTION_TYPE_3 (BT_FN_STRING_STRING_CONST_STRING_SIZE,
234 BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE)
235 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_SIZE,
236 BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_SIZE)
237 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_CONST_PTR_SIZE,
238 BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE)
239 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_PTR_CONST_PTR_SIZE,
240 BT_INT, BT_CONST_PTR, BT_CONST_PTR, BT_SIZE)
241 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_INT_SIZE,
242 BT_PTR, BT_PTR, BT_INT, BT_SIZE)
243 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_INT_INT,
244 BT_VOID, BT_PTR, BT_INT, BT_INT)
245 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_CONST_PTR_PTR_SIZE,
246 BT_VOID, BT_CONST_PTR, BT_PTR, BT_SIZE)
247 DEF_FUNCTION_TYPE_3 (BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
248 BT_INT, BT_STRING, BT_CONST_STRING, BT_VALIST_ARG)
249 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
250 BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_VALIST_ARG)
251 DEF_FUNCTION_TYPE_3 (BT_FN_INT_PTR_CONST_STRING_VALIST_ARG,
252 BT_INT, BT_PTR, BT_CONST_STRING, BT_VALIST_ARG)
253 DEF_FUNCTION_TYPE_3 (BT_FN_STRING_CONST_STRING_CONST_STRING_INT,
254 BT_STRING, BT_CONST_STRING, BT_CONST_STRING, BT_INT)
255 DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_FLOAT,
256 BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_FLOAT)
257 DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_DOUBLE,
258 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
259 DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
260 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
261 DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_INTPTR,
262 BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_INT_PTR)
263 DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR,
264 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
265 DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR,
266 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
267 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR,
268 BT_VOID, BT_FLOAT, BT_FLOAT_PTR, BT_FLOAT_PTR)
269 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR,
270 BT_VOID, BT_DOUBLE, BT_DOUBLE_PTR, BT_DOUBLE_PTR)
271 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR,
272 BT_VOID, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR, BT_LONGDOUBLE_PTR)
273 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING,
274 BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING, BT_PTR_CONST_STRING)
276 DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR,
277 BT_SIZE, BT_CONST_PTR, BT_SIZE, BT_SIZE, BT_PTR)
278 DEF_FUNCTION_TYPE_4 (BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
279 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_VALIST_ARG)
280 DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR,
281 BT_SIZE, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_CONST_PTR)
283 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_VOID_VAR, BT_VOID)
284 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_INT_VAR, BT_INT)
285 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_PTR_VAR, BT_PTR)
287 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_VALIST_REF_VAR,
288 BT_VOID, BT_VALIST_REF)
289 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_CONST_PTR_VAR,
290 BT_VOID, BT_CONST_PTR)
291 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_INT_CONST_STRING_VAR,
292 BT_INT, BT_CONST_STRING)
294 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_PTR_CONST_STRING_VAR,
295 BT_INT, BT_PTR, BT_CONST_STRING)
296 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_STRING_CONST_STRING_VAR,
297 BT_INT, BT_STRING, BT_CONST_STRING)
298 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
299 BT_INT, BT_CONST_STRING, BT_CONST_STRING)
301 DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_STRING_SIZE_CONST_STRING_VAR,
302 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING)
303 DEF_FUNCTION_TYPE_VAR_3 (BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR,
304 BT_SSIZE, BT_STRING, BT_SIZE, BT_CONST_STRING)
306 DEF_POINTER_TYPE (BT_PTR_FN_VOID_VAR, BT_FN_VOID_VAR)
307 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE,
308 BT_PTR, BT_PTR_FN_VOID_VAR, BT_PTR, BT_SIZE)