OSDN Git Service

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