1/* Copyright (C) 2001-2021 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   [...]
33
34     These macros describe function types.  ENUM is as above.  The
35     RETURN type is one of the enumerals already defined.  ARG1, ARG2,
36     etc, give the types of the arguments, similarly.
37
38   DEF_FUNCTION_TYPE_VAR_0 (ENUM, RETURN)
39   DEF_FUNCTION_TYPE_VAR_1 (ENUM, RETURN, ARG1)
40   DEF_FUNCTION_TYPE_VAR_2 (ENUM, RETURN, ARG1, ARG2)
41   [...]
42
43     Similar, but for function types that take variable arguments.
44     For example:
45
46       DEF_FUNCTION_TYPE_1 (BT_INT_DOUBLE, BT_INT, BT_DOUBLE)
47
48     describes the type `int ()(double)', using the enumeral
49     BT_INT_DOUBLE, whereas:
50
51       DEF_FUNCTION_TYPE_VAR_1 (BT_INT_DOUBLE_VAR, BT_INT, BT_DOUBLE)
52
53     describes the type `int ()(double, ...)'.
54
55  DEF_POINTER_TYPE (ENUM, TYPE)
56
57    This macro describes a pointer type.  ENUM is as above; TYPE is
58    the type pointed to.  */
59
60DEF_PRIMITIVE_TYPE (BT_VOID, void_type_node)
61DEF_PRIMITIVE_TYPE (BT_BOOL, boolean_type_node)
62DEF_PRIMITIVE_TYPE (BT_INT, integer_type_node)
63DEF_PRIMITIVE_TYPE (BT_UINT, unsigned_type_node)
64DEF_PRIMITIVE_TYPE (BT_LONG, long_integer_type_node)
65DEF_PRIMITIVE_TYPE (BT_ULONG, long_unsigned_type_node)
66DEF_PRIMITIVE_TYPE (BT_LONGLONG, long_long_integer_type_node)
67DEF_PRIMITIVE_TYPE (BT_ULONGLONG, long_long_unsigned_type_node)
68DEF_PRIMITIVE_TYPE (BT_INTMAX, intmax_type_node)
69DEF_PRIMITIVE_TYPE (BT_UINTMAX, uintmax_type_node)
70DEF_PRIMITIVE_TYPE (BT_INT8, signed_char_type_node)
71DEF_PRIMITIVE_TYPE (BT_INT16, short_integer_type_node)
72DEF_PRIMITIVE_TYPE (BT_UINT8, unsigned_char_type_node)
73DEF_PRIMITIVE_TYPE (BT_UINT16, uint16_type_node)
74DEF_PRIMITIVE_TYPE (BT_UINT32, uint32_type_node)
75DEF_PRIMITIVE_TYPE (BT_UINT64, uint64_type_node)
76DEF_PRIMITIVE_TYPE (BT_UINT128, uint128_type_node
77				? uint128_type_node
78				: error_mark_node)
79DEF_PRIMITIVE_TYPE (BT_WORD, (*lang_hooks.types.type_for_mode) (word_mode, 1))
80DEF_PRIMITIVE_TYPE (BT_UNWINDWORD, (*lang_hooks.types.type_for_mode)
81				    (targetm.unwind_word_mode (), 1))
82DEF_PRIMITIVE_TYPE (BT_FLOAT, float_type_node)
83DEF_PRIMITIVE_TYPE (BT_DOUBLE, double_type_node)
84DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE, long_double_type_node)
85DEF_PRIMITIVE_TYPE (BT_FLOAT16, (float16_type_node
86				 ? float16_type_node
87				 : error_mark_node))
88DEF_PRIMITIVE_TYPE (BT_FLOAT32, (float32_type_node
89				 ? float32_type_node
90				 : error_mark_node))
91DEF_PRIMITIVE_TYPE (BT_FLOAT64, (float64_type_node
92				 ? float64_type_node
93				 : error_mark_node))
94DEF_PRIMITIVE_TYPE (BT_FLOAT128, (float128_type_node
95				  ? float128_type_node
96				  : error_mark_node))
97DEF_PRIMITIVE_TYPE (BT_FLOAT32X, (float32x_type_node
98				  ? float32x_type_node
99				  : error_mark_node))
100DEF_PRIMITIVE_TYPE (BT_FLOAT64X, (float64x_type_node
101				  ? float64x_type_node
102				  : error_mark_node))
103DEF_PRIMITIVE_TYPE (BT_FLOAT128X, (float128x_type_node
104				   ? float128x_type_node
105				   : error_mark_node))
106DEF_PRIMITIVE_TYPE (BT_COMPLEX_FLOAT, complex_float_type_node)
107DEF_PRIMITIVE_TYPE (BT_COMPLEX_DOUBLE, complex_double_type_node)
108DEF_PRIMITIVE_TYPE (BT_COMPLEX_LONGDOUBLE, complex_long_double_type_node)
109
110DEF_PRIMITIVE_TYPE (BT_PTR, ptr_type_node)
111DEF_PRIMITIVE_TYPE (BT_FILEPTR, fileptr_type_node)
112DEF_PRIMITIVE_TYPE (BT_CONST_TM_PTR, const_tm_ptr_type_node)
113DEF_PRIMITIVE_TYPE (BT_FENV_T_PTR, fenv_t_ptr_type_node)
114DEF_PRIMITIVE_TYPE (BT_CONST_FENV_T_PTR, const_fenv_t_ptr_type_node)
115DEF_PRIMITIVE_TYPE (BT_FEXCEPT_T_PTR, fexcept_t_ptr_type_node)
116DEF_PRIMITIVE_TYPE (BT_CONST_FEXCEPT_T_PTR, const_fexcept_t_ptr_type_node)
117DEF_PRIMITIVE_TYPE (BT_CONST_PTR, const_ptr_type_node)
118DEF_PRIMITIVE_TYPE (BT_VOLATILE_PTR,
119		    build_pointer_type
120		     (build_qualified_type (void_type_node,
121					    TYPE_QUAL_VOLATILE)))
122DEF_PRIMITIVE_TYPE (BT_CONST_VOLATILE_PTR,
123		    build_pointer_type
124		     (build_qualified_type (void_type_node,
125					  TYPE_QUAL_VOLATILE|TYPE_QUAL_CONST)))
126DEF_PRIMITIVE_TYPE (BT_PTRMODE, (*lang_hooks.types.type_for_mode)(ptr_mode, 0))
127DEF_PRIMITIVE_TYPE (BT_INT_PTR, integer_ptr_type_node)
128DEF_PRIMITIVE_TYPE (BT_FLOAT_PTR, float_ptr_type_node)
129DEF_PRIMITIVE_TYPE (BT_DOUBLE_PTR, double_ptr_type_node)
130DEF_PRIMITIVE_TYPE (BT_CONST_DOUBLE_PTR,
131		    build_pointer_type
132		     (build_qualified_type (double_type_node,
133		     			    TYPE_QUAL_CONST)))
134DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE_PTR, long_double_ptr_type_node)
135DEF_PRIMITIVE_TYPE (BT_PID, pid_type_node)
136DEF_PRIMITIVE_TYPE (BT_SIZE, size_type_node)
137DEF_PRIMITIVE_TYPE (BT_CONST_SIZE,
138		    build_qualified_type (size_type_node, TYPE_QUAL_CONST))
139DEF_PRIMITIVE_TYPE (BT_SSIZE, signed_size_type_node)
140DEF_PRIMITIVE_TYPE (BT_WINT, wint_type_node)
141DEF_PRIMITIVE_TYPE (BT_STRING, string_type_node)
142DEF_PRIMITIVE_TYPE (BT_CONST_STRING, const_string_type_node)
143
144DEF_PRIMITIVE_TYPE (BT_DFLOAT32, (dfloat32_type_node
145				  ? dfloat32_type_node
146				  : error_mark_node))
147DEF_PRIMITIVE_TYPE (BT_DFLOAT64, (dfloat64_type_node
148				  ? dfloat64_type_node
149				  : error_mark_node))
150DEF_PRIMITIVE_TYPE (BT_DFLOAT128, (dfloat128_type_node
151				   ? dfloat128_type_node
152				   : error_mark_node))
153
154DEF_PRIMITIVE_TYPE (BT_VALIST_REF, va_list_ref_type_node)
155DEF_PRIMITIVE_TYPE (BT_VALIST_ARG, va_list_arg_type_node)
156
157DEF_PRIMITIVE_TYPE (BT_I1, builtin_type_for_size (BITS_PER_UNIT*1, 1))
158DEF_PRIMITIVE_TYPE (BT_I2, builtin_type_for_size (BITS_PER_UNIT*2, 1))
159DEF_PRIMITIVE_TYPE (BT_I4, builtin_type_for_size (BITS_PER_UNIT*4, 1))
160DEF_PRIMITIVE_TYPE (BT_I8, builtin_type_for_size (BITS_PER_UNIT*8, 1))
161DEF_PRIMITIVE_TYPE (BT_I16, builtin_type_for_size (BITS_PER_UNIT*16, 1))
162
163/* The C type `char * const *'.  */
164DEF_PRIMITIVE_TYPE (BT_PTR_CONST_STRING,
165		    build_pointer_type
166		     (build_qualified_type (string_type_node,
167					    TYPE_QUAL_CONST)))
168
169DEF_POINTER_TYPE (BT_PTR_UINT, BT_UINT)
170DEF_POINTER_TYPE (BT_PTR_LONG, BT_LONG)
171DEF_POINTER_TYPE (BT_PTR_ULONG, BT_ULONG)
172DEF_POINTER_TYPE (BT_PTR_LONGLONG, BT_LONGLONG)
173DEF_POINTER_TYPE (BT_PTR_ULONGLONG, BT_ULONGLONG)
174DEF_POINTER_TYPE (BT_PTR_PTR, BT_PTR)
175
176DEF_FUNCTION_TYPE_0 (BT_FN_VOID, BT_VOID)
177DEF_FUNCTION_TYPE_0 (BT_FN_BOOL, BT_BOOL)
178DEF_FUNCTION_TYPE_0 (BT_FN_PTR, BT_PTR)
179DEF_FUNCTION_TYPE_0 (BT_FN_CONST_STRING, BT_CONST_STRING)
180DEF_FUNCTION_TYPE_0 (BT_FN_PID, BT_PID)
181DEF_FUNCTION_TYPE_0 (BT_FN_INT, BT_INT)
182DEF_FUNCTION_TYPE_0 (BT_FN_UINT, BT_UINT)
183DEF_FUNCTION_TYPE_0 (BT_FN_ULONG, BT_ULONG)
184DEF_FUNCTION_TYPE_0 (BT_FN_FLOAT, BT_FLOAT)
185DEF_FUNCTION_TYPE_0 (BT_FN_DOUBLE, BT_DOUBLE)
186/* For "long double" we use LONGDOUBLE (not LONG_DOUBLE) to
187   distinguish it from two types in sequence, "long" followed by
188   "double".  */
189DEF_FUNCTION_TYPE_0 (BT_FN_LONGDOUBLE, BT_LONGDOUBLE)
190DEF_FUNCTION_TYPE_0 (BT_FN_FLOAT16, BT_FLOAT16)
191DEF_FUNCTION_TYPE_0 (BT_FN_FLOAT32, BT_FLOAT32)
192DEF_FUNCTION_TYPE_0 (BT_FN_FLOAT64, BT_FLOAT64)
193DEF_FUNCTION_TYPE_0 (BT_FN_FLOAT128, BT_FLOAT128)
194DEF_FUNCTION_TYPE_0 (BT_FN_FLOAT32X, BT_FLOAT32X)
195DEF_FUNCTION_TYPE_0 (BT_FN_FLOAT64X, BT_FLOAT64X)
196DEF_FUNCTION_TYPE_0 (BT_FN_FLOAT128X, BT_FLOAT128X)
197DEF_FUNCTION_TYPE_0 (BT_FN_DFLOAT32, BT_DFLOAT32)
198DEF_FUNCTION_TYPE_0 (BT_FN_DFLOAT64, BT_DFLOAT64)
199DEF_FUNCTION_TYPE_0 (BT_FN_DFLOAT128, BT_DFLOAT128)
200
201DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONG, BT_LONG, BT_LONG)
202DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGLONG, BT_LONGLONG, BT_LONGLONG)
203DEF_FUNCTION_TYPE_1 (BT_FN_INTMAX_INTMAX, BT_INTMAX, BT_INTMAX)
204DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_FLOAT, BT_FLOAT, BT_FLOAT)
205DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_DOUBLE, BT_DOUBLE, BT_DOUBLE)
206DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_LONGDOUBLE,
207		     BT_LONGDOUBLE, BT_LONGDOUBLE)
208DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT16_FLOAT16, BT_FLOAT16, BT_FLOAT16)
209DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT32_FLOAT32, BT_FLOAT32, BT_FLOAT32)
210DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT64_FLOAT64, BT_FLOAT64, BT_FLOAT64)
211DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT128_FLOAT128, BT_FLOAT128, BT_FLOAT128)
212DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT32X_FLOAT32X, BT_FLOAT32X, BT_FLOAT32X)
213DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT64X_FLOAT64X, BT_FLOAT64X, BT_FLOAT64X)
214DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT128X_FLOAT128X, BT_FLOAT128X, BT_FLOAT128X)
215DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT,
216		     BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
217DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
218		     BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
219DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE,
220		     BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
221DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_COMPLEX_FLOAT,
222		     BT_FLOAT, BT_COMPLEX_FLOAT)
223DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_COMPLEX_DOUBLE,
224		     BT_DOUBLE, BT_COMPLEX_DOUBLE)
225DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_COMPLEX_LONGDOUBLE,
226		     BT_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
227DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_FLOAT_FLOAT,
228		     BT_COMPLEX_FLOAT, BT_FLOAT)
229DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_DOUBLE_DOUBLE,
230		     BT_COMPLEX_DOUBLE, BT_DOUBLE)
231DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_LONGDOUBLE_LONGDOUBLE,
232		     BT_COMPLEX_LONGDOUBLE, BT_LONGDOUBLE)
233DEF_FUNCTION_TYPE_1 (BT_FN_PTR_UINT, BT_PTR, BT_UINT)
234DEF_FUNCTION_TYPE_1 (BT_FN_PTR_SIZE, BT_PTR, BT_SIZE)
235DEF_FUNCTION_TYPE_1 (BT_FN_INT_INT, BT_INT, BT_INT)
236DEF_FUNCTION_TYPE_1 (BT_FN_INT_UINT, BT_INT, BT_UINT)
237DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONG, BT_INT, BT_LONG)
238DEF_FUNCTION_TYPE_1 (BT_FN_INT_ULONG, BT_INT, BT_ULONG)
239DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGLONG, BT_INT, BT_LONGLONG)
240DEF_FUNCTION_TYPE_1 (BT_FN_INT_ULONGLONG, BT_INT, BT_ULONGLONG)
241DEF_FUNCTION_TYPE_1 (BT_FN_INT_INTMAX, BT_INT, BT_INTMAX)
242DEF_FUNCTION_TYPE_1 (BT_FN_INT_UINTMAX, BT_INT, BT_UINTMAX)
243DEF_FUNCTION_TYPE_1 (BT_FN_INT_PTR, BT_INT, BT_PTR)
244DEF_FUNCTION_TYPE_1 (BT_FN_INT_FLOAT, BT_INT, BT_FLOAT)
245DEF_FUNCTION_TYPE_1 (BT_FN_INT_DOUBLE, BT_INT, BT_DOUBLE)
246DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
247DEF_FUNCTION_TYPE_1 (BT_FN_INT_DFLOAT32, BT_INT, BT_DFLOAT32)
248DEF_FUNCTION_TYPE_1 (BT_FN_INT_DFLOAT64, BT_INT, BT_DFLOAT64)
249DEF_FUNCTION_TYPE_1 (BT_FN_INT_DFLOAT128, BT_INT, BT_DFLOAT128)
250DEF_FUNCTION_TYPE_1 (BT_FN_LONG_FLOAT, BT_LONG, BT_FLOAT)
251DEF_FUNCTION_TYPE_1 (BT_FN_LONG_DOUBLE, BT_LONG, BT_DOUBLE)
252DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONGDOUBLE, BT_LONG, BT_LONGDOUBLE)
253DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_FLOAT, BT_LONGLONG, BT_FLOAT)
254DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_DOUBLE, BT_LONGLONG, BT_DOUBLE)
255DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGDOUBLE, BT_LONGLONG, BT_LONGDOUBLE)
256DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTR, BT_VOID, BT_PTR)
257DEF_FUNCTION_TYPE_1 (BT_FN_SIZE_CONST_STRING, BT_SIZE, BT_CONST_STRING)
258DEF_FUNCTION_TYPE_1 (BT_FN_INT_CONST_STRING, BT_INT, BT_CONST_STRING)
259DEF_FUNCTION_TYPE_1 (BT_FN_PTR_PTR, BT_PTR, BT_PTR)
260DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VALIST_REF, BT_VOID, BT_VALIST_REF)
261DEF_FUNCTION_TYPE_1 (BT_FN_VOID_INT, BT_VOID, BT_INT)
262DEF_FUNCTION_TYPE_1 (BT_FN_VOID_BOOL, BT_VOID, BT_BOOL)
263DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_CONST_STRING, BT_FLOAT, BT_CONST_STRING)
264DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_CONST_STRING, BT_DOUBLE, BT_CONST_STRING)
265DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_CONST_STRING,
266		     BT_LONGDOUBLE, BT_CONST_STRING)
267DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT16_CONST_STRING, BT_FLOAT16, BT_CONST_STRING)
268DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT32_CONST_STRING, BT_FLOAT32, BT_CONST_STRING)
269DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT64_CONST_STRING, BT_FLOAT64, BT_CONST_STRING)
270DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT128_CONST_STRING, BT_FLOAT128, BT_CONST_STRING)
271DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT32X_CONST_STRING, BT_FLOAT32X, BT_CONST_STRING)
272DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT64X_CONST_STRING, BT_FLOAT64X, BT_CONST_STRING)
273DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT128X_CONST_STRING, BT_FLOAT128X, BT_CONST_STRING)
274DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT32_CONST_STRING, BT_DFLOAT32, BT_CONST_STRING)
275DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT64_CONST_STRING, BT_DFLOAT64, BT_CONST_STRING)
276DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT128_CONST_STRING,
277		     BT_DFLOAT128, BT_CONST_STRING)
278DEF_FUNCTION_TYPE_1 (BT_FN_STRING_CONST_STRING, BT_STRING, BT_CONST_STRING)
279DEF_FUNCTION_TYPE_1 (BT_FN_UNWINDWORD_PTR, BT_UNWINDWORD, BT_PTR)
280DEF_FUNCTION_TYPE_1 (BT_FN_INT_WINT, BT_INT, BT_WINT)
281DEF_FUNCTION_TYPE_1 (BT_FN_WINT_WINT, BT_WINT, BT_WINT)
282DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT32_DFLOAT32, BT_DFLOAT32, BT_DFLOAT32)
283DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT64_DFLOAT64, BT_DFLOAT64, BT_DFLOAT64)
284DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT128_DFLOAT128, BT_DFLOAT128, BT_DFLOAT128)
285DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VPTR, BT_VOID, BT_VOLATILE_PTR)
286DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTRPTR, BT_VOID, BT_PTR_PTR)
287DEF_FUNCTION_TYPE_1 (BT_FN_VOID_CONST_PTR, BT_VOID, BT_CONST_PTR)
288DEF_FUNCTION_TYPE_1 (BT_FN_UINT_UINT, BT_UINT, BT_UINT)
289DEF_FUNCTION_TYPE_1 (BT_FN_UINT_INT, BT_UINT, BT_INT)
290DEF_FUNCTION_TYPE_1 (BT_FN_UINT_ULONG, BT_UINT, BT_ULONG)
291DEF_FUNCTION_TYPE_1 (BT_FN_UINT_LONG, BT_UINT, BT_LONG)
292DEF_FUNCTION_TYPE_1 (BT_FN_UINT_PTR, BT_UINT, BT_PTR)
293DEF_FUNCTION_TYPE_1 (BT_FN_UINT_CONST_PTR, BT_UINT, BT_CONST_PTR)
294DEF_FUNCTION_TYPE_1 (BT_FN_ULONG_PTR, BT_ULONG, BT_PTR)
295DEF_FUNCTION_TYPE_1 (BT_FN_ULONG_CONST_PTR, BT_ULONG, BT_CONST_PTR)
296DEF_FUNCTION_TYPE_1 (BT_FN_ULONG_ULONG, BT_ULONG, BT_ULONG)
297DEF_FUNCTION_TYPE_1 (BT_FN_ULONGLONG_ULONGLONG, BT_ULONGLONG, BT_ULONGLONG)
298DEF_FUNCTION_TYPE_1 (BT_FN_INT8_FLOAT, BT_INT8, BT_FLOAT)
299DEF_FUNCTION_TYPE_1 (BT_FN_INT16_FLOAT, BT_INT16, BT_FLOAT)
300DEF_FUNCTION_TYPE_1 (BT_FN_UINT32_FLOAT, BT_UINT32, BT_FLOAT)
301DEF_FUNCTION_TYPE_1 (BT_FN_UINT16_FLOAT, BT_UINT16, BT_FLOAT)
302DEF_FUNCTION_TYPE_1 (BT_FN_UINT8_FLOAT, BT_UINT8, BT_FLOAT)
303DEF_FUNCTION_TYPE_1 (BT_FN_UINT16_UINT16, BT_UINT16, BT_UINT16)
304DEF_FUNCTION_TYPE_1 (BT_FN_UINT32_UINT32, BT_UINT32, BT_UINT32)
305DEF_FUNCTION_TYPE_1 (BT_FN_UINT64_UINT64, BT_UINT64, BT_UINT64)
306DEF_FUNCTION_TYPE_1 (BT_FN_UINT128_UINT128, BT_UINT128, BT_UINT128)
307DEF_FUNCTION_TYPE_1 (BT_FN_UINT64_FLOAT, BT_UINT64, BT_FLOAT)
308DEF_FUNCTION_TYPE_1 (BT_FN_BOOL_INT, BT_BOOL, BT_INT)
309DEF_FUNCTION_TYPE_1 (BT_FN_BOOL_PTR, BT_BOOL, BT_PTR)
310DEF_FUNCTION_TYPE_1 (BT_FN_PTR_CONST_PTR, BT_PTR, BT_CONST_PTR)
311DEF_FUNCTION_TYPE_1 (BT_FN_CONST_PTR_CONST_PTR, BT_CONST_PTR, BT_CONST_PTR)
312DEF_FUNCTION_TYPE_1 (BT_FN_UINT16_UINT32, BT_UINT16, BT_UINT32)
313DEF_FUNCTION_TYPE_1 (BT_FN_UINT32_UINT16, BT_UINT32, BT_UINT16)
314DEF_FUNCTION_TYPE_1 (BT_FN_INT_FENV_T_PTR, BT_INT, BT_FENV_T_PTR)
315DEF_FUNCTION_TYPE_1 (BT_FN_INT_CONST_FENV_T_PTR, BT_INT, BT_CONST_FENV_T_PTR)
316
317DEF_POINTER_TYPE (BT_PTR_FN_VOID_PTR, BT_FN_VOID_PTR)
318
319DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_INT, BT_VOID, BT_PTR, BT_INT)
320DEF_FUNCTION_TYPE_2 (BT_FN_STRING_STRING_CONST_STRING,
321		     BT_STRING, BT_STRING, BT_CONST_STRING)
322DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_CONST_STRING,
323		     BT_INT, BT_CONST_STRING, BT_CONST_STRING)
324DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_CONST_STRING,
325		     BT_STRING, BT_CONST_STRING, BT_CONST_STRING)
326DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_STRING_CONST_STRING,
327		     BT_SIZE, BT_CONST_STRING, BT_CONST_STRING)
328DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_INT,
329		     BT_STRING, BT_CONST_STRING, BT_INT)
330DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_SIZE,
331		     BT_STRING, BT_CONST_STRING, BT_SIZE)
332DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_STRING_SIZE,
333		     BT_SIZE, BT_CONST_STRING, BT_SIZE)
334DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_FILEPTR,
335		     BT_INT, BT_CONST_STRING, BT_FILEPTR)
336DEF_FUNCTION_TYPE_2 (BT_FN_INT_INT_FILEPTR,
337		     BT_INT, BT_INT, BT_FILEPTR)
338DEF_FUNCTION_TYPE_2 (BT_FN_UINT16_UINT16_UINT16,
339		     BT_UINT16, BT_UINT16, BT_UINT16)
340DEF_FUNCTION_TYPE_2 (BT_FN_INT_PTR_INT,
341     		     BT_INT, BT_PTR, BT_INT)
342DEF_FUNCTION_TYPE_2 (BT_FN_UINT_PTR_UINT,
343     		     BT_UINT, BT_PTR, BT_UINT)
344DEF_FUNCTION_TYPE_2 (BT_FN_LONG_PTR_LONG,
345		     BT_LONG, BT_PTR, BT_LONG)
346DEF_FUNCTION_TYPE_2 (BT_FN_ULONG_PTR_ULONG,
347		     BT_ULONG, BT_PTR, BT_ULONG)
348DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTRMODE_PTR,
349		     BT_VOID, BT_PTRMODE, BT_PTR)
350DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_PTRMODE,
351		     BT_VOID, BT_PTR, BT_PTRMODE)
352DEF_FUNCTION_TYPE_2 (BT_FN_VOID_UINT8_UINT8,
353     		     BT_VOID, BT_UINT8, BT_UINT8)
354DEF_FUNCTION_TYPE_2 (BT_FN_VOID_UINT16_UINT16,
355     		     BT_VOID, BT_UINT16, BT_UINT16)
356DEF_FUNCTION_TYPE_2 (BT_FN_VOID_UINT32_UINT32,
357     		     BT_VOID, BT_UINT32, BT_UINT32)
358DEF_FUNCTION_TYPE_2 (BT_FN_VOID_UINT64_UINT64,
359     		     BT_VOID, BT_UINT64, BT_UINT64)
360DEF_FUNCTION_TYPE_2 (BT_FN_VOID_FLOAT_FLOAT,
361     		     BT_VOID, BT_FLOAT, BT_FLOAT)
362DEF_FUNCTION_TYPE_2 (BT_FN_VOID_DOUBLE_DOUBLE,
363     		     BT_VOID, BT_DOUBLE, BT_DOUBLE)
364DEF_FUNCTION_TYPE_2 (BT_FN_VOID_UINT64_PTR,
365     		     BT_VOID, BT_UINT64, BT_PTR)
366DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VALIST_REF_VALIST_ARG,
367		     BT_VOID, BT_VALIST_REF, BT_VALIST_ARG)
368DEF_FUNCTION_TYPE_2 (BT_FN_LONG_LONG_LONG,
369		     BT_LONG, BT_LONG, BT_LONG)
370DEF_FUNCTION_TYPE_2 (BT_FN_UINT8_UINT8_UINT8,
371		     BT_UINT8, BT_UINT8, BT_UINT8)
372DEF_FUNCTION_TYPE_2 (BT_FN_INT8_INT8_INT8,
373		     BT_INT8, BT_INT8, BT_INT8)
374DEF_FUNCTION_TYPE_2 (BT_FN_INT16_INT16_INT16,
375		     BT_INT16, BT_INT16, BT_INT16)
376DEF_FUNCTION_TYPE_2 (BT_FN_INT_INT_INT,
377		     BT_INT, BT_INT, BT_INT)
378DEF_FUNCTION_TYPE_2 (BT_FN_UINT_FLOAT_UINT,
379		     BT_UINT, BT_FLOAT, BT_UINT)
380DEF_FUNCTION_TYPE_2 (BT_FN_UINT_DOUBLE_UINT,
381		     BT_UINT, BT_DOUBLE, BT_UINT)
382DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_UINT_UINT,
383		     BT_FLOAT, BT_UINT, BT_UINT)
384DEF_FUNCTION_TYPE_2 (BT_FN_ULONG_UINT_UINT,
385		     BT_ULONG, BT_UINT, BT_UINT)
386DEF_FUNCTION_TYPE_2 (BT_FN_ULONG_UINT_PTR,
387		     BT_ULONG, BT_UINT, BT_PTR)
388DEF_FUNCTION_TYPE_2 (BT_FN_ULONG_ULONG_ULONG,
389		     BT_ULONG, BT_ULONG, BT_ULONG)
390DEF_FUNCTION_TYPE_2 (BT_FN_UINT_UINT_UINT,
391		     BT_UINT, BT_UINT, BT_UINT)
392DEF_FUNCTION_TYPE_2 (BT_FN_INT_PTR_CONST_STRING,
393		     BT_INT, BT_PTR, BT_CONST_STRING)
394DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_SIZE,
395		     BT_VOID, BT_PTR, BT_SIZE)
396DEF_FUNCTION_TYPE_2 (BT_FN_VOID_UINT_PTR,
397		     BT_VOID, BT_UINT, BT_PTR)
398DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOAT,
399		     BT_FLOAT, BT_FLOAT, BT_FLOAT)
400DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLE,
401		     BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
402DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
403		     BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
404DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT16_FLOAT16_FLOAT16,
405		     BT_FLOAT16, BT_FLOAT16, BT_FLOAT16)
406DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT32_FLOAT32_FLOAT32,
407		     BT_FLOAT32, BT_FLOAT32, BT_FLOAT32)
408DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT64_FLOAT64_FLOAT64,
409		     BT_FLOAT64, BT_FLOAT64, BT_FLOAT64)
410DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT128_FLOAT128_FLOAT128,
411		     BT_FLOAT128, BT_FLOAT128, BT_FLOAT128)
412DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X,
413		     BT_FLOAT32X, BT_FLOAT32X, BT_FLOAT32X)
414DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X,
415		     BT_FLOAT64X, BT_FLOAT64X, BT_FLOAT64X)
416DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X,
417		     BT_FLOAT128X, BT_FLOAT128X, BT_FLOAT128X)
418DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOATPTR,
419		     BT_FLOAT, BT_FLOAT, BT_FLOAT_PTR)
420DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLEPTR,
421		     BT_DOUBLE, BT_DOUBLE, BT_DOUBLE_PTR)
422DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLEPTR,
423		     BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR)
424DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONGDOUBLE,
425		     BT_FLOAT, BT_FLOAT, BT_LONGDOUBLE)
426DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONGDOUBLE,
427		     BT_DOUBLE, BT_DOUBLE, BT_LONGDOUBLE)
428DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INT,
429		     BT_FLOAT, BT_FLOAT, BT_INT)
430DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INT,
431		     BT_DOUBLE, BT_DOUBLE, BT_INT)
432DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INT,
433		     BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT)
434DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INTPTR,
435		     BT_FLOAT, BT_FLOAT, BT_INT_PTR)
436DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INTPTR,
437		     BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
438DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR,
439		     BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
440DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_INT_FLOAT,
441		     BT_FLOAT, BT_INT, BT_FLOAT)
442DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_INT_DOUBLE,
443		     BT_DOUBLE, BT_INT, BT_DOUBLE)
444DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_INT_LONGDOUBLE,
445		     BT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
446DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONG,
447		     BT_FLOAT, BT_FLOAT, BT_LONG)
448DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONG,
449		     BT_DOUBLE, BT_DOUBLE, BT_LONG)
450DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONG,
451		     BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONG)
452DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_VALIST_ARG,
453		     BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
454DEF_FUNCTION_TYPE_2 (BT_FN_PTR_SIZE_SIZE,
455		     BT_PTR, BT_SIZE, BT_SIZE)
456DEF_FUNCTION_TYPE_2 (BT_FN_PTR_PTR_SIZE,
457		     BT_PTR, BT_PTR, BT_SIZE)
458DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT,
459		     BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
460DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
461		     BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
462DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE,
463		     BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
464DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_PTR, BT_VOID, BT_PTR, BT_PTR)
465DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
466		     BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING)
467DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_PTR_INT, BT_SIZE, BT_CONST_PTR, BT_INT)
468DEF_FUNCTION_TYPE_2 (BT_FN_I1_VPTR_I1, BT_I1, BT_VOLATILE_PTR, BT_I1)
469DEF_FUNCTION_TYPE_2 (BT_FN_I2_VPTR_I2, BT_I2, BT_VOLATILE_PTR, BT_I2)
470DEF_FUNCTION_TYPE_2 (BT_FN_I4_VPTR_I4, BT_I4, BT_VOLATILE_PTR, BT_I4)
471DEF_FUNCTION_TYPE_2 (BT_FN_I8_VPTR_I8, BT_I8, BT_VOLATILE_PTR, BT_I8)
472DEF_FUNCTION_TYPE_2 (BT_FN_I16_VPTR_I16, BT_I16, BT_VOLATILE_PTR, BT_I16)
473DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_LONGPTR_LONGPTR,
474		     BT_BOOL, BT_PTR_LONG, BT_PTR_LONG)
475DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
476		     BT_BOOL, BT_PTR_ULONGLONG, BT_PTR_ULONGLONG)
477DEF_FUNCTION_TYPE_2 (BT_FN_I1_CONST_VPTR_INT, BT_I1, BT_CONST_VOLATILE_PTR,
478		     BT_INT)
479DEF_FUNCTION_TYPE_2 (BT_FN_I2_CONST_VPTR_INT, BT_I2, BT_CONST_VOLATILE_PTR,
480		     BT_INT)
481DEF_FUNCTION_TYPE_2 (BT_FN_I4_CONST_VPTR_INT, BT_I4, BT_CONST_VOLATILE_PTR,
482		     BT_INT)
483DEF_FUNCTION_TYPE_2 (BT_FN_I8_CONST_VPTR_INT, BT_I8, BT_CONST_VOLATILE_PTR,
484		     BT_INT)
485DEF_FUNCTION_TYPE_2 (BT_FN_I16_CONST_VPTR_INT, BT_I16, BT_CONST_VOLATILE_PTR,
486		     BT_INT)
487DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_INT, BT_VOID, BT_VOLATILE_PTR, BT_INT)
488DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_VPTR_INT, BT_BOOL, BT_VOLATILE_PTR, BT_INT)
489DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_SIZE_CONST_VPTR, BT_BOOL, BT_SIZE,
490		     BT_CONST_VOLATILE_PTR)
491DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_INT_BOOL, BT_BOOL, BT_INT, BT_BOOL)
492DEF_FUNCTION_TYPE_2 (BT_FN_VOID_UINT_UINT, BT_VOID, BT_UINT, BT_UINT)
493DEF_FUNCTION_TYPE_2 (BT_FN_UINT_UINT_PTR, BT_UINT, BT_UINT, BT_PTR)
494DEF_FUNCTION_TYPE_2 (BT_FN_UINT_UINT_CONST_PTR, BT_UINT, BT_UINT, BT_CONST_PTR)
495DEF_FUNCTION_TYPE_2 (BT_FN_PTR_CONST_PTR_SIZE, BT_PTR, BT_CONST_PTR, BT_SIZE)
496DEF_FUNCTION_TYPE_2 (BT_FN_PTR_CONST_PTR_CONST_PTR, BT_PTR, BT_CONST_PTR, BT_CONST_PTR)
497DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTRPTR_CONST_PTR, BT_VOID, BT_PTR_PTR, BT_CONST_PTR)
498DEF_FUNCTION_TYPE_2 (BT_FN_VOID_CONST_PTR_SIZE, BT_VOID, BT_CONST_PTR, BT_SIZE)
499DEF_FUNCTION_TYPE_2 (BT_FN_CONST_PTR_CONST_PTR_CONST_PTR, BT_CONST_PTR, BT_CONST_PTR, BT_CONST_PTR)
500DEF_FUNCTION_TYPE_2 (BT_FN_UINT32_UINT64_PTR,
501		     BT_UINT32, BT_UINT64, BT_PTR)
502DEF_FUNCTION_TYPE_2 (BT_FN_INT_FEXCEPT_T_PTR_INT, BT_INT, BT_FEXCEPT_T_PTR,
503		     BT_INT)
504DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_FEXCEPT_T_PTR_INT, BT_INT,
505		     BT_CONST_FEXCEPT_T_PTR, BT_INT)
506DEF_FUNCTION_TYPE_2 (BT_FN_PTR_CONST_PTR_UINT8, BT_PTR, BT_CONST_PTR, BT_UINT8)
507
508DEF_POINTER_TYPE (BT_PTR_FN_VOID_PTR_PTR, BT_FN_VOID_PTR_PTR)
509
510DEF_FUNCTION_TYPE_3 (BT_FN_STRING_STRING_CONST_STRING_SIZE,
511		     BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE)
512DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_SIZE,
513		     BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_SIZE)
514DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_CONST_PTR_SIZE,
515		     BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE)
516DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_CONST_PTR_SIZE,
517		     BT_VOID, BT_PTR, BT_CONST_PTR, BT_SIZE)
518DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_PTR_CONST_PTR_SIZE,
519		     BT_INT, BT_CONST_PTR, BT_CONST_PTR, BT_SIZE)
520DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_INT_SIZE,
521		     BT_PTR, BT_PTR, BT_INT, BT_SIZE)
522DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_INT_SIZE,
523		     BT_VOID, BT_PTR, BT_INT, BT_SIZE)
524DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_INT_INT,
525		     BT_VOID, BT_PTR, BT_INT, BT_INT)
526DEF_FUNCTION_TYPE_3 (BT_FN_VOID_CONST_PTR_PTR_SIZE,
527		     BT_VOID, BT_CONST_PTR, BT_PTR, BT_SIZE)
528DEF_FUNCTION_TYPE_3 (BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
529		     BT_INT, BT_STRING, BT_CONST_STRING, BT_VALIST_ARG)
530DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
531		     BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_VALIST_ARG)
532DEF_FUNCTION_TYPE_3 (BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
533		     BT_INT, BT_FILEPTR, BT_CONST_STRING, BT_VALIST_ARG)
534DEF_FUNCTION_TYPE_3 (BT_FN_INT_INT_UINT_UINT,
535		     BT_INT, BT_INT, BT_UINT, BT_UINT)
536DEF_FUNCTION_TYPE_3 (BT_FN_UINT_UINT_UINT_UINT,
537		     BT_UINT, BT_UINT, BT_UINT, BT_UINT)
538DEF_FUNCTION_TYPE_3 (BT_FN_UINT_UINT_UINT_PTR,
539		     BT_UINT, BT_UINT, BT_UINT, BT_PTR)
540DEF_FUNCTION_TYPE_3 (BT_FN_UINT_ULONG_ULONG_UINT,
541		     BT_UINT, BT_ULONG, BT_ULONG, BT_UINT)
542DEF_FUNCTION_TYPE_3 (BT_FN_ULONG_ULONG_ULONG_ULONG,
543		     BT_ULONG, BT_ULONG, BT_ULONG, BT_ULONG)
544DEF_FUNCTION_TYPE_3 (BT_FN_LONG_LONG_UINT_UINT,
545		     BT_LONG, BT_LONG, BT_UINT, BT_UINT)
546DEF_FUNCTION_TYPE_3 (BT_FN_LONG_LONG_LONG_DOUBLE,
547		     BT_LONG, BT_LONG, BT_LONG, BT_DOUBLE)
548DEF_FUNCTION_TYPE_3 (BT_FN_ULONG_ULONG_UINT_UINT,
549		     BT_ULONG, BT_ULONG, BT_UINT, BT_UINT)
550DEF_FUNCTION_TYPE_3 (BT_FN_STRING_CONST_STRING_CONST_STRING_INT,
551		     BT_STRING, BT_CONST_STRING, BT_CONST_STRING, BT_INT)
552DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_FLOAT,
553		     BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_FLOAT)
554DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_DOUBLE,
555		     BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
556DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
557		     BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
558DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT16_FLOAT16_FLOAT16_FLOAT16,
559		     BT_FLOAT16, BT_FLOAT16, BT_FLOAT16, BT_FLOAT16)
560DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT32_FLOAT32_FLOAT32_FLOAT32,
561		     BT_FLOAT32, BT_FLOAT32, BT_FLOAT32, BT_FLOAT32)
562DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT64_FLOAT64_FLOAT64_FLOAT64,
563		     BT_FLOAT64, BT_FLOAT64, BT_FLOAT64, BT_FLOAT64)
564DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT128_FLOAT128_FLOAT128_FLOAT128,
565		     BT_FLOAT128, BT_FLOAT128, BT_FLOAT128, BT_FLOAT128)
566DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X_FLOAT32X,
567		     BT_FLOAT32X, BT_FLOAT32X, BT_FLOAT32X, BT_FLOAT32X)
568DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X_FLOAT64X,
569		     BT_FLOAT64X, BT_FLOAT64X, BT_FLOAT64X, BT_FLOAT64X)
570DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X_FLOAT128X,
571		     BT_FLOAT128X, BT_FLOAT128X, BT_FLOAT128X, BT_FLOAT128X)
572DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_INTPTR,
573		     BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_INT_PTR)
574DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR,
575		     BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
576DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR,
577		     BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
578DEF_FUNCTION_TYPE_3 (BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR,
579		     BT_VOID, BT_FLOAT, BT_FLOAT_PTR, BT_FLOAT_PTR)
580DEF_FUNCTION_TYPE_3 (BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR,
581		     BT_VOID, BT_DOUBLE, BT_DOUBLE_PTR, BT_DOUBLE_PTR)
582DEF_FUNCTION_TYPE_3 (BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR,
583		     BT_VOID, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR, BT_LONGDOUBLE_PTR)
584DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_PTR_PTR, BT_VOID, BT_PTR, BT_PTR, BT_PTR)
585DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_PTR_UINT32, BT_VOID, BT_PTR, BT_PTR, BT_UINT32)
586DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING,
587		     BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING, BT_PTR_CONST_STRING)
588DEF_FUNCTION_TYPE_3 (BT_FN_INT_INT_CONST_STRING_VALIST_ARG,
589		     BT_INT, BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
590DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I1_I1, BT_BOOL, BT_VOLATILE_PTR,
591		     BT_I1, BT_I1)
592DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I2_I2, BT_BOOL, BT_VOLATILE_PTR,
593		     BT_I2, BT_I2)
594DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I4_I4, BT_BOOL, BT_VOLATILE_PTR,
595		     BT_I4, BT_I4)
596DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I8_I8, BT_BOOL, BT_VOLATILE_PTR,
597		     BT_I8, BT_I8)
598DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I16_I16, BT_BOOL, BT_VOLATILE_PTR,
599		     BT_I16, BT_I16)
600DEF_FUNCTION_TYPE_3 (BT_FN_I1_VPTR_I1_I1, BT_I1, BT_VOLATILE_PTR, BT_I1, BT_I1)
601DEF_FUNCTION_TYPE_3 (BT_FN_I2_VPTR_I2_I2, BT_I2, BT_VOLATILE_PTR, BT_I2, BT_I2)
602DEF_FUNCTION_TYPE_3 (BT_FN_I4_VPTR_I4_I4, BT_I4, BT_VOLATILE_PTR, BT_I4, BT_I4)
603DEF_FUNCTION_TYPE_3 (BT_FN_I8_VPTR_I8_I8, BT_I8, BT_VOLATILE_PTR, BT_I8, BT_I8)
604DEF_FUNCTION_TYPE_3 (BT_FN_I16_VPTR_I16_I16, BT_I16, BT_VOLATILE_PTR,
605		     BT_I16, BT_I16)
606DEF_FUNCTION_TYPE_3 (BT_FN_PTR_CONST_PTR_INT_SIZE, BT_PTR,
607		     BT_CONST_PTR, BT_INT, BT_SIZE)
608DEF_FUNCTION_TYPE_3 (BT_FN_I1_VPTR_I1_INT, BT_I1, BT_VOLATILE_PTR, BT_I1, BT_INT)
609DEF_FUNCTION_TYPE_3 (BT_FN_I2_VPTR_I2_INT, BT_I2, BT_VOLATILE_PTR, BT_I2, BT_INT)
610DEF_FUNCTION_TYPE_3 (BT_FN_I4_VPTR_I4_INT, BT_I4, BT_VOLATILE_PTR, BT_I4, BT_INT)
611DEF_FUNCTION_TYPE_3 (BT_FN_I8_VPTR_I8_INT, BT_I8, BT_VOLATILE_PTR, BT_I8, BT_INT)
612DEF_FUNCTION_TYPE_3 (BT_FN_I16_VPTR_I16_INT, BT_I16, BT_VOLATILE_PTR, BT_I16, BT_INT)
613DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I1_INT, BT_VOID, BT_VOLATILE_PTR, BT_I1, BT_INT)
614DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I2_INT, BT_VOID, BT_VOLATILE_PTR, BT_I2, BT_INT)
615DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I4_INT, BT_VOID, BT_VOLATILE_PTR, BT_I4, BT_INT)
616DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I8_INT, BT_VOID, BT_VOLATILE_PTR, BT_I8, BT_INT)
617DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I16_INT, BT_VOID, BT_VOLATILE_PTR, BT_I16, BT_INT)
618DEF_FUNCTION_TYPE_3 (BT_FN_INT_PTRPTR_SIZE_SIZE, BT_INT, BT_PTR_PTR, BT_SIZE, BT_SIZE)
619DEF_FUNCTION_TYPE_3 (BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE, BT_PTR, BT_CONST_PTR, BT_CONST_PTR, BT_SIZE)
620DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_INT_INT_INTPTR, BT_BOOL, BT_INT, BT_INT,
621		     BT_INT_PTR)
622DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_LONG_LONG_LONGPTR, BT_BOOL, BT_LONG, BT_LONG,
623		     BT_PTR_LONG)
624DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_LONGLONG_LONGLONG_LONGLONGPTR, BT_BOOL,
625		     BT_LONGLONG, BT_LONGLONG, BT_PTR_LONGLONG)
626DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_UINT_UINT_UINTPTR, BT_BOOL, BT_UINT, BT_UINT,
627		     BT_PTR_UINT)
628DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_ULONG_ULONG_ULONGPTR, BT_BOOL, BT_ULONG,
629		     BT_ULONG, BT_PTR_ULONG)
630DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_ULONGLONG_ULONGLONG_ULONGLONGPTR, BT_BOOL,
631		     BT_ULONGLONG, BT_ULONGLONG, BT_PTR_ULONGLONG)
632DEF_FUNCTION_TYPE_3 (BT_FN_VOID_UINT32_UINT64_PTR,
633		     BT_VOID, BT_UINT32, BT_UINT64, BT_PTR)
634DEF_FUNCTION_TYPE_3 (BT_FN_VOID_UINT32_UINT32_PTR,
635		     BT_VOID, BT_UINT32, BT_UINT32, BT_PTR)
636DEF_FUNCTION_TYPE_3 (BT_FN_VOID_SIZE_SIZE_PTR, BT_VOID, BT_SIZE, BT_SIZE,
637		     BT_PTR)
638DEF_FUNCTION_TYPE_3 (BT_FN_UINT_UINT_PTR_PTR, BT_UINT, BT_UINT, BT_PTR, BT_PTR)
639DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_CONST_SIZE_BOOL,
640		     BT_PTR, BT_PTR, BT_CONST_SIZE, BT_BOOL)
641DEF_FUNCTION_TYPE_3 (BT_FN_PTR_SIZE_SIZE_PTRMODE,
642		     BT_PTR, BT_SIZE, BT_SIZE, BT_PTRMODE)
643DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_UINT8_PTRMODE, BT_VOID, BT_PTR, BT_UINT8,
644		     BT_PTRMODE)
645
646DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
647		     BT_SIZE, BT_CONST_PTR, BT_SIZE, BT_SIZE, BT_FILEPTR)
648DEF_FUNCTION_TYPE_4 (BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
649		BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_VALIST_ARG)
650DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_TM_PTR,
651		BT_SIZE, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_CONST_TM_PTR)
652DEF_FUNCTION_TYPE_4 (BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE,
653		     BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE, BT_SIZE)
654DEF_FUNCTION_TYPE_4 (BT_FN_PTR_PTR_INT_SIZE_SIZE,
655		     BT_PTR, BT_PTR, BT_INT, BT_SIZE, BT_SIZE)
656DEF_FUNCTION_TYPE_4 (BT_FN_UINT_UINT_UINT_UINT_UINT,
657		     BT_UINT, BT_UINT, BT_UINT, BT_UINT, BT_UINT)
658DEF_FUNCTION_TYPE_4 (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT,
659		     BT_UINT, BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_FLOAT)
660DEF_FUNCTION_TYPE_4 (BT_FN_ULONG_ULONG_ULONG_UINT_UINT,
661		     BT_ULONG, BT_ULONG, BT_ULONG, BT_UINT, BT_UINT)
662DEF_FUNCTION_TYPE_4 (BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE,
663		     BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE, BT_SIZE)
664DEF_FUNCTION_TYPE_4 (BT_FN_INT_FILEPTR_INT_CONST_STRING_VALIST_ARG,
665		     BT_INT, BT_FILEPTR, BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
666DEF_FUNCTION_TYPE_4 (BT_FN_VOID_OMPFN_PTR_UINT_UINT,
667		     BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT, BT_UINT)
668DEF_FUNCTION_TYPE_4 (BT_FN_UINT_OMPFN_PTR_UINT_UINT,
669		     BT_UINT, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT, BT_UINT)
670DEF_FUNCTION_TYPE_4 (BT_FN_VOID_PTR_WORD_WORD_PTR,
671		     BT_VOID, BT_PTR, BT_WORD, BT_WORD, BT_PTR)
672DEF_FUNCTION_TYPE_4 (BT_FN_VOID_SIZE_VPTR_PTR_INT, BT_VOID, BT_SIZE,
673		     BT_VOLATILE_PTR, BT_PTR, BT_INT)
674DEF_FUNCTION_TYPE_4 (BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT, BT_VOID, BT_SIZE,
675		     BT_CONST_VOLATILE_PTR, BT_PTR, BT_INT)
676DEF_FUNCTION_TYPE_4 (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
677		     BT_BOOL, BT_UINT, BT_PTR_LONG, BT_PTR_LONG, BT_PTR_LONG)
678DEF_FUNCTION_TYPE_4 (BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
679		     BT_BOOL, BT_UINT, BT_PTR_ULONGLONG, BT_PTR_ULONGLONG,
680		     BT_PTR_ULONGLONG)
681DEF_FUNCTION_TYPE_4 (BT_FN_VOID_UINT_PTR_INT_PTR, BT_VOID, BT_INT, BT_PTR,
682		     BT_INT, BT_PTR)
683
684DEF_FUNCTION_TYPE_5 (BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG,
685		     BT_INT, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING,
686		     BT_VALIST_ARG)
687DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
688		     BT_BOOL, BT_LONG, BT_LONG, BT_LONG,
689		     BT_PTR_LONG, BT_PTR_LONG)
690DEF_FUNCTION_TYPE_5 (BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT, BT_VOID, BT_SIZE,
691		     BT_VOLATILE_PTR, BT_PTR, BT_PTR, BT_INT)
692DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_VPTR_PTR_I1_INT_INT,
693		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I1, BT_INT, BT_INT)
694DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_VPTR_PTR_I2_INT_INT,
695		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I2, BT_INT, BT_INT)
696DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_VPTR_PTR_I4_INT_INT,
697		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I4, BT_INT, BT_INT)
698DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_VPTR_PTR_I8_INT_INT,
699		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I8, BT_INT, BT_INT)
700DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_VPTR_PTR_I16_INT_INT,
701		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I16, BT_INT, BT_INT)
702DEF_FUNCTION_TYPE_5 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR,
703		     BT_VOID, BT_INT, BT_SIZE, BT_PTR, BT_PTR, BT_PTR)
704DEF_FUNCTION_TYPE_5 (BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT,
705		     BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT, BT_UINT,
706		     BT_UINT)
707DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
708		     BT_BOOL, BT_UINT, BT_PTR_LONG, BT_LONG, BT_PTR_LONG,
709		     BT_PTR_LONG)
710DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
711		     BT_BOOL, BT_UINT, BT_PTR_ULONGLONG, BT_ULONGLONG,
712		     BT_PTR_ULONGLONG, BT_PTR_ULONGLONG)
713
714DEF_FUNCTION_TYPE_6 (BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG,
715		     BT_INT, BT_STRING, BT_SIZE, BT_INT, BT_SIZE,
716		     BT_CONST_STRING, BT_VALIST_ARG)
717DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
718		     BT_BOOL, BT_LONG, BT_LONG, BT_LONG, BT_LONG,
719		     BT_PTR_LONG, BT_PTR_LONG)
720DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
721		     BT_BOOL, BT_BOOL, BT_ULONGLONG, BT_ULONGLONG,
722		     BT_ULONGLONG, BT_PTR_ULONGLONG, BT_PTR_ULONGLONG)
723DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I1_BOOL_INT_INT,
724		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I1, BT_BOOL, BT_INT,
725		     BT_INT)
726DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I2_BOOL_INT_INT,
727		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I2, BT_BOOL, BT_INT,
728		     BT_INT)
729DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I4_BOOL_INT_INT,
730		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I4, BT_BOOL, BT_INT,
731		     BT_INT)
732DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I8_BOOL_INT_INT,
733		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I8, BT_BOOL, BT_INT,
734		     BT_INT)
735DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I16_BOOL_INT_INT,
736		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I16, BT_BOOL, BT_INT,
737		     BT_INT)
738DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_SIZE_VPTR_PTR_PTR_INT_INT, BT_BOOL, BT_SIZE,
739		     BT_VOLATILE_PTR, BT_PTR, BT_PTR, BT_INT, BT_INT)
740
741DEF_FUNCTION_TYPE_7 (BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
742		     BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT,
743		     BT_LONG, BT_LONG, BT_LONG, BT_UINT)
744DEF_FUNCTION_TYPE_7 (BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
745		     BT_BOOL, BT_BOOL, BT_ULONGLONG, BT_ULONGLONG,
746		     BT_ULONGLONG, BT_ULONGLONG,
747		     BT_PTR_ULONGLONG, BT_PTR_ULONGLONG)
748DEF_FUNCTION_TYPE_7 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
749		     BT_VOID, BT_INT, BT_SIZE, BT_PTR, BT_PTR, BT_PTR, BT_UINT,
750		     BT_PTR)
751
752DEF_FUNCTION_TYPE_8 (BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
753		     BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT,
754		     BT_LONG, BT_LONG, BT_LONG, BT_LONG, BT_UINT)
755DEF_FUNCTION_TYPE_8 (BT_FN_BOOL_UINT_LONGPTR_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR,
756		     BT_BOOL, BT_UINT, BT_PTR_LONG, BT_LONG, BT_LONG,
757		     BT_PTR_LONG, BT_PTR_LONG, BT_PTR, BT_PTR)
758DEF_FUNCTION_TYPE_8 (BT_FN_BOOL_UINT_ULLPTR_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR,
759		     BT_BOOL, BT_UINT, BT_PTR_ULONGLONG, BT_LONG, BT_ULONGLONG,
760		     BT_PTR_ULONGLONG, BT_PTR_ULONGLONG, BT_PTR, BT_PTR)
761
762DEF_FUNCTION_TYPE_9 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR,
763		     BT_VOID, BT_INT, BT_PTR_FN_VOID_PTR, BT_SIZE, BT_PTR,
764		     BT_PTR, BT_PTR, BT_UINT, BT_PTR, BT_PTR)
765DEF_FUNCTION_TYPE_9 (BT_FN_BOOL_LONG_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR,
766		     BT_BOOL, BT_LONG, BT_LONG, BT_LONG, BT_LONG, BT_LONG,
767		     BT_PTR_LONG, BT_PTR_LONG, BT_PTR, BT_PTR)
768
769DEF_FUNCTION_TYPE_10 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR,
770		      BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR,
771		      BT_PTR_FN_VOID_PTR_PTR, BT_LONG, BT_LONG,
772		      BT_BOOL, BT_UINT, BT_PTR, BT_INT, BT_PTR)
773DEF_FUNCTION_TYPE_10 (BT_FN_BOOL_BOOL_ULL_ULL_ULL_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR,
774		      BT_BOOL, BT_BOOL, BT_ULONGLONG, BT_ULONGLONG,
775		      BT_ULONGLONG, BT_LONG, BT_ULONGLONG, BT_PTR_ULONGLONG,
776		      BT_PTR_ULONGLONG, BT_PTR, BT_PTR)
777
778DEF_FUNCTION_TYPE_11 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
779		      BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR,
780		      BT_PTR_FN_VOID_PTR_PTR, BT_LONG, BT_LONG,
781		      BT_UINT, BT_LONG, BT_INT, BT_LONG, BT_LONG, BT_LONG)
782DEF_FUNCTION_TYPE_11 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
783		      BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR,
784		      BT_PTR_FN_VOID_PTR_PTR, BT_LONG, BT_LONG,
785		      BT_UINT, BT_LONG, BT_INT,
786		      BT_ULONGLONG, BT_ULONGLONG, BT_ULONGLONG)
787
788DEF_FUNCTION_TYPE_VAR_0 (BT_FN_VOID_VAR, BT_VOID)
789DEF_FUNCTION_TYPE_VAR_0 (BT_FN_INT_VAR, BT_INT)
790DEF_FUNCTION_TYPE_VAR_0 (BT_FN_PTR_VAR, BT_PTR)
791DEF_FUNCTION_TYPE_VAR_0 (BT_FN_BOOL_VAR, BT_BOOL)
792
793DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_VALIST_REF_VAR,
794			 BT_VOID, BT_VALIST_REF)
795DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_CONST_PTR_VAR,
796			 BT_VOID, BT_CONST_PTR)
797DEF_FUNCTION_TYPE_VAR_1 (BT_FN_INT_CONST_STRING_VAR,
798			 BT_INT, BT_CONST_STRING)
799DEF_FUNCTION_TYPE_VAR_1 (BT_FN_UINT32_UINT32_VAR,
800			 BT_UINT32, BT_UINT32)
801DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_LONG_VAR,
802			 BT_VOID, BT_LONG)
803DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_ULL_VAR,
804			 BT_VOID, BT_ULONGLONG)
805DEF_FUNCTION_TYPE_VAR_1 (BT_FN_PTR_PTR_VAR, BT_PTR, BT_PTR)
806DEF_FUNCTION_TYPE_VAR_1 (BT_FN_I1_I1_VAR, BT_I1, BT_I1)
807DEF_FUNCTION_TYPE_VAR_1 (BT_FN_I2_I2_VAR, BT_I2, BT_I2)
808DEF_FUNCTION_TYPE_VAR_1 (BT_FN_I4_I4_VAR, BT_I4, BT_I4)
809DEF_FUNCTION_TYPE_VAR_1 (BT_FN_I8_I8_VAR, BT_I8, BT_I8)
810DEF_FUNCTION_TYPE_VAR_1 (BT_FN_I16_I16_VAR, BT_I16, BT_I16)
811
812DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_FILEPTR_CONST_STRING_VAR,
813			 BT_INT, BT_FILEPTR, BT_CONST_STRING)
814DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_STRING_CONST_STRING_VAR,
815			 BT_INT, BT_STRING, BT_CONST_STRING)
816DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
817			 BT_INT, BT_CONST_STRING, BT_CONST_STRING)
818DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_INT_CONST_STRING_VAR,
819			 BT_INT, BT_INT, BT_CONST_STRING)
820DEF_FUNCTION_TYPE_VAR_2 (BT_FN_PTR_CONST_PTR_SIZE_VAR, BT_PTR,
821			 BT_CONST_PTR, BT_SIZE)
822DEF_FUNCTION_TYPE_VAR_2 (BT_FN_VOID_INT_INT_VAR, BT_VOID,
823			 BT_INT, BT_INT)
824
825DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_STRING_SIZE_CONST_STRING_VAR,
826			 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING)
827DEF_FUNCTION_TYPE_VAR_3 (BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR,
828			 BT_SSIZE, BT_STRING, BT_SIZE, BT_CONST_STRING)
829DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR,
830			 BT_INT, BT_FILEPTR, BT_INT, BT_CONST_STRING)
831
832DEF_FUNCTION_TYPE_VAR_4 (BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR,
833			 BT_INT, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING)
834
835DEF_FUNCTION_TYPE_VAR_5 (BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR,
836			 BT_INT, BT_STRING, BT_SIZE, BT_INT, BT_SIZE,
837			 BT_CONST_STRING)
838
839DEF_FUNCTION_TYPE_VAR_5 (BT_FN_INT_INT_INT_INT_INT_INT_VAR,
840			 BT_INT, BT_INT, BT_INT, BT_INT, BT_INT, BT_INT)
841
842DEF_FUNCTION_TYPE_VAR_6 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_VAR,
843			 BT_VOID, BT_INT, BT_PTR_FN_VOID_PTR, BT_SIZE,
844			 BT_PTR, BT_PTR, BT_PTR)
845
846DEF_FUNCTION_TYPE_VAR_7 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR,
847			 BT_VOID, BT_INT, BT_SIZE, BT_PTR, BT_PTR,
848			 BT_PTR, BT_INT, BT_INT)
849
850DEF_POINTER_TYPE (BT_PTR_FN_VOID_VAR, BT_FN_VOID_VAR)
851DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE,
852		     BT_PTR, BT_PTR_FN_VOID_VAR, BT_PTR, BT_SIZE)
853
854
855DEF_FUNCTION_TYPE_1 (BT_FN_I1_VPTR, BT_I1, BT_VOLATILE_PTR)
856DEF_FUNCTION_TYPE_1 (BT_FN_I2_VPTR, BT_I2, BT_VOLATILE_PTR)
857DEF_FUNCTION_TYPE_1 (BT_FN_I4_VPTR, BT_I4, BT_VOLATILE_PTR)
858DEF_FUNCTION_TYPE_1 (BT_FN_I8_VPTR, BT_I8, BT_VOLATILE_PTR)
859DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_VPTR, BT_FLOAT, BT_VOLATILE_PTR)
860DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_CONST_DOUBLE_PTR, BT_DOUBLE, BT_DOUBLE_PTR)
861DEF_FUNCTION_TYPE_1 (BT_FN_LDOUBLE_VPTR, BT_LONGDOUBLE, BT_VOLATILE_PTR)
862
863DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_I1, BT_VOID, BT_VOLATILE_PTR, BT_I1)
864DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_I2, BT_VOID, BT_VOLATILE_PTR, BT_I2)
865DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_I4, BT_VOID, BT_VOLATILE_PTR, BT_I4)
866DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_I8, BT_VOID, BT_VOLATILE_PTR, BT_I8)
867DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_FLOAT, BT_VOID, BT_VOLATILE_PTR, BT_FLOAT)
868DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_DOUBLE, BT_VOID,
869		     BT_VOLATILE_PTR, BT_DOUBLE)
870DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_LDOUBLE, BT_VOID,
871		     BT_VOLATILE_PTR, BT_LONGDOUBLE)
872DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_SIZE, BT_VOID,
873		     BT_VOLATILE_PTR, BT_SIZE)
874