1/* Copyright (C) 2001-2013 Free Software Foundation, Inc.
2
3This file is part of GCC.
4
5GCC is free software; you can redistribute it and/or modify it under
6the terms of the GNU General Public License as published by the Free
7Software Foundation; either version 3, or (at your option) any later
8version.
9
10GCC is distributed in the hope that it will be useful, but WITHOUT ANY
11WARRANTY; without even the implied warranty of MERCHANTABILITY or
12FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
13for more details.
14
15You should have received a copy of the GNU General Public License
16along with GCC; see the file COPYING3.  If not see
17<http://www.gnu.org/licenses/>.  */
18
19/* This header provides a declarative way of describing the types that
20   are used when declaring builtin functions.
21
22   Before including this header, you must define the following macros:
23
24   DEF_PRIMITIVE_TYPE (ENUM, TYPE)
25
26     The ENUM is an identifier indicating which type is being defined.
27     TYPE is an expression for a `tree' that represents the type.
28
29   DEF_FUNCTION_TYPE_0 (ENUM, RETURN)
30   DEF_FUNCTION_TYPE_1 (ENUM, RETURN, ARG1)
31   DEF_FUNCTION_TYPE_2 (ENUM, RETURN, ARG1, ARG2)
32   DEF_FUNCTION_TYPE_3 (ENUM, RETURN, ARG1, ARG2, ARG3)
33   DEF_FUNCTION_TYPE_4 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4)
34   DEF_FUNCTION_TYPE_5 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5)
35   DEF_FUNCTION_TYPE_6 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6)
36   DEF_FUNCTION_TYPE_7 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7)
37
38     These macros describe function types.  ENUM is as above.  The
39     RETURN type is one of the enumerals already defined.  ARG1, ARG2,
40     etc, give the types of the arguments, similarly.
41
42   DEF_FUNCTION_TYPE_VAR_0 (ENUM, RETURN)
43   DEF_FUNCTION_TYPE_VAR_1 (ENUM, RETURN, ARG1)
44   DEF_FUNCTION_TYPE_VAR_2 (ENUM, RETURN, ARG1, ARG2)
45   DEF_FUNCTION_TYPE_VAR_3 (ENUM, RETURN, ARG1, ARG2, ARG3)
46   DEF_FUNCTION_TYPE_VAR_4 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4)
47   DEF_FUNCTION_TYPE_VAR_5 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5)
48
49     Similar, but for function types that take variable arguments.
50     For example:
51
52       DEF_FUNCTION_TYPE_1 (BT_INT_DOUBLE, BT_INT, BT_DOUBLE)
53
54     describes the type `int ()(double)', using the enumeral
55     BT_INT_DOUBLE, whereas:
56
57       DEF_FUNCTION_TYPE_VAR_1 (BT_INT_DOUBLE_VAR, BT_INT, BT_DOUBLE)
58
59     describes the type `int ()(double, ...)'.
60
61  DEF_POINTER_TYPE (ENUM, TYPE)
62
63    This macro describes a pointer type.  ENUM is as above; TYPE is
64    the type pointed to.  */
65
66DEF_PRIMITIVE_TYPE (BT_VOID, void_type_node)
67DEF_PRIMITIVE_TYPE (BT_BOOL, boolean_type_node)
68DEF_PRIMITIVE_TYPE (BT_INT, integer_type_node)
69DEF_PRIMITIVE_TYPE (BT_UINT, unsigned_type_node)
70DEF_PRIMITIVE_TYPE (BT_LONG, long_integer_type_node)
71DEF_PRIMITIVE_TYPE (BT_ULONG, long_unsigned_type_node)
72DEF_PRIMITIVE_TYPE (BT_LONGLONG, long_long_integer_type_node)
73DEF_PRIMITIVE_TYPE (BT_ULONGLONG, long_long_unsigned_type_node)
74DEF_PRIMITIVE_TYPE (BT_INT128, int128_integer_type_node)
75DEF_PRIMITIVE_TYPE (BT_UINT128, int128_unsigned_type_node)
76DEF_PRIMITIVE_TYPE (BT_INTMAX, intmax_type_node)
77DEF_PRIMITIVE_TYPE (BT_UINTMAX, uintmax_type_node)
78DEF_PRIMITIVE_TYPE (BT_UINT16, uint16_type_node)
79DEF_PRIMITIVE_TYPE (BT_UINT32, uint32_type_node)
80DEF_PRIMITIVE_TYPE (BT_UINT64, uint64_type_node)
81DEF_PRIMITIVE_TYPE (BT_WORD, (*lang_hooks.types.type_for_mode) (word_mode, 1))
82DEF_PRIMITIVE_TYPE (BT_UNWINDWORD, (*lang_hooks.types.type_for_mode)
83				    (targetm.unwind_word_mode (), 1))
84DEF_PRIMITIVE_TYPE (BT_FLOAT, float_type_node)
85DEF_PRIMITIVE_TYPE (BT_DOUBLE, double_type_node)
86DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE, long_double_type_node)
87DEF_PRIMITIVE_TYPE (BT_COMPLEX_FLOAT, complex_float_type_node)
88DEF_PRIMITIVE_TYPE (BT_COMPLEX_DOUBLE, complex_double_type_node)
89DEF_PRIMITIVE_TYPE (BT_COMPLEX_LONGDOUBLE, complex_long_double_type_node)
90
91DEF_PRIMITIVE_TYPE (BT_PTR, ptr_type_node)
92DEF_PRIMITIVE_TYPE (BT_FILEPTR, fileptr_type_node)
93DEF_PRIMITIVE_TYPE (BT_CONST_PTR, const_ptr_type_node)
94DEF_PRIMITIVE_TYPE (BT_VOLATILE_PTR,
95		    build_pointer_type
96		     (build_qualified_type (void_type_node,
97					    TYPE_QUAL_VOLATILE)))
98DEF_PRIMITIVE_TYPE (BT_CONST_VOLATILE_PTR,
99		    build_pointer_type
100		     (build_qualified_type (void_type_node,
101					  TYPE_QUAL_VOLATILE|TYPE_QUAL_CONST)))
102DEF_PRIMITIVE_TYPE (BT_PTRMODE, (*lang_hooks.types.type_for_mode)(ptr_mode, 0))
103DEF_PRIMITIVE_TYPE (BT_INT_PTR, integer_ptr_type_node)
104DEF_PRIMITIVE_TYPE (BT_FLOAT_PTR, float_ptr_type_node)
105DEF_PRIMITIVE_TYPE (BT_DOUBLE_PTR, double_ptr_type_node)
106DEF_PRIMITIVE_TYPE (BT_CONST_DOUBLE_PTR,
107		    build_pointer_type
108		     (build_qualified_type (double_type_node,
109		     			    TYPE_QUAL_CONST)))
110DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE_PTR, long_double_ptr_type_node)
111DEF_PRIMITIVE_TYPE (BT_PID, pid_type_node)
112DEF_PRIMITIVE_TYPE (BT_SIZE, size_type_node)
113DEF_PRIMITIVE_TYPE (BT_SSIZE, signed_size_type_node)
114DEF_PRIMITIVE_TYPE (BT_WINT, wint_type_node)
115DEF_PRIMITIVE_TYPE (BT_STRING, string_type_node)
116DEF_PRIMITIVE_TYPE (BT_CONST_STRING, const_string_type_node)
117
118DEF_PRIMITIVE_TYPE (BT_DFLOAT32, dfloat32_type_node)
119DEF_PRIMITIVE_TYPE (BT_DFLOAT64, dfloat64_type_node)
120DEF_PRIMITIVE_TYPE (BT_DFLOAT128, dfloat128_type_node)
121DEF_PRIMITIVE_TYPE (BT_DFLOAT32_PTR, dfloat32_ptr_type_node)
122DEF_PRIMITIVE_TYPE (BT_DFLOAT64_PTR, dfloat64_ptr_type_node)
123DEF_PRIMITIVE_TYPE (BT_DFLOAT128_PTR, dfloat128_ptr_type_node)
124
125DEF_PRIMITIVE_TYPE (BT_VALIST_REF, va_list_ref_type_node)
126DEF_PRIMITIVE_TYPE (BT_VALIST_ARG, va_list_arg_type_node)
127
128DEF_PRIMITIVE_TYPE (BT_I1, builtin_type_for_size (BITS_PER_UNIT*1, 1))
129DEF_PRIMITIVE_TYPE (BT_I2, builtin_type_for_size (BITS_PER_UNIT*2, 1))
130DEF_PRIMITIVE_TYPE (BT_I4, builtin_type_for_size (BITS_PER_UNIT*4, 1))
131DEF_PRIMITIVE_TYPE (BT_I8, builtin_type_for_size (BITS_PER_UNIT*8, 1))
132DEF_PRIMITIVE_TYPE (BT_I16, builtin_type_for_size (BITS_PER_UNIT*16, 1))
133
134DEF_POINTER_TYPE (BT_PTR_CONST_STRING, BT_CONST_STRING)
135DEF_POINTER_TYPE (BT_PTR_LONG, BT_LONG)
136DEF_POINTER_TYPE (BT_PTR_ULONGLONG, BT_ULONGLONG)
137DEF_POINTER_TYPE (BT_PTR_PTR, BT_PTR)
138
139DEF_FUNCTION_TYPE_0 (BT_FN_VOID, BT_VOID)
140DEF_FUNCTION_TYPE_0 (BT_FN_BOOL, BT_BOOL)
141DEF_FUNCTION_TYPE_0 (BT_FN_PTR, BT_PTR)
142DEF_FUNCTION_TYPE_0 (BT_FN_CONST_STRING, BT_CONST_STRING)
143DEF_FUNCTION_TYPE_0 (BT_FN_PID, BT_PID)
144DEF_FUNCTION_TYPE_0 (BT_FN_INT, BT_INT)
145DEF_FUNCTION_TYPE_0 (BT_FN_UINT, BT_UINT)
146DEF_FUNCTION_TYPE_0 (BT_FN_FLOAT, BT_FLOAT)
147DEF_FUNCTION_TYPE_0 (BT_FN_DOUBLE, BT_DOUBLE)
148/* For "long double" we use LONGDOUBLE (not LONG_DOUBLE) to
149   distinguish it from two types in sequence, "long" followed by
150   "double".  */
151DEF_FUNCTION_TYPE_0 (BT_FN_LONGDOUBLE, BT_LONGDOUBLE)
152DEF_FUNCTION_TYPE_0 (BT_FN_DFLOAT32, BT_DFLOAT32)
153DEF_FUNCTION_TYPE_0 (BT_FN_DFLOAT64, BT_DFLOAT64)
154DEF_FUNCTION_TYPE_0 (BT_FN_DFLOAT128, BT_DFLOAT128)
155
156DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONG, BT_LONG, BT_LONG)
157DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGLONG, BT_LONGLONG, BT_LONGLONG)
158DEF_FUNCTION_TYPE_1 (BT_FN_INTMAX_INTMAX, BT_INTMAX, BT_INTMAX)
159DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_FLOAT, BT_FLOAT, BT_FLOAT)
160DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_DOUBLE, BT_DOUBLE, BT_DOUBLE)
161DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_LONGDOUBLE,
162		     BT_LONGDOUBLE, BT_LONGDOUBLE)
163DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT,
164		     BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
165DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
166		     BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
167DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE,
168		     BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
169DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_COMPLEX_FLOAT,
170		     BT_FLOAT, BT_COMPLEX_FLOAT)
171DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_COMPLEX_DOUBLE,
172		     BT_DOUBLE, BT_COMPLEX_DOUBLE)
173DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_COMPLEX_LONGDOUBLE,
174		     BT_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
175DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_FLOAT_FLOAT,
176		     BT_COMPLEX_FLOAT, BT_FLOAT)
177DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_DOUBLE_DOUBLE,
178		     BT_COMPLEX_DOUBLE, BT_DOUBLE)
179DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_LONGDOUBLE_LONGDOUBLE,
180		     BT_COMPLEX_LONGDOUBLE, BT_LONGDOUBLE)
181DEF_FUNCTION_TYPE_1 (BT_FN_PTR_UINT, BT_PTR, BT_UINT)
182DEF_FUNCTION_TYPE_1 (BT_FN_PTR_SIZE, BT_PTR, BT_SIZE)
183DEF_FUNCTION_TYPE_1 (BT_FN_INT_INT, BT_INT, BT_INT)
184DEF_FUNCTION_TYPE_1 (BT_FN_INT_UINT, BT_INT, BT_UINT)
185DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONG, BT_INT, BT_LONG)
186DEF_FUNCTION_TYPE_1 (BT_FN_INT_ULONG, BT_INT, BT_ULONG)
187DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGLONG, BT_INT, BT_LONGLONG)
188DEF_FUNCTION_TYPE_1 (BT_FN_INT_ULONGLONG, BT_INT, BT_ULONGLONG)
189DEF_FUNCTION_TYPE_1 (BT_FN_INT_INTMAX, BT_INT, BT_INTMAX)
190DEF_FUNCTION_TYPE_1 (BT_FN_INT_UINTMAX, BT_INT, BT_UINTMAX)
191DEF_FUNCTION_TYPE_1 (BT_FN_INT_PTR, BT_INT, BT_PTR)
192DEF_FUNCTION_TYPE_1 (BT_FN_INT_FLOAT, BT_INT, BT_FLOAT)
193DEF_FUNCTION_TYPE_1 (BT_FN_INT_DOUBLE, BT_INT, BT_DOUBLE)
194DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
195DEF_FUNCTION_TYPE_1 (BT_FN_INT_DFLOAT32, BT_INT, BT_DFLOAT32)
196DEF_FUNCTION_TYPE_1 (BT_FN_INT_DFLOAT64, BT_INT, BT_DFLOAT64)
197DEF_FUNCTION_TYPE_1 (BT_FN_INT_DFLOAT128, BT_INT, BT_DFLOAT128)
198DEF_FUNCTION_TYPE_1 (BT_FN_LONG_FLOAT, BT_LONG, BT_FLOAT)
199DEF_FUNCTION_TYPE_1 (BT_FN_LONG_DOUBLE, BT_LONG, BT_DOUBLE)
200DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONGDOUBLE, BT_LONG, BT_LONGDOUBLE)
201DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_FLOAT, BT_LONGLONG, BT_FLOAT)
202DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_DOUBLE, BT_LONGLONG, BT_DOUBLE)
203DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGDOUBLE, BT_LONGLONG, BT_LONGDOUBLE)
204DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTR, BT_VOID, BT_PTR)
205DEF_FUNCTION_TYPE_1 (BT_FN_SIZE_CONST_STRING, BT_SIZE, BT_CONST_STRING)
206DEF_FUNCTION_TYPE_1 (BT_FN_INT_CONST_STRING, BT_INT, BT_CONST_STRING)
207DEF_FUNCTION_TYPE_1 (BT_FN_PTR_PTR, BT_PTR, BT_PTR)
208DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VALIST_REF, BT_VOID, BT_VALIST_REF)
209DEF_FUNCTION_TYPE_1 (BT_FN_VOID_INT, BT_VOID, BT_INT)
210DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_CONST_STRING, BT_FLOAT, BT_CONST_STRING)
211DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_CONST_STRING, BT_DOUBLE, BT_CONST_STRING)
212DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_CONST_STRING,
213		     BT_LONGDOUBLE, BT_CONST_STRING)
214DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT32_CONST_STRING, BT_DFLOAT32, BT_CONST_STRING)
215DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT64_CONST_STRING, BT_DFLOAT64, BT_CONST_STRING)
216DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT128_CONST_STRING,
217		     BT_DFLOAT128, BT_CONST_STRING)
218DEF_FUNCTION_TYPE_1 (BT_FN_STRING_CONST_STRING, BT_STRING, BT_CONST_STRING)
219DEF_FUNCTION_TYPE_1 (BT_FN_UNWINDWORD_PTR, BT_UNWINDWORD, BT_PTR)
220DEF_FUNCTION_TYPE_1 (BT_FN_INT_WINT, BT_INT, BT_WINT)
221DEF_FUNCTION_TYPE_1 (BT_FN_WINT_WINT, BT_WINT, BT_WINT)
222DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT32_DFLOAT32, BT_DFLOAT32, BT_DFLOAT32)
223DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT64_DFLOAT64, BT_DFLOAT64, BT_DFLOAT64)
224DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT128_DFLOAT128, BT_DFLOAT128, BT_DFLOAT128)
225DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VPTR, BT_VOID, BT_VOLATILE_PTR)
226DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTRPTR, BT_VOID, BT_PTR_PTR)
227DEF_FUNCTION_TYPE_1 (BT_FN_UINT_UINT, BT_UINT, BT_UINT)
228DEF_FUNCTION_TYPE_1 (BT_FN_ULONG_ULONG, BT_ULONG, BT_ULONG)
229DEF_FUNCTION_TYPE_1 (BT_FN_ULONGLONG_ULONGLONG, BT_ULONGLONG, BT_ULONGLONG)
230DEF_FUNCTION_TYPE_1 (BT_FN_UINT16_UINT16, BT_UINT16, BT_UINT16)
231DEF_FUNCTION_TYPE_1 (BT_FN_UINT32_UINT32, BT_UINT32, BT_UINT32)
232DEF_FUNCTION_TYPE_1 (BT_FN_UINT64_UINT64, BT_UINT64, BT_UINT64)
233
234DEF_POINTER_TYPE (BT_PTR_FN_VOID_PTR, BT_FN_VOID_PTR)
235
236DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_INT, BT_VOID, BT_PTR, BT_INT)
237DEF_FUNCTION_TYPE_2 (BT_FN_STRING_STRING_CONST_STRING,
238		     BT_STRING, BT_STRING, BT_CONST_STRING)
239DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_CONST_STRING,
240		     BT_INT, BT_CONST_STRING, BT_CONST_STRING)
241DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_CONST_STRING,
242		     BT_STRING, BT_CONST_STRING, BT_CONST_STRING)
243DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_STRING_CONST_STRING,
244		     BT_SIZE, BT_CONST_STRING, BT_CONST_STRING)
245DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_INT,
246		     BT_STRING, BT_CONST_STRING, BT_INT)
247DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_SIZE,
248		     BT_STRING, BT_CONST_STRING, BT_SIZE)
249DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_FILEPTR,
250		     BT_INT, BT_CONST_STRING, BT_FILEPTR)
251DEF_FUNCTION_TYPE_2 (BT_FN_INT_INT_FILEPTR,
252		     BT_INT, BT_INT, BT_FILEPTR)
253DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTRMODE_PTR,
254		     BT_VOID, BT_PTRMODE, BT_PTR)
255DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_PTRMODE,
256		     BT_VOID, BT_PTR, BT_PTRMODE)
257DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VALIST_REF_VALIST_ARG,
258		     BT_VOID, BT_VALIST_REF, BT_VALIST_ARG)
259DEF_FUNCTION_TYPE_2 (BT_FN_LONG_LONG_LONG,
260		     BT_LONG, BT_LONG, BT_LONG)
261DEF_FUNCTION_TYPE_2 (BT_FN_INT_PTR_CONST_STRING,
262		     BT_INT, BT_PTR, BT_CONST_STRING)
263DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_SIZE,
264		     BT_VOID, BT_PTR, BT_SIZE)
265DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOAT,
266		     BT_FLOAT, BT_FLOAT, BT_FLOAT)
267DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLE,
268		     BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
269DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
270		     BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
271DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOATPTR,
272		     BT_FLOAT, BT_FLOAT, BT_FLOAT_PTR)
273DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLEPTR,
274		     BT_DOUBLE, BT_DOUBLE, BT_DOUBLE_PTR)
275DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLEPTR,
276		     BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR)
277DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONGDOUBLE,
278		     BT_FLOAT, BT_FLOAT, BT_LONGDOUBLE)
279DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONGDOUBLE,
280		     BT_DOUBLE, BT_DOUBLE, BT_LONGDOUBLE)
281DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INT,
282		     BT_FLOAT, BT_FLOAT, BT_INT)
283DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INT,
284		     BT_DOUBLE, BT_DOUBLE, BT_INT)
285DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INT,
286		     BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT)
287DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INTPTR,
288		     BT_FLOAT, BT_FLOAT, BT_INT_PTR)
289DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INTPTR,
290		     BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
291DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR,
292		     BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
293DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_INT_FLOAT,
294		     BT_FLOAT, BT_INT, BT_FLOAT)
295DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_INT_DOUBLE,
296		     BT_DOUBLE, BT_INT, BT_DOUBLE)
297DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_INT_LONGDOUBLE,
298		     BT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
299DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONG,
300		     BT_FLOAT, BT_FLOAT, BT_LONG)
301DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONG,
302		     BT_DOUBLE, BT_DOUBLE, BT_LONG)
303DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONG,
304		     BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONG)
305DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_VALIST_ARG,
306		     BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
307DEF_FUNCTION_TYPE_2 (BT_FN_PTR_SIZE_SIZE,
308		     BT_PTR, BT_SIZE, BT_SIZE)
309DEF_FUNCTION_TYPE_2 (BT_FN_PTR_PTR_SIZE,
310		     BT_PTR, BT_PTR, BT_SIZE)
311DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT,
312		     BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
313DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
314		     BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
315DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE,
316		     BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
317DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_PTR, BT_VOID, BT_PTR, BT_PTR)
318DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
319		     BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING)
320DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_PTR_INT, BT_SIZE, BT_CONST_PTR, BT_INT)
321DEF_FUNCTION_TYPE_2 (BT_FN_I1_VPTR_I1, BT_I1, BT_VOLATILE_PTR, BT_I1)
322DEF_FUNCTION_TYPE_2 (BT_FN_I2_VPTR_I2, BT_I2, BT_VOLATILE_PTR, BT_I2)
323DEF_FUNCTION_TYPE_2 (BT_FN_I4_VPTR_I4, BT_I4, BT_VOLATILE_PTR, BT_I4)
324DEF_FUNCTION_TYPE_2 (BT_FN_I8_VPTR_I8, BT_I8, BT_VOLATILE_PTR, BT_I8)
325DEF_FUNCTION_TYPE_2 (BT_FN_I16_VPTR_I16, BT_I16, BT_VOLATILE_PTR, BT_I16)
326DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_LONGPTR_LONGPTR,
327		     BT_BOOL, BT_PTR_LONG, BT_PTR_LONG)
328DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
329		     BT_BOOL, BT_PTR_ULONGLONG, BT_PTR_ULONGLONG)
330DEF_FUNCTION_TYPE_2 (BT_FN_I1_CONST_VPTR_INT, BT_I1, BT_CONST_VOLATILE_PTR,
331		     BT_INT)
332DEF_FUNCTION_TYPE_2 (BT_FN_I2_CONST_VPTR_INT, BT_I2, BT_CONST_VOLATILE_PTR,
333		     BT_INT)
334DEF_FUNCTION_TYPE_2 (BT_FN_I4_CONST_VPTR_INT, BT_I4, BT_CONST_VOLATILE_PTR,
335		     BT_INT)
336DEF_FUNCTION_TYPE_2 (BT_FN_I8_CONST_VPTR_INT, BT_I8, BT_CONST_VOLATILE_PTR,
337		     BT_INT)
338DEF_FUNCTION_TYPE_2 (BT_FN_I16_CONST_VPTR_INT, BT_I16, BT_CONST_VOLATILE_PTR,
339		     BT_INT)
340DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_INT, BT_VOID, BT_VOLATILE_PTR, BT_INT)
341DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_VPTR_INT, BT_BOOL, BT_VOLATILE_PTR, BT_INT)
342DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_SIZE_CONST_VPTR, BT_BOOL, BT_SIZE,
343		     BT_CONST_VOLATILE_PTR)
344
345DEF_POINTER_TYPE (BT_PTR_FN_VOID_PTR_PTR, BT_FN_VOID_PTR_PTR)
346
347DEF_FUNCTION_TYPE_3 (BT_FN_STRING_STRING_CONST_STRING_SIZE,
348		     BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE)
349DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_SIZE,
350		     BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_SIZE)
351DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_CONST_PTR_SIZE,
352		     BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE)
353DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_CONST_PTR_SIZE,
354		     BT_VOID, BT_PTR, BT_CONST_PTR, BT_SIZE)
355DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_PTR_CONST_PTR_SIZE,
356		     BT_INT, BT_CONST_PTR, BT_CONST_PTR, BT_SIZE)
357DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_INT_SIZE,
358		     BT_PTR, BT_PTR, BT_INT, BT_SIZE)
359DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_INT_SIZE,
360		     BT_VOID, BT_PTR, BT_INT, BT_SIZE)
361DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_INT_INT,
362		     BT_VOID, BT_PTR, BT_INT, BT_INT)
363DEF_FUNCTION_TYPE_3 (BT_FN_VOID_CONST_PTR_PTR_SIZE,
364		     BT_VOID, BT_CONST_PTR, BT_PTR, BT_SIZE)
365DEF_FUNCTION_TYPE_3 (BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
366		     BT_INT, BT_STRING, BT_CONST_STRING, BT_VALIST_ARG)
367DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
368		     BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_VALIST_ARG)
369DEF_FUNCTION_TYPE_3 (BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
370		     BT_INT, BT_FILEPTR, BT_CONST_STRING, BT_VALIST_ARG)
371DEF_FUNCTION_TYPE_3 (BT_FN_STRING_CONST_STRING_CONST_STRING_INT,
372		     BT_STRING, BT_CONST_STRING, BT_CONST_STRING, BT_INT)
373DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_FLOAT,
374		     BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_FLOAT)
375DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_DOUBLE,
376		     BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
377DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
378		     BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
379DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_INTPTR,
380		     BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_INT_PTR)
381DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR,
382		     BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
383DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR,
384		     BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
385DEF_FUNCTION_TYPE_3 (BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR,
386		     BT_VOID, BT_FLOAT, BT_FLOAT_PTR, BT_FLOAT_PTR)
387DEF_FUNCTION_TYPE_3 (BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR,
388		     BT_VOID, BT_DOUBLE, BT_DOUBLE_PTR, BT_DOUBLE_PTR)
389DEF_FUNCTION_TYPE_3 (BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR,
390		     BT_VOID, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR, BT_LONGDOUBLE_PTR)
391DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_PTR_PTR, BT_VOID, BT_PTR, BT_PTR, BT_PTR)
392DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING,
393		     BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING, BT_PTR_CONST_STRING)
394DEF_FUNCTION_TYPE_3 (BT_FN_INT_INT_CONST_STRING_VALIST_ARG,
395		     BT_INT, BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
396DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I1_I1, BT_BOOL, BT_VOLATILE_PTR,
397		     BT_I1, BT_I1)
398DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I2_I2, BT_BOOL, BT_VOLATILE_PTR,
399		     BT_I2, BT_I2)
400DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I4_I4, BT_BOOL, BT_VOLATILE_PTR,
401		     BT_I4, BT_I4)
402DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I8_I8, BT_BOOL, BT_VOLATILE_PTR,
403		     BT_I8, BT_I8)
404DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I16_I16, BT_BOOL, BT_VOLATILE_PTR,
405		     BT_I16, BT_I16)
406DEF_FUNCTION_TYPE_3 (BT_FN_I1_VPTR_I1_I1, BT_I1, BT_VOLATILE_PTR, BT_I1, BT_I1)
407DEF_FUNCTION_TYPE_3 (BT_FN_I2_VPTR_I2_I2, BT_I2, BT_VOLATILE_PTR, BT_I2, BT_I2)
408DEF_FUNCTION_TYPE_3 (BT_FN_I4_VPTR_I4_I4, BT_I4, BT_VOLATILE_PTR, BT_I4, BT_I4)
409DEF_FUNCTION_TYPE_3 (BT_FN_I8_VPTR_I8_I8, BT_I8, BT_VOLATILE_PTR, BT_I8, BT_I8)
410DEF_FUNCTION_TYPE_3 (BT_FN_I16_VPTR_I16_I16, BT_I16, BT_VOLATILE_PTR,
411		     BT_I16, BT_I16)
412DEF_FUNCTION_TYPE_3 (BT_FN_VOID_OMPFN_PTR_UINT, BT_VOID, BT_PTR_FN_VOID_PTR,
413		     BT_PTR, BT_UINT)
414DEF_FUNCTION_TYPE_3 (BT_FN_PTR_CONST_PTR_INT_SIZE, BT_PTR,
415		     BT_CONST_PTR, BT_INT, BT_SIZE)
416DEF_FUNCTION_TYPE_3 (BT_FN_I1_VPTR_I1_INT, BT_I1, BT_VOLATILE_PTR, BT_I1, BT_INT)
417DEF_FUNCTION_TYPE_3 (BT_FN_I2_VPTR_I2_INT, BT_I2, BT_VOLATILE_PTR, BT_I2, BT_INT)
418DEF_FUNCTION_TYPE_3 (BT_FN_I4_VPTR_I4_INT, BT_I4, BT_VOLATILE_PTR, BT_I4, BT_INT)
419DEF_FUNCTION_TYPE_3 (BT_FN_I8_VPTR_I8_INT, BT_I8, BT_VOLATILE_PTR, BT_I8, BT_INT)
420DEF_FUNCTION_TYPE_3 (BT_FN_I16_VPTR_I16_INT, BT_I16, BT_VOLATILE_PTR, BT_I16, BT_INT)
421DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I1_INT, BT_VOID, BT_VOLATILE_PTR, BT_I1, BT_INT)
422DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I2_INT, BT_VOID, BT_VOLATILE_PTR, BT_I2, BT_INT)
423DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I4_INT, BT_VOID, BT_VOLATILE_PTR, BT_I4, BT_INT)
424DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I8_INT, BT_VOID, BT_VOLATILE_PTR, BT_I8, BT_INT)
425DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I16_INT, BT_VOID, BT_VOLATILE_PTR, BT_I16, BT_INT)
426
427DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
428		     BT_SIZE, BT_CONST_PTR, BT_SIZE, BT_SIZE, BT_FILEPTR)
429DEF_FUNCTION_TYPE_4 (BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
430		BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_VALIST_ARG)
431DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR,
432		BT_SIZE, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_CONST_PTR)
433DEF_FUNCTION_TYPE_4 (BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE,
434		     BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE, BT_SIZE)
435DEF_FUNCTION_TYPE_4 (BT_FN_PTR_PTR_INT_SIZE_SIZE,
436		     BT_PTR, BT_PTR, BT_INT, BT_SIZE, BT_SIZE)
437DEF_FUNCTION_TYPE_4 (BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE,
438		     BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE, BT_SIZE)
439DEF_FUNCTION_TYPE_4 (BT_FN_INT_FILEPTR_INT_CONST_STRING_VALIST_ARG,
440		     BT_INT, BT_FILEPTR, BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
441DEF_FUNCTION_TYPE_4 (BT_FN_VOID_OMPFN_PTR_UINT_UINT,
442		     BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT, BT_UINT)
443DEF_FUNCTION_TYPE_4 (BT_FN_VOID_PTR_WORD_WORD_PTR,
444		     BT_VOID, BT_PTR, BT_WORD, BT_WORD, BT_PTR)
445DEF_FUNCTION_TYPE_4 (BT_FN_VOID_SIZE_VPTR_PTR_INT, BT_VOID, BT_SIZE,
446		     BT_VOLATILE_PTR, BT_PTR, BT_INT)
447DEF_FUNCTION_TYPE_4 (BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT, BT_VOID, BT_SIZE,
448		     BT_CONST_VOLATILE_PTR, BT_PTR, BT_INT)
449
450DEF_FUNCTION_TYPE_5 (BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG,
451		     BT_INT, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING,
452		     BT_VALIST_ARG)
453DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
454		     BT_BOOL, BT_LONG, BT_LONG, BT_LONG,
455		     BT_PTR_LONG, BT_PTR_LONG)
456DEF_FUNCTION_TYPE_5 (BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT, BT_VOID, BT_SIZE,
457		     BT_VOLATILE_PTR, BT_PTR, BT_PTR, BT_INT)
458DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_VPTR_PTR_I1_INT_INT,
459		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I1, BT_INT, BT_INT)
460DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_VPTR_PTR_I2_INT_INT,
461		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I2, BT_INT, BT_INT)
462DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_VPTR_PTR_I4_INT_INT,
463		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I4, BT_INT, BT_INT)
464DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_VPTR_PTR_I8_INT_INT,
465		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I8, BT_INT, BT_INT)
466DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_VPTR_PTR_I16_INT_INT,
467		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I16, BT_INT, BT_INT)
468
469DEF_FUNCTION_TYPE_6 (BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG,
470		     BT_INT, BT_STRING, BT_SIZE, BT_INT, BT_SIZE,
471		     BT_CONST_STRING, BT_VALIST_ARG)
472DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
473		     BT_BOOL, BT_LONG, BT_LONG, BT_LONG, BT_LONG,
474		     BT_PTR_LONG, BT_PTR_LONG)
475DEF_FUNCTION_TYPE_6 (BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
476		     BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT,
477		     BT_LONG, BT_LONG, BT_LONG)
478DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
479		     BT_BOOL, BT_BOOL, BT_ULONGLONG, BT_ULONGLONG,
480		     BT_ULONGLONG, BT_PTR_ULONGLONG, BT_PTR_ULONGLONG)
481DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I1_BOOL_INT_INT,
482		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I1, BT_BOOL, BT_INT,
483		     BT_INT)
484DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I2_BOOL_INT_INT,
485		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I2, BT_BOOL, BT_INT,
486		     BT_INT)
487DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I4_BOOL_INT_INT,
488		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I4, BT_BOOL, BT_INT,
489		     BT_INT)
490DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I8_BOOL_INT_INT,
491		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I8, BT_BOOL, BT_INT,
492		     BT_INT)
493DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I16_BOOL_INT_INT,
494		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I16, BT_BOOL, BT_INT,
495		     BT_INT)
496DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_SIZE_VPTR_PTR_PTR_INT_INT, BT_BOOL, BT_SIZE,
497		     BT_VOLATILE_PTR, BT_PTR, BT_PTR, BT_INT, BT_INT)
498
499
500DEF_FUNCTION_TYPE_7 (BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
501		     BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT,
502		     BT_LONG, BT_LONG, BT_LONG, BT_LONG)
503DEF_FUNCTION_TYPE_7 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT,
504		     BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR,
505		     BT_PTR_FN_VOID_PTR_PTR, BT_LONG, BT_LONG,
506		     BT_BOOL, BT_UINT)
507DEF_FUNCTION_TYPE_7 (BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
508		     BT_BOOL, BT_BOOL, BT_ULONGLONG, BT_ULONGLONG,
509		     BT_ULONGLONG, BT_ULONGLONG,
510		     BT_PTR_ULONGLONG, BT_PTR_ULONGLONG)
511
512DEF_FUNCTION_TYPE_VAR_0 (BT_FN_VOID_VAR, BT_VOID)
513DEF_FUNCTION_TYPE_VAR_0 (BT_FN_INT_VAR, BT_INT)
514DEF_FUNCTION_TYPE_VAR_0 (BT_FN_PTR_VAR, BT_PTR)
515
516DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_VALIST_REF_VAR,
517			 BT_VOID, BT_VALIST_REF)
518DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_CONST_PTR_VAR,
519			 BT_VOID, BT_CONST_PTR)
520DEF_FUNCTION_TYPE_VAR_1 (BT_FN_INT_CONST_STRING_VAR,
521			 BT_INT, BT_CONST_STRING)
522DEF_FUNCTION_TYPE_VAR_1 (BT_FN_UINT32_UINT32_VAR,
523			 BT_UINT32, BT_UINT32)
524
525DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_FILEPTR_CONST_STRING_VAR,
526			 BT_INT, BT_FILEPTR, BT_CONST_STRING)
527DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_STRING_CONST_STRING_VAR,
528			 BT_INT, BT_STRING, BT_CONST_STRING)
529DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
530			 BT_INT, BT_CONST_STRING, BT_CONST_STRING)
531DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_INT_CONST_STRING_VAR,
532			 BT_INT, BT_INT, BT_CONST_STRING)
533DEF_FUNCTION_TYPE_VAR_2 (BT_FN_PTR_CONST_PTR_SIZE_VAR, BT_PTR,
534			 BT_CONST_PTR, BT_SIZE)
535
536DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_STRING_SIZE_CONST_STRING_VAR,
537			 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING)
538DEF_FUNCTION_TYPE_VAR_3 (BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR,
539			 BT_SSIZE, BT_STRING, BT_SIZE, BT_CONST_STRING)
540DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR,
541			 BT_INT, BT_FILEPTR, BT_INT, BT_CONST_STRING)
542
543DEF_FUNCTION_TYPE_VAR_4 (BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR,
544			 BT_INT, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING)
545
546DEF_FUNCTION_TYPE_VAR_5 (BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR,
547			 BT_INT, BT_STRING, BT_SIZE, BT_INT, BT_SIZE,
548			 BT_CONST_STRING)
549
550DEF_FUNCTION_TYPE_VAR_5 (BT_FN_INT_INT_INT_INT_INT_INT_VAR,
551			 BT_INT, BT_INT, BT_INT, BT_INT, BT_INT, BT_INT)
552
553DEF_POINTER_TYPE (BT_PTR_FN_VOID_VAR, BT_FN_VOID_VAR)
554DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE,
555		     BT_PTR, BT_PTR_FN_VOID_VAR, BT_PTR, BT_SIZE)
556
557
558DEF_FUNCTION_TYPE_1 (BT_FN_I1_VPTR, BT_I1, BT_VOLATILE_PTR)
559DEF_FUNCTION_TYPE_1 (BT_FN_I2_VPTR, BT_I2, BT_VOLATILE_PTR)
560DEF_FUNCTION_TYPE_1 (BT_FN_I4_VPTR, BT_I4, BT_VOLATILE_PTR)
561DEF_FUNCTION_TYPE_1 (BT_FN_I8_VPTR, BT_I8, BT_VOLATILE_PTR)
562DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_VPTR, BT_FLOAT, BT_VOLATILE_PTR)
563DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_CONST_DOUBLE_PTR, BT_DOUBLE, BT_DOUBLE_PTR)
564DEF_FUNCTION_TYPE_1 (BT_FN_LDOUBLE_VPTR, BT_LONGDOUBLE, BT_VOLATILE_PTR)
565
566DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_I1, BT_VOID, BT_VOLATILE_PTR, BT_I1)
567DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_I2, BT_VOID, BT_VOLATILE_PTR, BT_I2)
568DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_I4, BT_VOID, BT_VOLATILE_PTR, BT_I4)
569DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_I8, BT_VOID, BT_VOLATILE_PTR, BT_I8)
570DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_FLOAT, BT_VOID, BT_VOLATILE_PTR, BT_FLOAT)
571DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_DOUBLE, BT_VOID,
572		     BT_VOLATILE_PTR, BT_DOUBLE)
573DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_LDOUBLE, BT_VOID,
574		     BT_VOLATILE_PTR, BT_LONGDOUBLE)
575DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_SIZE, BT_VOID,
576		     BT_VOLATILE_PTR, BT_SIZE)
577