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