OSDN Git Service

* gcc.c (trad_capable_cpp, default_compilers): Don't handle
[pf3gnuchains/gcc-fork.git] / gcc / builtin-types.def
1 /* Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
2    Free Software Foundation, Inc.
3
4 This file is part of GCC.
5
6 GCC is free software; you can redistribute it and/or modify it under
7 the terms of the GNU General Public License as published by the Free
8 Software Foundation; either version 3, or (at your option) any later
9 version.
10
11 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
12 WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14 for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with GCC; see the file COPYING3.  If not see
18 <http://www.gnu.org/licenses/>.  */
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      etc, 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_5 (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_INT128, int128_integer_type_node)
76 DEF_PRIMITIVE_TYPE (BT_UINT128, int128_unsigned_type_node)
77 DEF_PRIMITIVE_TYPE (BT_INTMAX, intmax_type_node)
78 DEF_PRIMITIVE_TYPE (BT_UINTMAX, uintmax_type_node)
79 DEF_PRIMITIVE_TYPE (BT_UINT32, uint32_type_node)
80 DEF_PRIMITIVE_TYPE (BT_UINT64, uint64_type_node)
81 DEF_PRIMITIVE_TYPE (BT_WORD, (*lang_hooks.types.type_for_mode) (word_mode, 1))
82 DEF_PRIMITIVE_TYPE (BT_UNWINDWORD, (*lang_hooks.types.type_for_mode)
83                                     (targetm.unwind_word_mode (), 1))
84 DEF_PRIMITIVE_TYPE (BT_FLOAT, float_type_node)
85 DEF_PRIMITIVE_TYPE (BT_DOUBLE, double_type_node)
86 DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE, long_double_type_node)
87 DEF_PRIMITIVE_TYPE (BT_COMPLEX_FLOAT, complex_float_type_node)
88 DEF_PRIMITIVE_TYPE (BT_COMPLEX_DOUBLE, complex_double_type_node)
89 DEF_PRIMITIVE_TYPE (BT_COMPLEX_LONGDOUBLE, complex_long_double_type_node)
90
91 DEF_PRIMITIVE_TYPE (BT_PTR, ptr_type_node)
92 DEF_PRIMITIVE_TYPE (BT_FILEPTR, fileptr_type_node)
93 DEF_PRIMITIVE_TYPE (BT_CONST_PTR, const_ptr_type_node)
94 DEF_PRIMITIVE_TYPE (BT_VOLATILE_PTR,
95                     build_pointer_type
96                      (build_qualified_type (void_type_node,
97                                             TYPE_QUAL_VOLATILE)))
98 DEF_PRIMITIVE_TYPE (BT_PTRMODE, (*lang_hooks.types.type_for_mode)(ptr_mode, 0))
99 DEF_PRIMITIVE_TYPE (BT_INT_PTR, integer_ptr_type_node)
100 DEF_PRIMITIVE_TYPE (BT_FLOAT_PTR, float_ptr_type_node)
101 DEF_PRIMITIVE_TYPE (BT_DOUBLE_PTR, double_ptr_type_node)
102 DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE_PTR, long_double_ptr_type_node)
103 DEF_PRIMITIVE_TYPE (BT_PID, pid_type_node)
104 DEF_PRIMITIVE_TYPE (BT_SIZE, size_type_node)
105 DEF_PRIMITIVE_TYPE (BT_SSIZE, signed_size_type_node)
106 DEF_PRIMITIVE_TYPE (BT_WINT, wint_type_node)
107 DEF_PRIMITIVE_TYPE (BT_STRING, string_type_node)
108 DEF_PRIMITIVE_TYPE (BT_CONST_STRING, const_string_type_node)
109
110 DEF_PRIMITIVE_TYPE (BT_DFLOAT32, dfloat32_type_node)
111 DEF_PRIMITIVE_TYPE (BT_DFLOAT64, dfloat64_type_node)
112 DEF_PRIMITIVE_TYPE (BT_DFLOAT128, dfloat128_type_node)
113 DEF_PRIMITIVE_TYPE (BT_DFLOAT32_PTR, dfloat32_ptr_type_node)
114 DEF_PRIMITIVE_TYPE (BT_DFLOAT64_PTR, dfloat64_ptr_type_node)
115 DEF_PRIMITIVE_TYPE (BT_DFLOAT128_PTR, dfloat128_ptr_type_node)
116
117 DEF_PRIMITIVE_TYPE (BT_VALIST_REF, va_list_ref_type_node)
118 DEF_PRIMITIVE_TYPE (BT_VALIST_ARG, va_list_arg_type_node)
119
120 DEF_PRIMITIVE_TYPE (BT_I1, builtin_type_for_size (BITS_PER_UNIT*1, 1))
121 DEF_PRIMITIVE_TYPE (BT_I2, builtin_type_for_size (BITS_PER_UNIT*2, 1))
122 DEF_PRIMITIVE_TYPE (BT_I4, builtin_type_for_size (BITS_PER_UNIT*4, 1))
123 DEF_PRIMITIVE_TYPE (BT_I8, builtin_type_for_size (BITS_PER_UNIT*8, 1))
124 DEF_PRIMITIVE_TYPE (BT_I16, builtin_type_for_size (BITS_PER_UNIT*16, 1))
125
126 DEF_POINTER_TYPE (BT_PTR_CONST_STRING, BT_CONST_STRING)
127 DEF_POINTER_TYPE (BT_PTR_LONG, BT_LONG)
128 DEF_POINTER_TYPE (BT_PTR_ULONGLONG, BT_ULONGLONG)
129 DEF_POINTER_TYPE (BT_PTR_PTR, BT_PTR)
130
131 DEF_FUNCTION_TYPE_0 (BT_FN_VOID, BT_VOID)
132 DEF_FUNCTION_TYPE_0 (BT_FN_BOOL, BT_BOOL)
133 DEF_FUNCTION_TYPE_0 (BT_FN_PTR, BT_PTR)
134 DEF_FUNCTION_TYPE_0 (BT_FN_PID, BT_PID)
135 DEF_FUNCTION_TYPE_0 (BT_FN_INT, BT_INT)
136 DEF_FUNCTION_TYPE_0 (BT_FN_UINT, BT_UINT)
137 DEF_FUNCTION_TYPE_0 (BT_FN_FLOAT, BT_FLOAT)
138 DEF_FUNCTION_TYPE_0 (BT_FN_DOUBLE, BT_DOUBLE)
139 /* For "long double" we use LONGDOUBLE (not LONG_DOUBLE) to
140    distinguish it from two types in sequence, "long" followed by
141    "double".  */
142 DEF_FUNCTION_TYPE_0 (BT_FN_LONGDOUBLE, BT_LONGDOUBLE)
143 DEF_FUNCTION_TYPE_0 (BT_FN_DFLOAT32, BT_DFLOAT32)
144 DEF_FUNCTION_TYPE_0 (BT_FN_DFLOAT64, BT_DFLOAT64)
145 DEF_FUNCTION_TYPE_0 (BT_FN_DFLOAT128, BT_DFLOAT128)
146
147 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONG, BT_LONG, BT_LONG)
148 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGLONG, BT_LONGLONG, BT_LONGLONG)
149 DEF_FUNCTION_TYPE_1 (BT_FN_INTMAX_INTMAX, BT_INTMAX, BT_INTMAX)
150 DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_FLOAT, BT_FLOAT, BT_FLOAT)
151 DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_DOUBLE, BT_DOUBLE, BT_DOUBLE)
152 DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_LONGDOUBLE,
153                      BT_LONGDOUBLE, BT_LONGDOUBLE)
154 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT,
155                      BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
156 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
157                      BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
158 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE,
159                      BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
160 DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_COMPLEX_FLOAT,
161                      BT_FLOAT, BT_COMPLEX_FLOAT)
162 DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_COMPLEX_DOUBLE,
163                      BT_DOUBLE, BT_COMPLEX_DOUBLE)
164 DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_COMPLEX_LONGDOUBLE,
165                      BT_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
166 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_FLOAT_FLOAT,
167                      BT_COMPLEX_FLOAT, BT_FLOAT)
168 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_DOUBLE_DOUBLE,
169                      BT_COMPLEX_DOUBLE, BT_DOUBLE)
170 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_LONGDOUBLE_LONGDOUBLE,
171                      BT_COMPLEX_LONGDOUBLE, BT_LONGDOUBLE)
172 DEF_FUNCTION_TYPE_1 (BT_FN_PTR_UINT, BT_PTR, BT_UINT)
173 DEF_FUNCTION_TYPE_1 (BT_FN_PTR_SIZE, BT_PTR, BT_SIZE)
174 DEF_FUNCTION_TYPE_1 (BT_FN_INT_INT, BT_INT, BT_INT)
175 DEF_FUNCTION_TYPE_1 (BT_FN_INT_UINT, BT_INT, BT_UINT)
176 DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONG, BT_INT, BT_LONG)
177 DEF_FUNCTION_TYPE_1 (BT_FN_INT_ULONG, BT_INT, BT_ULONG)
178 DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGLONG, BT_INT, BT_LONGLONG)
179 DEF_FUNCTION_TYPE_1 (BT_FN_INT_ULONGLONG, BT_INT, BT_ULONGLONG)
180 DEF_FUNCTION_TYPE_1 (BT_FN_INT_INTMAX, BT_INT, BT_INTMAX)
181 DEF_FUNCTION_TYPE_1 (BT_FN_INT_UINTMAX, BT_INT, BT_UINTMAX)
182 DEF_FUNCTION_TYPE_1 (BT_FN_INT_PTR, BT_INT, BT_PTR)
183 DEF_FUNCTION_TYPE_1 (BT_FN_INT_FLOAT, BT_INT, BT_FLOAT)
184 DEF_FUNCTION_TYPE_1 (BT_FN_INT_DOUBLE, BT_INT, BT_DOUBLE)
185 DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
186 DEF_FUNCTION_TYPE_1 (BT_FN_INT_DFLOAT32, BT_INT, BT_DFLOAT32)
187 DEF_FUNCTION_TYPE_1 (BT_FN_INT_DFLOAT64, BT_INT, BT_DFLOAT64)
188 DEF_FUNCTION_TYPE_1 (BT_FN_INT_DFLOAT128, BT_INT, BT_DFLOAT128)
189 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_FLOAT, BT_LONG, BT_FLOAT)
190 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_DOUBLE, BT_LONG, BT_DOUBLE)
191 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONGDOUBLE, BT_LONG, BT_LONGDOUBLE)
192 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_FLOAT, BT_LONGLONG, BT_FLOAT)
193 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_DOUBLE, BT_LONGLONG, BT_DOUBLE)
194 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGDOUBLE, BT_LONGLONG, BT_LONGDOUBLE)
195 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTR, BT_VOID, BT_PTR)
196 DEF_FUNCTION_TYPE_1 (BT_FN_SIZE_CONST_STRING, BT_SIZE, BT_CONST_STRING)
197 DEF_FUNCTION_TYPE_1 (BT_FN_INT_CONST_STRING, BT_INT, BT_CONST_STRING)
198 DEF_FUNCTION_TYPE_1 (BT_FN_PTR_PTR, BT_PTR, BT_PTR)
199 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VALIST_REF, BT_VOID, BT_VALIST_REF)
200 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_INT, BT_VOID, BT_INT)
201 DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_CONST_STRING, BT_FLOAT, BT_CONST_STRING)
202 DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_CONST_STRING, BT_DOUBLE, BT_CONST_STRING)
203 DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_CONST_STRING,
204                      BT_LONGDOUBLE, BT_CONST_STRING)
205 DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT32_CONST_STRING, BT_DFLOAT32, BT_CONST_STRING)
206 DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT64_CONST_STRING, BT_DFLOAT64, BT_CONST_STRING)
207 DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT128_CONST_STRING,
208                      BT_DFLOAT128, BT_CONST_STRING)
209 DEF_FUNCTION_TYPE_1 (BT_FN_STRING_CONST_STRING, BT_STRING, BT_CONST_STRING)
210 DEF_FUNCTION_TYPE_1 (BT_FN_UNWINDWORD_PTR, BT_UNWINDWORD, BT_PTR)
211 DEF_FUNCTION_TYPE_1 (BT_FN_INT_WINT, BT_INT, BT_WINT)
212 DEF_FUNCTION_TYPE_1 (BT_FN_WINT_WINT, BT_WINT, BT_WINT)
213 DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT32_DFLOAT32, BT_DFLOAT32, BT_DFLOAT32)
214 DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT64_DFLOAT64, BT_DFLOAT64, BT_DFLOAT64)
215 DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT128_DFLOAT128, BT_DFLOAT128, BT_DFLOAT128)
216 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VPTR, BT_VOID, BT_VOLATILE_PTR)
217 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTRPTR, BT_VOID, BT_PTR_PTR)
218 DEF_FUNCTION_TYPE_1 (BT_FN_UINT_UINT, BT_UINT, BT_UINT)
219 DEF_FUNCTION_TYPE_1 (BT_FN_ULONG_ULONG, BT_ULONG, BT_ULONG)
220 DEF_FUNCTION_TYPE_1 (BT_FN_ULONGLONG_ULONGLONG, BT_ULONGLONG, BT_ULONGLONG)
221 DEF_FUNCTION_TYPE_1 (BT_FN_UINT32_UINT32, BT_UINT32, BT_UINT32)
222 DEF_FUNCTION_TYPE_1 (BT_FN_UINT64_UINT64, BT_UINT64, BT_UINT64)
223
224 DEF_POINTER_TYPE (BT_PTR_FN_VOID_PTR, BT_FN_VOID_PTR)
225
226 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_INT, BT_VOID, BT_PTR, BT_INT)
227 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_STRING_CONST_STRING,
228                      BT_STRING, BT_STRING, BT_CONST_STRING)
229 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_CONST_STRING,
230                      BT_INT, BT_CONST_STRING, BT_CONST_STRING)
231 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_CONST_STRING,
232                      BT_STRING, BT_CONST_STRING, BT_CONST_STRING)
233 DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_STRING_CONST_STRING,
234                      BT_SIZE, BT_CONST_STRING, BT_CONST_STRING)
235 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_INT,
236                      BT_STRING, BT_CONST_STRING, BT_INT)
237 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_SIZE,
238                      BT_STRING, BT_CONST_STRING, BT_SIZE)
239 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_FILEPTR,
240                      BT_INT, BT_CONST_STRING, BT_FILEPTR)
241 DEF_FUNCTION_TYPE_2 (BT_FN_INT_INT_FILEPTR,
242                      BT_INT, BT_INT, BT_FILEPTR)
243 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTRMODE_PTR,
244                      BT_VOID, BT_PTRMODE, BT_PTR)
245 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VALIST_REF_VALIST_ARG,
246                      BT_VOID, BT_VALIST_REF, BT_VALIST_ARG)
247 DEF_FUNCTION_TYPE_2 (BT_FN_LONG_LONG_LONG,
248                      BT_LONG, BT_LONG, BT_LONG)
249 DEF_FUNCTION_TYPE_2 (BT_FN_INT_PTR_CONST_STRING,
250                      BT_INT, BT_PTR, BT_CONST_STRING)
251 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_SIZE,
252                      BT_VOID, BT_PTR, BT_SIZE)
253 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOAT,
254                      BT_FLOAT, BT_FLOAT, BT_FLOAT)
255 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLE,
256                      BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
257 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
258                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
259 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOATPTR,
260                      BT_FLOAT, BT_FLOAT, BT_FLOAT_PTR)
261 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLEPTR,
262                      BT_DOUBLE, BT_DOUBLE, BT_DOUBLE_PTR)
263 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLEPTR,
264                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR)
265 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONGDOUBLE,
266                      BT_FLOAT, BT_FLOAT, BT_LONGDOUBLE)
267 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONGDOUBLE,
268                      BT_DOUBLE, BT_DOUBLE, BT_LONGDOUBLE)
269 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INT,
270                      BT_FLOAT, BT_FLOAT, BT_INT)
271 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INT,
272                      BT_DOUBLE, BT_DOUBLE, BT_INT)
273 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INT,
274                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT)
275 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INTPTR,
276                      BT_FLOAT, BT_FLOAT, BT_INT_PTR)
277 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INTPTR,
278                      BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
279 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR,
280                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
281 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_INT_FLOAT,
282                      BT_FLOAT, BT_INT, BT_FLOAT)
283 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_INT_DOUBLE,
284                      BT_DOUBLE, BT_INT, BT_DOUBLE)
285 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_INT_LONGDOUBLE,
286                      BT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
287 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONG,
288                      BT_FLOAT, BT_FLOAT, BT_LONG)
289 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONG,
290                      BT_DOUBLE, BT_DOUBLE, BT_LONG)
291 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONG,
292                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONG)
293 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_VALIST_ARG,
294                      BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
295 DEF_FUNCTION_TYPE_2 (BT_FN_PTR_SIZE_SIZE,
296                      BT_PTR, BT_SIZE, BT_SIZE)
297 DEF_FUNCTION_TYPE_2 (BT_FN_PTR_PTR_SIZE,
298                      BT_PTR, BT_PTR, BT_SIZE)
299 DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT,
300                      BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
301 DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
302                      BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
303 DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE,
304                      BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
305 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_PTR, BT_VOID, BT_PTR, BT_PTR)
306 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
307                      BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING)
308 DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_PTR_INT, BT_SIZE, BT_CONST_PTR, BT_INT)
309 DEF_FUNCTION_TYPE_2 (BT_FN_I1_VPTR_I1, BT_I1, BT_VOLATILE_PTR, BT_I1)
310 DEF_FUNCTION_TYPE_2 (BT_FN_I2_VPTR_I2, BT_I2, BT_VOLATILE_PTR, BT_I2)
311 DEF_FUNCTION_TYPE_2 (BT_FN_I4_VPTR_I4, BT_I4, BT_VOLATILE_PTR, BT_I4)
312 DEF_FUNCTION_TYPE_2 (BT_FN_I8_VPTR_I8, BT_I8, BT_VOLATILE_PTR, BT_I8)
313 DEF_FUNCTION_TYPE_2 (BT_FN_I16_VPTR_I16, BT_I16, BT_VOLATILE_PTR, BT_I16)
314 DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_LONGPTR_LONGPTR,
315                      BT_BOOL, BT_PTR_LONG, BT_PTR_LONG)
316 DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
317                      BT_BOOL, BT_PTR_ULONGLONG, BT_PTR_ULONGLONG)
318
319 DEF_POINTER_TYPE (BT_PTR_FN_VOID_PTR_PTR, BT_FN_VOID_PTR_PTR)
320
321 DEF_FUNCTION_TYPE_3 (BT_FN_STRING_STRING_CONST_STRING_SIZE,
322                      BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE)
323 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_SIZE,
324                      BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_SIZE)
325 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_CONST_PTR_SIZE,
326                      BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE)
327 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_PTR_CONST_PTR_SIZE,
328                      BT_INT, BT_CONST_PTR, BT_CONST_PTR, BT_SIZE)
329 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_INT_SIZE,
330                      BT_PTR, BT_PTR, BT_INT, BT_SIZE)
331 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_INT_INT,
332                      BT_VOID, BT_PTR, BT_INT, BT_INT)
333 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_CONST_PTR_PTR_SIZE,
334                      BT_VOID, BT_CONST_PTR, BT_PTR, BT_SIZE)
335 DEF_FUNCTION_TYPE_3 (BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
336                      BT_INT, BT_STRING, BT_CONST_STRING, BT_VALIST_ARG)
337 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
338                      BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_VALIST_ARG)
339 DEF_FUNCTION_TYPE_3 (BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
340                      BT_INT, BT_FILEPTR, BT_CONST_STRING, BT_VALIST_ARG)
341 DEF_FUNCTION_TYPE_3 (BT_FN_STRING_CONST_STRING_CONST_STRING_INT,
342                      BT_STRING, BT_CONST_STRING, BT_CONST_STRING, BT_INT)
343 DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_FLOAT,
344                      BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_FLOAT)
345 DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_DOUBLE,
346                      BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
347 DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
348                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
349 DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_INTPTR,
350                      BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_INT_PTR)
351 DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR,
352                      BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
353 DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR,
354                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
355 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR,
356                      BT_VOID, BT_FLOAT, BT_FLOAT_PTR, BT_FLOAT_PTR)
357 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR,
358                      BT_VOID, BT_DOUBLE, BT_DOUBLE_PTR, BT_DOUBLE_PTR)
359 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR,
360                      BT_VOID, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR, BT_LONGDOUBLE_PTR)
361 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_PTR_PTR, BT_VOID, BT_PTR, BT_PTR, BT_PTR)
362 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING,
363                      BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING, BT_PTR_CONST_STRING)
364 DEF_FUNCTION_TYPE_3 (BT_FN_INT_INT_CONST_STRING_VALIST_ARG,
365                      BT_INT, BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
366 DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I1_I1, BT_BOOL, BT_VOLATILE_PTR,
367                      BT_I1, BT_I1)
368 DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I2_I2, BT_BOOL, BT_VOLATILE_PTR,
369                      BT_I2, BT_I2)
370 DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I4_I4, BT_BOOL, BT_VOLATILE_PTR,
371                      BT_I4, BT_I4)
372 DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I8_I8, BT_BOOL, BT_VOLATILE_PTR,
373                      BT_I8, BT_I8)
374 DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I16_I16, BT_BOOL, BT_VOLATILE_PTR,
375                      BT_I16, BT_I16)
376 DEF_FUNCTION_TYPE_3 (BT_FN_I1_VPTR_I1_I1, BT_I1, BT_VOLATILE_PTR, BT_I1, BT_I1)
377 DEF_FUNCTION_TYPE_3 (BT_FN_I2_VPTR_I2_I2, BT_I2, BT_VOLATILE_PTR, BT_I2, BT_I2)
378 DEF_FUNCTION_TYPE_3 (BT_FN_I4_VPTR_I4_I4, BT_I4, BT_VOLATILE_PTR, BT_I4, BT_I4)
379 DEF_FUNCTION_TYPE_3 (BT_FN_I8_VPTR_I8_I8, BT_I8, BT_VOLATILE_PTR, BT_I8, BT_I8)
380 DEF_FUNCTION_TYPE_3 (BT_FN_I16_VPTR_I16_I16, BT_I16, BT_VOLATILE_PTR,
381                      BT_I16, BT_I16)
382 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_OMPFN_PTR_UINT, BT_VOID, BT_PTR_FN_VOID_PTR,
383                      BT_PTR, BT_UINT)
384 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_CONST_PTR_INT_SIZE, BT_PTR,
385                      BT_CONST_PTR, BT_INT, BT_SIZE)
386
387 DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
388                      BT_SIZE, BT_CONST_PTR, BT_SIZE, BT_SIZE, BT_FILEPTR)
389 DEF_FUNCTION_TYPE_4 (BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
390                 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_VALIST_ARG)
391 DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR,
392                 BT_SIZE, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_CONST_PTR)
393 DEF_FUNCTION_TYPE_4 (BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE,
394                      BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE, BT_SIZE)
395 DEF_FUNCTION_TYPE_4 (BT_FN_PTR_PTR_INT_SIZE_SIZE,
396                      BT_PTR, BT_PTR, BT_INT, BT_SIZE, BT_SIZE)
397 DEF_FUNCTION_TYPE_4 (BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE,
398                      BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE, BT_SIZE)
399 DEF_FUNCTION_TYPE_4 (BT_FN_INT_FILEPTR_INT_CONST_STRING_VALIST_ARG,
400                      BT_INT, BT_FILEPTR, BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
401 DEF_FUNCTION_TYPE_4 (BT_FN_VOID_OMPFN_PTR_UINT_UINT,
402                      BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT, BT_UINT)
403 DEF_FUNCTION_TYPE_4 (BT_FN_VOID_PTR_WORD_WORD_PTR,
404                      BT_VOID, BT_PTR, BT_WORD, BT_WORD, BT_PTR)
405
406 DEF_FUNCTION_TYPE_5 (BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG,
407                      BT_INT, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING,
408                      BT_VALIST_ARG)
409 DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
410                      BT_BOOL, BT_LONG, BT_LONG, BT_LONG,
411                      BT_PTR_LONG, BT_PTR_LONG)
412
413 DEF_FUNCTION_TYPE_6 (BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG,
414                      BT_INT, BT_STRING, BT_SIZE, BT_INT, BT_SIZE,
415                      BT_CONST_STRING, BT_VALIST_ARG)
416 DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
417                      BT_BOOL, BT_LONG, BT_LONG, BT_LONG, BT_LONG,
418                      BT_PTR_LONG, BT_PTR_LONG)
419 DEF_FUNCTION_TYPE_6 (BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
420                      BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT,
421                      BT_LONG, BT_LONG, BT_LONG)
422 DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
423                      BT_BOOL, BT_BOOL, BT_ULONGLONG, BT_ULONGLONG,
424                      BT_ULONGLONG, BT_PTR_ULONGLONG, BT_PTR_ULONGLONG)
425
426 DEF_FUNCTION_TYPE_7 (BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
427                      BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT,
428                      BT_LONG, BT_LONG, BT_LONG, BT_LONG)
429 DEF_FUNCTION_TYPE_7 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT,
430                      BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR,
431                      BT_PTR_FN_VOID_PTR_PTR, BT_LONG, BT_LONG,
432                      BT_BOOL, BT_UINT)
433 DEF_FUNCTION_TYPE_7 (BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
434                      BT_BOOL, BT_BOOL, BT_ULONGLONG, BT_ULONGLONG,
435                      BT_ULONGLONG, BT_ULONGLONG,
436                      BT_PTR_ULONGLONG, BT_PTR_ULONGLONG)
437
438 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_VOID_VAR, BT_VOID)
439 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_INT_VAR, BT_INT)
440 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_PTR_VAR, BT_PTR)
441
442 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_VALIST_REF_VAR,
443                          BT_VOID, BT_VALIST_REF)
444 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_CONST_PTR_VAR,
445                          BT_VOID, BT_CONST_PTR)
446 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_INT_CONST_STRING_VAR,
447                          BT_INT, BT_CONST_STRING)
448
449 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_FILEPTR_CONST_STRING_VAR,
450                          BT_INT, BT_FILEPTR, BT_CONST_STRING)
451 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_STRING_CONST_STRING_VAR,
452                          BT_INT, BT_STRING, BT_CONST_STRING)
453 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
454                          BT_INT, BT_CONST_STRING, BT_CONST_STRING)
455 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_INT_CONST_STRING_VAR,
456                          BT_INT, BT_INT, BT_CONST_STRING)
457
458 DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_STRING_SIZE_CONST_STRING_VAR,
459                          BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING)
460 DEF_FUNCTION_TYPE_VAR_3 (BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR,
461                          BT_SSIZE, BT_STRING, BT_SIZE, BT_CONST_STRING)
462 DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR,
463                          BT_INT, BT_FILEPTR, BT_INT, BT_CONST_STRING)
464
465 DEF_FUNCTION_TYPE_VAR_4 (BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR,
466                          BT_INT, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING)
467
468 DEF_FUNCTION_TYPE_VAR_5 (BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR,
469                          BT_INT, BT_STRING, BT_SIZE, BT_INT, BT_SIZE,
470                          BT_CONST_STRING)
471
472 DEF_FUNCTION_TYPE_VAR_5 (BT_FN_INT_INT_INT_INT_INT_INT_VAR,
473                          BT_INT, BT_INT, BT_INT, BT_INT, BT_INT, BT_INT)
474
475 DEF_POINTER_TYPE (BT_PTR_FN_VOID_VAR, BT_FN_VOID_VAR)
476 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE,
477                      BT_PTR, BT_PTR_FN_VOID_VAR, BT_PTR, BT_SIZE)