1/* Copyright (C) 2001-2016 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_UINT16, uint16_type_node)
71DEF_PRIMITIVE_TYPE (BT_UINT32, uint32_type_node)
72DEF_PRIMITIVE_TYPE (BT_UINT64, uint64_type_node)
73DEF_PRIMITIVE_TYPE (BT_WORD, (*lang_hooks.types.type_for_mode) (word_mode, 1))
74DEF_PRIMITIVE_TYPE (BT_UNWINDWORD, (*lang_hooks.types.type_for_mode)
75				    (targetm.unwind_word_mode (), 1))
76DEF_PRIMITIVE_TYPE (BT_FLOAT, float_type_node)
77DEF_PRIMITIVE_TYPE (BT_DOUBLE, double_type_node)
78DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE, long_double_type_node)
79DEF_PRIMITIVE_TYPE (BT_COMPLEX_FLOAT, complex_float_type_node)
80DEF_PRIMITIVE_TYPE (BT_COMPLEX_DOUBLE, complex_double_type_node)
81DEF_PRIMITIVE_TYPE (BT_COMPLEX_LONGDOUBLE, complex_long_double_type_node)
82
83DEF_PRIMITIVE_TYPE (BT_PTR, ptr_type_node)
84DEF_PRIMITIVE_TYPE (BT_FILEPTR, fileptr_type_node)
85DEF_PRIMITIVE_TYPE (BT_CONST_PTR, const_ptr_type_node)
86DEF_PRIMITIVE_TYPE (BT_VOLATILE_PTR,
87		    build_pointer_type
88		     (build_qualified_type (void_type_node,
89					    TYPE_QUAL_VOLATILE)))
90DEF_PRIMITIVE_TYPE (BT_CONST_VOLATILE_PTR,
91		    build_pointer_type
92		     (build_qualified_type (void_type_node,
93					  TYPE_QUAL_VOLATILE|TYPE_QUAL_CONST)))
94DEF_PRIMITIVE_TYPE (BT_PTRMODE, (*lang_hooks.types.type_for_mode)(ptr_mode, 0))
95DEF_PRIMITIVE_TYPE (BT_INT_PTR, integer_ptr_type_node)
96DEF_PRIMITIVE_TYPE (BT_FLOAT_PTR, float_ptr_type_node)
97DEF_PRIMITIVE_TYPE (BT_DOUBLE_PTR, double_ptr_type_node)
98DEF_PRIMITIVE_TYPE (BT_CONST_DOUBLE_PTR,
99		    build_pointer_type
100		     (build_qualified_type (double_type_node,
101		     			    TYPE_QUAL_CONST)))
102DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE_PTR, long_double_ptr_type_node)
103DEF_PRIMITIVE_TYPE (BT_PID, pid_type_node)
104DEF_PRIMITIVE_TYPE (BT_SIZE, size_type_node)
105DEF_PRIMITIVE_TYPE (BT_SSIZE, signed_size_type_node)
106DEF_PRIMITIVE_TYPE (BT_WINT, wint_type_node)
107DEF_PRIMITIVE_TYPE (BT_STRING, string_type_node)
108DEF_PRIMITIVE_TYPE (BT_CONST_STRING, const_string_type_node)
109
110DEF_PRIMITIVE_TYPE (BT_DFLOAT32, dfloat32_type_node)
111DEF_PRIMITIVE_TYPE (BT_DFLOAT64, dfloat64_type_node)
112DEF_PRIMITIVE_TYPE (BT_DFLOAT128, dfloat128_type_node)
113DEF_PRIMITIVE_TYPE (BT_DFLOAT32_PTR, dfloat32_ptr_type_node)
114DEF_PRIMITIVE_TYPE (BT_DFLOAT64_PTR, dfloat64_ptr_type_node)
115DEF_PRIMITIVE_TYPE (BT_DFLOAT128_PTR, dfloat128_ptr_type_node)
116
117DEF_PRIMITIVE_TYPE (BT_VALIST_REF, va_list_ref_type_node)
118DEF_PRIMITIVE_TYPE (BT_VALIST_ARG, va_list_arg_type_node)
119
120DEF_PRIMITIVE_TYPE (BT_I1, builtin_type_for_size (BITS_PER_UNIT*1, 1))
121DEF_PRIMITIVE_TYPE (BT_I2, builtin_type_for_size (BITS_PER_UNIT*2, 1))
122DEF_PRIMITIVE_TYPE (BT_I4, builtin_type_for_size (BITS_PER_UNIT*4, 1))
123DEF_PRIMITIVE_TYPE (BT_I8, builtin_type_for_size (BITS_PER_UNIT*8, 1))
124DEF_PRIMITIVE_TYPE (BT_I16, builtin_type_for_size (BITS_PER_UNIT*16, 1))
125
126DEF_PRIMITIVE_TYPE (BT_BND, pointer_bounds_type_node)
127
128DEF_POINTER_TYPE (BT_PTR_CONST_STRING, BT_CONST_STRING)
129DEF_POINTER_TYPE (BT_PTR_UINT, BT_UINT)
130DEF_POINTER_TYPE (BT_PTR_LONG, BT_LONG)
131DEF_POINTER_TYPE (BT_PTR_ULONG, BT_ULONG)
132DEF_POINTER_TYPE (BT_PTR_LONGLONG, BT_LONGLONG)
133DEF_POINTER_TYPE (BT_PTR_ULONGLONG, BT_ULONGLONG)
134DEF_POINTER_TYPE (BT_PTR_PTR, BT_PTR)
135
136DEF_FUNCTION_TYPE_0 (BT_FN_VOID, BT_VOID)
137DEF_FUNCTION_TYPE_0 (BT_FN_BOOL, BT_BOOL)
138DEF_FUNCTION_TYPE_0 (BT_FN_PTR, BT_PTR)
139DEF_FUNCTION_TYPE_0 (BT_FN_CONST_STRING, BT_CONST_STRING)
140DEF_FUNCTION_TYPE_0 (BT_FN_PID, BT_PID)
141DEF_FUNCTION_TYPE_0 (BT_FN_INT, BT_INT)
142DEF_FUNCTION_TYPE_0 (BT_FN_UINT, BT_UINT)
143DEF_FUNCTION_TYPE_0 (BT_FN_FLOAT, BT_FLOAT)
144DEF_FUNCTION_TYPE_0 (BT_FN_DOUBLE, BT_DOUBLE)
145/* For "long double" we use LONGDOUBLE (not LONG_DOUBLE) to
146   distinguish it from two types in sequence, "long" followed by
147   "double".  */
148DEF_FUNCTION_TYPE_0 (BT_FN_LONGDOUBLE, BT_LONGDOUBLE)
149DEF_FUNCTION_TYPE_0 (BT_FN_DFLOAT32, BT_DFLOAT32)
150DEF_FUNCTION_TYPE_0 (BT_FN_DFLOAT64, BT_DFLOAT64)
151DEF_FUNCTION_TYPE_0 (BT_FN_DFLOAT128, BT_DFLOAT128)
152
153DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONG, BT_LONG, BT_LONG)
154DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGLONG, BT_LONGLONG, BT_LONGLONG)
155DEF_FUNCTION_TYPE_1 (BT_FN_INTMAX_INTMAX, BT_INTMAX, BT_INTMAX)
156DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_FLOAT, BT_FLOAT, BT_FLOAT)
157DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_DOUBLE, BT_DOUBLE, BT_DOUBLE)
158DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_LONGDOUBLE,
159		     BT_LONGDOUBLE, BT_LONGDOUBLE)
160DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT,
161		     BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
162DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
163		     BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
164DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE,
165		     BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
166DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_COMPLEX_FLOAT,
167		     BT_FLOAT, BT_COMPLEX_FLOAT)
168DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_COMPLEX_DOUBLE,
169		     BT_DOUBLE, BT_COMPLEX_DOUBLE)
170DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_COMPLEX_LONGDOUBLE,
171		     BT_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
172DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_FLOAT_FLOAT,
173		     BT_COMPLEX_FLOAT, BT_FLOAT)
174DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_DOUBLE_DOUBLE,
175		     BT_COMPLEX_DOUBLE, BT_DOUBLE)
176DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_LONGDOUBLE_LONGDOUBLE,
177		     BT_COMPLEX_LONGDOUBLE, BT_LONGDOUBLE)
178DEF_FUNCTION_TYPE_1 (BT_FN_PTR_UINT, BT_PTR, BT_UINT)
179DEF_FUNCTION_TYPE_1 (BT_FN_PTR_SIZE, BT_PTR, BT_SIZE)
180DEF_FUNCTION_TYPE_1 (BT_FN_INT_INT, BT_INT, BT_INT)
181DEF_FUNCTION_TYPE_1 (BT_FN_INT_UINT, BT_INT, BT_UINT)
182DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONG, BT_INT, BT_LONG)
183DEF_FUNCTION_TYPE_1 (BT_FN_INT_ULONG, BT_INT, BT_ULONG)
184DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGLONG, BT_INT, BT_LONGLONG)
185DEF_FUNCTION_TYPE_1 (BT_FN_INT_ULONGLONG, BT_INT, BT_ULONGLONG)
186DEF_FUNCTION_TYPE_1 (BT_FN_INT_INTMAX, BT_INT, BT_INTMAX)
187DEF_FUNCTION_TYPE_1 (BT_FN_INT_UINTMAX, BT_INT, BT_UINTMAX)
188DEF_FUNCTION_TYPE_1 (BT_FN_INT_PTR, BT_INT, BT_PTR)
189DEF_FUNCTION_TYPE_1 (BT_FN_INT_FLOAT, BT_INT, BT_FLOAT)
190DEF_FUNCTION_TYPE_1 (BT_FN_INT_DOUBLE, BT_INT, BT_DOUBLE)
191DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
192DEF_FUNCTION_TYPE_1 (BT_FN_INT_DFLOAT32, BT_INT, BT_DFLOAT32)
193DEF_FUNCTION_TYPE_1 (BT_FN_INT_DFLOAT64, BT_INT, BT_DFLOAT64)
194DEF_FUNCTION_TYPE_1 (BT_FN_INT_DFLOAT128, BT_INT, BT_DFLOAT128)
195DEF_FUNCTION_TYPE_1 (BT_FN_LONG_FLOAT, BT_LONG, BT_FLOAT)
196DEF_FUNCTION_TYPE_1 (BT_FN_LONG_DOUBLE, BT_LONG, BT_DOUBLE)
197DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONGDOUBLE, BT_LONG, BT_LONGDOUBLE)
198DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_FLOAT, BT_LONGLONG, BT_FLOAT)
199DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_DOUBLE, BT_LONGLONG, BT_DOUBLE)
200DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGDOUBLE, BT_LONGLONG, BT_LONGDOUBLE)
201DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTR, BT_VOID, BT_PTR)
202DEF_FUNCTION_TYPE_1 (BT_FN_SIZE_CONST_STRING, BT_SIZE, BT_CONST_STRING)
203DEF_FUNCTION_TYPE_1 (BT_FN_INT_CONST_STRING, BT_INT, BT_CONST_STRING)
204DEF_FUNCTION_TYPE_1 (BT_FN_PTR_PTR, BT_PTR, BT_PTR)
205DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VALIST_REF, BT_VOID, BT_VALIST_REF)
206DEF_FUNCTION_TYPE_1 (BT_FN_VOID_INT, BT_VOID, BT_INT)
207DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_CONST_STRING, BT_FLOAT, BT_CONST_STRING)
208DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_CONST_STRING, BT_DOUBLE, BT_CONST_STRING)
209DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_CONST_STRING,
210		     BT_LONGDOUBLE, BT_CONST_STRING)
211DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT32_CONST_STRING, BT_DFLOAT32, BT_CONST_STRING)
212DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT64_CONST_STRING, BT_DFLOAT64, BT_CONST_STRING)
213DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT128_CONST_STRING,
214		     BT_DFLOAT128, BT_CONST_STRING)
215DEF_FUNCTION_TYPE_1 (BT_FN_STRING_CONST_STRING, BT_STRING, BT_CONST_STRING)
216DEF_FUNCTION_TYPE_1 (BT_FN_UNWINDWORD_PTR, BT_UNWINDWORD, BT_PTR)
217DEF_FUNCTION_TYPE_1 (BT_FN_INT_WINT, BT_INT, BT_WINT)
218DEF_FUNCTION_TYPE_1 (BT_FN_WINT_WINT, BT_WINT, BT_WINT)
219DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT32_DFLOAT32, BT_DFLOAT32, BT_DFLOAT32)
220DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT64_DFLOAT64, BT_DFLOAT64, BT_DFLOAT64)
221DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT128_DFLOAT128, BT_DFLOAT128, BT_DFLOAT128)
222DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VPTR, BT_VOID, BT_VOLATILE_PTR)
223DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTRPTR, BT_VOID, BT_PTR_PTR)
224DEF_FUNCTION_TYPE_1 (BT_FN_VOID_CONST_PTR, BT_VOID, BT_CONST_PTR)
225DEF_FUNCTION_TYPE_1 (BT_FN_UINT_UINT, BT_UINT, BT_UINT)
226DEF_FUNCTION_TYPE_1 (BT_FN_ULONG_ULONG, BT_ULONG, BT_ULONG)
227DEF_FUNCTION_TYPE_1 (BT_FN_ULONGLONG_ULONGLONG, BT_ULONGLONG, BT_ULONGLONG)
228DEF_FUNCTION_TYPE_1 (BT_FN_UINT16_UINT16, BT_UINT16, BT_UINT16)
229DEF_FUNCTION_TYPE_1 (BT_FN_UINT32_UINT32, BT_UINT32, BT_UINT32)
230DEF_FUNCTION_TYPE_1 (BT_FN_UINT64_UINT64, BT_UINT64, BT_UINT64)
231DEF_FUNCTION_TYPE_1 (BT_FN_BOOL_INT, BT_BOOL, BT_INT)
232DEF_FUNCTION_TYPE_1 (BT_FN_PTR_CONST_PTR, BT_PTR, BT_CONST_PTR)
233DEF_FUNCTION_TYPE_1 (BT_FN_CONST_PTR_CONST_PTR, BT_CONST_PTR, BT_CONST_PTR)
234DEF_FUNCTION_TYPE_1 (BT_FN_BND_CONST_PTR, BT_BND, BT_CONST_PTR)
235DEF_FUNCTION_TYPE_1 (BT_FN_CONST_PTR_BND, BT_CONST_PTR, BT_BND)
236
237DEF_POINTER_TYPE (BT_PTR_FN_VOID_PTR, BT_FN_VOID_PTR)
238
239DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_INT, BT_VOID, BT_PTR, BT_INT)
240DEF_FUNCTION_TYPE_2 (BT_FN_STRING_STRING_CONST_STRING,
241		     BT_STRING, BT_STRING, BT_CONST_STRING)
242DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_CONST_STRING,
243		     BT_INT, BT_CONST_STRING, BT_CONST_STRING)
244DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_CONST_STRING,
245		     BT_STRING, BT_CONST_STRING, BT_CONST_STRING)
246DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_STRING_CONST_STRING,
247		     BT_SIZE, BT_CONST_STRING, BT_CONST_STRING)
248DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_INT,
249		     BT_STRING, BT_CONST_STRING, BT_INT)
250DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_SIZE,
251		     BT_STRING, BT_CONST_STRING, BT_SIZE)
252DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_FILEPTR,
253		     BT_INT, BT_CONST_STRING, BT_FILEPTR)
254DEF_FUNCTION_TYPE_2 (BT_FN_INT_INT_FILEPTR,
255		     BT_INT, BT_INT, BT_FILEPTR)
256DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTRMODE_PTR,
257		     BT_VOID, BT_PTRMODE, BT_PTR)
258DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_PTRMODE,
259		     BT_VOID, BT_PTR, BT_PTRMODE)
260DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VALIST_REF_VALIST_ARG,
261		     BT_VOID, BT_VALIST_REF, BT_VALIST_ARG)
262DEF_FUNCTION_TYPE_2 (BT_FN_LONG_LONG_LONG,
263		     BT_LONG, BT_LONG, BT_LONG)
264DEF_FUNCTION_TYPE_2 (BT_FN_INT_PTR_CONST_STRING,
265		     BT_INT, BT_PTR, BT_CONST_STRING)
266DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_SIZE,
267		     BT_VOID, BT_PTR, BT_SIZE)
268DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOAT,
269		     BT_FLOAT, BT_FLOAT, BT_FLOAT)
270DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLE,
271		     BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
272DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
273		     BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
274DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOATPTR,
275		     BT_FLOAT, BT_FLOAT, BT_FLOAT_PTR)
276DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLEPTR,
277		     BT_DOUBLE, BT_DOUBLE, BT_DOUBLE_PTR)
278DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLEPTR,
279		     BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR)
280DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONGDOUBLE,
281		     BT_FLOAT, BT_FLOAT, BT_LONGDOUBLE)
282DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONGDOUBLE,
283		     BT_DOUBLE, BT_DOUBLE, BT_LONGDOUBLE)
284DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INT,
285		     BT_FLOAT, BT_FLOAT, BT_INT)
286DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INT,
287		     BT_DOUBLE, BT_DOUBLE, BT_INT)
288DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INT,
289		     BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT)
290DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INTPTR,
291		     BT_FLOAT, BT_FLOAT, BT_INT_PTR)
292DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INTPTR,
293		     BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
294DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR,
295		     BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
296DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_INT_FLOAT,
297		     BT_FLOAT, BT_INT, BT_FLOAT)
298DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_INT_DOUBLE,
299		     BT_DOUBLE, BT_INT, BT_DOUBLE)
300DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_INT_LONGDOUBLE,
301		     BT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
302DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONG,
303		     BT_FLOAT, BT_FLOAT, BT_LONG)
304DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONG,
305		     BT_DOUBLE, BT_DOUBLE, BT_LONG)
306DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONG,
307		     BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONG)
308DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_VALIST_ARG,
309		     BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
310DEF_FUNCTION_TYPE_2 (BT_FN_PTR_SIZE_SIZE,
311		     BT_PTR, BT_SIZE, BT_SIZE)
312DEF_FUNCTION_TYPE_2 (BT_FN_PTR_PTR_SIZE,
313		     BT_PTR, BT_PTR, BT_SIZE)
314DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT,
315		     BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
316DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
317		     BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
318DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE,
319		     BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
320DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_PTR, BT_VOID, BT_PTR, BT_PTR)
321DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
322		     BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING)
323DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_PTR_INT, BT_SIZE, BT_CONST_PTR, BT_INT)
324DEF_FUNCTION_TYPE_2 (BT_FN_I1_VPTR_I1, BT_I1, BT_VOLATILE_PTR, BT_I1)
325DEF_FUNCTION_TYPE_2 (BT_FN_I2_VPTR_I2, BT_I2, BT_VOLATILE_PTR, BT_I2)
326DEF_FUNCTION_TYPE_2 (BT_FN_I4_VPTR_I4, BT_I4, BT_VOLATILE_PTR, BT_I4)
327DEF_FUNCTION_TYPE_2 (BT_FN_I8_VPTR_I8, BT_I8, BT_VOLATILE_PTR, BT_I8)
328DEF_FUNCTION_TYPE_2 (BT_FN_I16_VPTR_I16, BT_I16, BT_VOLATILE_PTR, BT_I16)
329DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_LONGPTR_LONGPTR,
330		     BT_BOOL, BT_PTR_LONG, BT_PTR_LONG)
331DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
332		     BT_BOOL, BT_PTR_ULONGLONG, BT_PTR_ULONGLONG)
333DEF_FUNCTION_TYPE_2 (BT_FN_I1_CONST_VPTR_INT, BT_I1, BT_CONST_VOLATILE_PTR,
334		     BT_INT)
335DEF_FUNCTION_TYPE_2 (BT_FN_I2_CONST_VPTR_INT, BT_I2, BT_CONST_VOLATILE_PTR,
336		     BT_INT)
337DEF_FUNCTION_TYPE_2 (BT_FN_I4_CONST_VPTR_INT, BT_I4, BT_CONST_VOLATILE_PTR,
338		     BT_INT)
339DEF_FUNCTION_TYPE_2 (BT_FN_I8_CONST_VPTR_INT, BT_I8, BT_CONST_VOLATILE_PTR,
340		     BT_INT)
341DEF_FUNCTION_TYPE_2 (BT_FN_I16_CONST_VPTR_INT, BT_I16, BT_CONST_VOLATILE_PTR,
342		     BT_INT)
343DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_INT, BT_VOID, BT_VOLATILE_PTR, BT_INT)
344DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_VPTR_INT, BT_BOOL, BT_VOLATILE_PTR, BT_INT)
345DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_SIZE_CONST_VPTR, BT_BOOL, BT_SIZE,
346		     BT_CONST_VOLATILE_PTR)
347DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_INT_BOOL, BT_BOOL, BT_INT, BT_BOOL)
348DEF_FUNCTION_TYPE_2 (BT_FN_VOID_UINT_UINT, BT_VOID, BT_UINT, BT_UINT)
349DEF_FUNCTION_TYPE_2 (BT_FN_PTR_CONST_PTR_SIZE, BT_PTR, BT_CONST_PTR, BT_SIZE)
350DEF_FUNCTION_TYPE_2 (BT_FN_PTR_CONST_PTR_CONST_PTR, BT_PTR, BT_CONST_PTR, BT_CONST_PTR)
351DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTRPTR_CONST_PTR, BT_VOID, BT_PTR_PTR, BT_CONST_PTR)
352DEF_FUNCTION_TYPE_2 (BT_FN_VOID_CONST_PTR_SIZE, BT_VOID, BT_CONST_PTR, BT_SIZE)
353DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_BND, BT_VOID, BT_PTR, BT_BND)
354DEF_FUNCTION_TYPE_2 (BT_FN_CONST_PTR_CONST_PTR_CONST_PTR, BT_CONST_PTR, BT_CONST_PTR, BT_CONST_PTR)
355DEF_FUNCTION_TYPE_2 (BT_FN_BND_CONST_PTR_SIZE, BT_BND, BT_CONST_PTR, BT_SIZE)
356
357DEF_POINTER_TYPE (BT_PTR_FN_VOID_PTR_PTR, BT_FN_VOID_PTR_PTR)
358
359DEF_FUNCTION_TYPE_3 (BT_FN_STRING_STRING_CONST_STRING_SIZE,
360		     BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE)
361DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_SIZE,
362		     BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_SIZE)
363DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_CONST_PTR_SIZE,
364		     BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE)
365DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_CONST_PTR_SIZE,
366		     BT_VOID, BT_PTR, BT_CONST_PTR, BT_SIZE)
367DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_PTR_CONST_PTR_SIZE,
368		     BT_INT, BT_CONST_PTR, BT_CONST_PTR, BT_SIZE)
369DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_INT_SIZE,
370		     BT_PTR, BT_PTR, BT_INT, BT_SIZE)
371DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_INT_SIZE,
372		     BT_VOID, BT_PTR, BT_INT, BT_SIZE)
373DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_INT_INT,
374		     BT_VOID, BT_PTR, BT_INT, BT_INT)
375DEF_FUNCTION_TYPE_3 (BT_FN_VOID_CONST_PTR_PTR_SIZE,
376		     BT_VOID, BT_CONST_PTR, BT_PTR, BT_SIZE)
377DEF_FUNCTION_TYPE_3 (BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
378		     BT_INT, BT_STRING, BT_CONST_STRING, BT_VALIST_ARG)
379DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
380		     BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_VALIST_ARG)
381DEF_FUNCTION_TYPE_3 (BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
382		     BT_INT, BT_FILEPTR, BT_CONST_STRING, BT_VALIST_ARG)
383DEF_FUNCTION_TYPE_3 (BT_FN_INT_PTR_PTR_PTR,
384		     BT_INT, BT_PTR, BT_PTR, BT_PTR)
385DEF_FUNCTION_TYPE_3 (BT_FN_STRING_CONST_STRING_CONST_STRING_INT,
386		     BT_STRING, BT_CONST_STRING, BT_CONST_STRING, BT_INT)
387DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_FLOAT,
388		     BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_FLOAT)
389DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_DOUBLE,
390		     BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
391DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
392		     BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
393DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_INTPTR,
394		     BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_INT_PTR)
395DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR,
396		     BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
397DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR,
398		     BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
399DEF_FUNCTION_TYPE_3 (BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR,
400		     BT_VOID, BT_FLOAT, BT_FLOAT_PTR, BT_FLOAT_PTR)
401DEF_FUNCTION_TYPE_3 (BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR,
402		     BT_VOID, BT_DOUBLE, BT_DOUBLE_PTR, BT_DOUBLE_PTR)
403DEF_FUNCTION_TYPE_3 (BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR,
404		     BT_VOID, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR, BT_LONGDOUBLE_PTR)
405DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_PTR_PTR, BT_VOID, BT_PTR, BT_PTR, BT_PTR)
406DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING,
407		     BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING, BT_PTR_CONST_STRING)
408DEF_FUNCTION_TYPE_3 (BT_FN_INT_INT_CONST_STRING_VALIST_ARG,
409		     BT_INT, BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
410DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I1_I1, BT_BOOL, BT_VOLATILE_PTR,
411		     BT_I1, BT_I1)
412DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I2_I2, BT_BOOL, BT_VOLATILE_PTR,
413		     BT_I2, BT_I2)
414DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I4_I4, BT_BOOL, BT_VOLATILE_PTR,
415		     BT_I4, BT_I4)
416DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I8_I8, BT_BOOL, BT_VOLATILE_PTR,
417		     BT_I8, BT_I8)
418DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I16_I16, BT_BOOL, BT_VOLATILE_PTR,
419		     BT_I16, BT_I16)
420DEF_FUNCTION_TYPE_3 (BT_FN_I1_VPTR_I1_I1, BT_I1, BT_VOLATILE_PTR, BT_I1, BT_I1)
421DEF_FUNCTION_TYPE_3 (BT_FN_I2_VPTR_I2_I2, BT_I2, BT_VOLATILE_PTR, BT_I2, BT_I2)
422DEF_FUNCTION_TYPE_3 (BT_FN_I4_VPTR_I4_I4, BT_I4, BT_VOLATILE_PTR, BT_I4, BT_I4)
423DEF_FUNCTION_TYPE_3 (BT_FN_I8_VPTR_I8_I8, BT_I8, BT_VOLATILE_PTR, BT_I8, BT_I8)
424DEF_FUNCTION_TYPE_3 (BT_FN_I16_VPTR_I16_I16, BT_I16, BT_VOLATILE_PTR,
425		     BT_I16, BT_I16)
426DEF_FUNCTION_TYPE_3 (BT_FN_PTR_CONST_PTR_INT_SIZE, BT_PTR,
427		     BT_CONST_PTR, BT_INT, BT_SIZE)
428DEF_FUNCTION_TYPE_3 (BT_FN_I1_VPTR_I1_INT, BT_I1, BT_VOLATILE_PTR, BT_I1, BT_INT)
429DEF_FUNCTION_TYPE_3 (BT_FN_I2_VPTR_I2_INT, BT_I2, BT_VOLATILE_PTR, BT_I2, BT_INT)
430DEF_FUNCTION_TYPE_3 (BT_FN_I4_VPTR_I4_INT, BT_I4, BT_VOLATILE_PTR, BT_I4, BT_INT)
431DEF_FUNCTION_TYPE_3 (BT_FN_I8_VPTR_I8_INT, BT_I8, BT_VOLATILE_PTR, BT_I8, BT_INT)
432DEF_FUNCTION_TYPE_3 (BT_FN_I16_VPTR_I16_INT, BT_I16, BT_VOLATILE_PTR, BT_I16, BT_INT)
433DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I1_INT, BT_VOID, BT_VOLATILE_PTR, BT_I1, BT_INT)
434DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I2_INT, BT_VOID, BT_VOLATILE_PTR, BT_I2, BT_INT)
435DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I4_INT, BT_VOID, BT_VOLATILE_PTR, BT_I4, BT_INT)
436DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I8_INT, BT_VOID, BT_VOLATILE_PTR, BT_I8, BT_INT)
437DEF_FUNCTION_TYPE_3 (BT_FN_VOID_VPTR_I16_INT, BT_VOID, BT_VOLATILE_PTR, BT_I16, BT_INT)
438DEF_FUNCTION_TYPE_3 (BT_FN_INT_PTRPTR_SIZE_SIZE, BT_INT, BT_PTR_PTR, BT_SIZE, BT_SIZE)
439DEF_FUNCTION_TYPE_3 (BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE, BT_PTR, BT_CONST_PTR, BT_CONST_PTR, BT_SIZE)
440DEF_FUNCTION_TYPE_3 (BT_FN_VOID_CONST_PTR_BND_CONST_PTR, BT_VOID, BT_CONST_PTR, BT_BND, BT_CONST_PTR)
441DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_INT_INT_INTPTR, BT_BOOL, BT_INT, BT_INT,
442		     BT_INT_PTR)
443DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_LONG_LONG_LONGPTR, BT_BOOL, BT_LONG, BT_LONG,
444		     BT_PTR_LONG)
445DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_LONGLONG_LONGLONG_LONGLONGPTR, BT_BOOL,
446		     BT_LONGLONG, BT_LONGLONG, BT_PTR_LONGLONG)
447DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_UINT_UINT_UINTPTR, BT_BOOL, BT_UINT, BT_UINT,
448		     BT_PTR_UINT)
449DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_ULONG_ULONG_ULONGPTR, BT_BOOL, BT_ULONG,
450		     BT_ULONG, BT_PTR_ULONG)
451DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_ULONGLONG_ULONGLONG_ULONGLONGPTR, BT_BOOL,
452		     BT_ULONGLONG, BT_ULONGLONG, BT_PTR_ULONGLONG)
453
454DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
455		     BT_SIZE, BT_CONST_PTR, BT_SIZE, BT_SIZE, BT_FILEPTR)
456DEF_FUNCTION_TYPE_4 (BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
457		BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_VALIST_ARG)
458DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR,
459		BT_SIZE, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_CONST_PTR)
460DEF_FUNCTION_TYPE_4 (BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE,
461		     BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE, BT_SIZE)
462DEF_FUNCTION_TYPE_4 (BT_FN_PTR_PTR_INT_SIZE_SIZE,
463		     BT_PTR, BT_PTR, BT_INT, BT_SIZE, BT_SIZE)
464DEF_FUNCTION_TYPE_4 (BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE,
465		     BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE, BT_SIZE)
466DEF_FUNCTION_TYPE_4 (BT_FN_INT_FILEPTR_INT_CONST_STRING_VALIST_ARG,
467		     BT_INT, BT_FILEPTR, BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
468DEF_FUNCTION_TYPE_4 (BT_FN_VOID_OMPFN_PTR_UINT_UINT,
469		     BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT, BT_UINT)
470DEF_FUNCTION_TYPE_4 (BT_FN_VOID_PTR_WORD_WORD_PTR,
471		     BT_VOID, BT_PTR, BT_WORD, BT_WORD, BT_PTR)
472DEF_FUNCTION_TYPE_4 (BT_FN_VOID_SIZE_VPTR_PTR_INT, BT_VOID, BT_SIZE,
473		     BT_VOLATILE_PTR, BT_PTR, BT_INT)
474DEF_FUNCTION_TYPE_4 (BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT, BT_VOID, BT_SIZE,
475		     BT_CONST_VOLATILE_PTR, BT_PTR, BT_INT)
476DEF_FUNCTION_TYPE_4 (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
477		     BT_BOOL, BT_UINT, BT_PTR_LONG, BT_PTR_LONG, BT_PTR_LONG)
478DEF_FUNCTION_TYPE_4 (BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
479		     BT_BOOL, BT_UINT, BT_PTR_ULONGLONG, BT_PTR_ULONGLONG,
480		     BT_PTR_ULONGLONG)
481DEF_FUNCTION_TYPE_4 (BT_FN_VOID_UINT_PTR_INT_PTR, BT_VOID, BT_INT, BT_PTR,
482		     BT_INT, BT_PTR)
483
484DEF_FUNCTION_TYPE_5 (BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG,
485		     BT_INT, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING,
486		     BT_VALIST_ARG)
487DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
488		     BT_BOOL, BT_LONG, BT_LONG, BT_LONG,
489		     BT_PTR_LONG, BT_PTR_LONG)
490DEF_FUNCTION_TYPE_5 (BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT, BT_VOID, BT_SIZE,
491		     BT_VOLATILE_PTR, BT_PTR, BT_PTR, BT_INT)
492DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_VPTR_PTR_I1_INT_INT,
493		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I1, BT_INT, BT_INT)
494DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_VPTR_PTR_I2_INT_INT,
495		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I2, BT_INT, BT_INT)
496DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_VPTR_PTR_I4_INT_INT,
497		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I4, BT_INT, BT_INT)
498DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_VPTR_PTR_I8_INT_INT,
499		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I8, BT_INT, BT_INT)
500DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_VPTR_PTR_I16_INT_INT,
501		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I16, BT_INT, BT_INT)
502DEF_FUNCTION_TYPE_5 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR,
503		     BT_VOID, BT_INT, BT_SIZE, BT_PTR, BT_PTR, BT_PTR)
504DEF_FUNCTION_TYPE_5 (BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT,
505		     BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT, BT_UINT,
506		     BT_UINT)
507DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
508		     BT_BOOL, BT_UINT, BT_PTR_LONG, BT_LONG, BT_PTR_LONG,
509		     BT_PTR_LONG)
510DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
511		     BT_BOOL, BT_UINT, BT_PTR_ULONGLONG, BT_ULONGLONG,
512		     BT_PTR_ULONGLONG, BT_PTR_ULONGLONG)
513
514DEF_FUNCTION_TYPE_6 (BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG,
515		     BT_INT, BT_STRING, BT_SIZE, BT_INT, BT_SIZE,
516		     BT_CONST_STRING, BT_VALIST_ARG)
517DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
518		     BT_BOOL, BT_LONG, BT_LONG, BT_LONG, BT_LONG,
519		     BT_PTR_LONG, BT_PTR_LONG)
520DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
521		     BT_BOOL, BT_BOOL, BT_ULONGLONG, BT_ULONGLONG,
522		     BT_ULONGLONG, BT_PTR_ULONGLONG, BT_PTR_ULONGLONG)
523DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I1_BOOL_INT_INT,
524		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I1, BT_BOOL, BT_INT,
525		     BT_INT)
526DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I2_BOOL_INT_INT,
527		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I2, BT_BOOL, BT_INT,
528		     BT_INT)
529DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I4_BOOL_INT_INT,
530		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I4, BT_BOOL, BT_INT,
531		     BT_INT)
532DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I8_BOOL_INT_INT,
533		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I8, BT_BOOL, BT_INT,
534		     BT_INT)
535DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I16_BOOL_INT_INT,
536		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I16, BT_BOOL, BT_INT,
537		     BT_INT)
538DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_SIZE_VPTR_PTR_PTR_INT_INT, BT_BOOL, BT_SIZE,
539		     BT_VOLATILE_PTR, BT_PTR, BT_PTR, BT_INT, BT_INT)
540
541DEF_FUNCTION_TYPE_7 (BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
542		     BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT,
543		     BT_LONG, BT_LONG, BT_LONG, BT_UINT)
544DEF_FUNCTION_TYPE_7 (BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
545		     BT_BOOL, BT_BOOL, BT_ULONGLONG, BT_ULONGLONG,
546		     BT_ULONGLONG, BT_ULONGLONG,
547		     BT_PTR_ULONGLONG, BT_PTR_ULONGLONG)
548DEF_FUNCTION_TYPE_7 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
549		     BT_VOID, BT_INT, BT_SIZE, BT_PTR, BT_PTR, BT_PTR, BT_UINT,
550		     BT_PTR)
551
552DEF_FUNCTION_TYPE_8 (BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
553		     BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT,
554		     BT_LONG, BT_LONG, BT_LONG, BT_LONG, BT_UINT)
555
556DEF_FUNCTION_TYPE_9 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
557		     BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR,
558		     BT_PTR_FN_VOID_PTR_PTR, BT_LONG, BT_LONG,
559		     BT_BOOL, BT_UINT, BT_PTR, BT_INT)
560DEF_FUNCTION_TYPE_9 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR,
561		     BT_VOID, BT_INT, BT_PTR_FN_VOID_PTR, BT_SIZE, BT_PTR,
562		     BT_PTR, BT_PTR, BT_UINT, BT_PTR, BT_PTR)
563
564DEF_FUNCTION_TYPE_11 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
565		      BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR,
566		      BT_PTR_FN_VOID_PTR_PTR, BT_LONG, BT_LONG,
567		      BT_UINT, BT_LONG, BT_INT, BT_LONG, BT_LONG, BT_LONG)
568DEF_FUNCTION_TYPE_11 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
569		      BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR,
570		      BT_PTR_FN_VOID_PTR_PTR, BT_LONG, BT_LONG,
571		      BT_UINT, BT_LONG, BT_INT,
572		      BT_ULONGLONG, BT_ULONGLONG, BT_ULONGLONG)
573
574DEF_FUNCTION_TYPE_VAR_0 (BT_FN_VOID_VAR, BT_VOID)
575DEF_FUNCTION_TYPE_VAR_0 (BT_FN_INT_VAR, BT_INT)
576DEF_FUNCTION_TYPE_VAR_0 (BT_FN_PTR_VAR, BT_PTR)
577DEF_FUNCTION_TYPE_VAR_0 (BT_FN_BOOL_VAR, BT_BOOL)
578
579DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_VALIST_REF_VAR,
580			 BT_VOID, BT_VALIST_REF)
581DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_CONST_PTR_VAR,
582			 BT_VOID, BT_CONST_PTR)
583DEF_FUNCTION_TYPE_VAR_1 (BT_FN_INT_CONST_STRING_VAR,
584			 BT_INT, BT_CONST_STRING)
585DEF_FUNCTION_TYPE_VAR_1 (BT_FN_UINT32_UINT32_VAR,
586			 BT_UINT32, BT_UINT32)
587DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_LONG_VAR,
588			 BT_VOID, BT_LONG)
589DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_ULL_VAR,
590			 BT_VOID, BT_ULONGLONG)
591
592DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_FILEPTR_CONST_STRING_VAR,
593			 BT_INT, BT_FILEPTR, BT_CONST_STRING)
594DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_STRING_CONST_STRING_VAR,
595			 BT_INT, BT_STRING, BT_CONST_STRING)
596DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
597			 BT_INT, BT_CONST_STRING, BT_CONST_STRING)
598DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_INT_CONST_STRING_VAR,
599			 BT_INT, BT_INT, BT_CONST_STRING)
600DEF_FUNCTION_TYPE_VAR_2 (BT_FN_PTR_CONST_PTR_SIZE_VAR, BT_PTR,
601			 BT_CONST_PTR, BT_SIZE)
602DEF_FUNCTION_TYPE_VAR_2 (BT_FN_VOID_INT_INT_VAR, BT_VOID,
603			 BT_INT, BT_INT)
604
605DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_STRING_SIZE_CONST_STRING_VAR,
606			 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING)
607DEF_FUNCTION_TYPE_VAR_3 (BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR,
608			 BT_SSIZE, BT_STRING, BT_SIZE, BT_CONST_STRING)
609DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR,
610			 BT_INT, BT_FILEPTR, BT_INT, BT_CONST_STRING)
611
612DEF_FUNCTION_TYPE_VAR_4 (BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR,
613			 BT_INT, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING)
614
615DEF_FUNCTION_TYPE_VAR_5 (BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR,
616			 BT_INT, BT_STRING, BT_SIZE, BT_INT, BT_SIZE,
617			 BT_CONST_STRING)
618
619DEF_FUNCTION_TYPE_VAR_5 (BT_FN_INT_INT_INT_INT_INT_INT_VAR,
620			 BT_INT, BT_INT, BT_INT, BT_INT, BT_INT, BT_INT)
621
622DEF_FUNCTION_TYPE_VAR_6 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_VAR,
623			 BT_VOID, BT_INT, BT_PTR_FN_VOID_PTR, BT_SIZE,
624			 BT_PTR, BT_PTR, BT_PTR)
625
626DEF_FUNCTION_TYPE_VAR_7 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR,
627			 BT_VOID, BT_INT, BT_SIZE, BT_PTR, BT_PTR,
628			 BT_PTR, BT_INT, BT_INT)
629
630DEF_POINTER_TYPE (BT_PTR_FN_VOID_VAR, BT_FN_VOID_VAR)
631DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE,
632		     BT_PTR, BT_PTR_FN_VOID_VAR, BT_PTR, BT_SIZE)
633
634
635DEF_FUNCTION_TYPE_1 (BT_FN_I1_VPTR, BT_I1, BT_VOLATILE_PTR)
636DEF_FUNCTION_TYPE_1 (BT_FN_I2_VPTR, BT_I2, BT_VOLATILE_PTR)
637DEF_FUNCTION_TYPE_1 (BT_FN_I4_VPTR, BT_I4, BT_VOLATILE_PTR)
638DEF_FUNCTION_TYPE_1 (BT_FN_I8_VPTR, BT_I8, BT_VOLATILE_PTR)
639DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_VPTR, BT_FLOAT, BT_VOLATILE_PTR)
640DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_CONST_DOUBLE_PTR, BT_DOUBLE, BT_DOUBLE_PTR)
641DEF_FUNCTION_TYPE_1 (BT_FN_LDOUBLE_VPTR, BT_LONGDOUBLE, BT_VOLATILE_PTR)
642
643DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_I1, BT_VOID, BT_VOLATILE_PTR, BT_I1)
644DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_I2, BT_VOID, BT_VOLATILE_PTR, BT_I2)
645DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_I4, BT_VOID, BT_VOLATILE_PTR, BT_I4)
646DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_I8, BT_VOID, BT_VOLATILE_PTR, BT_I8)
647DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_FLOAT, BT_VOID, BT_VOLATILE_PTR, BT_FLOAT)
648DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_DOUBLE, BT_VOID,
649		     BT_VOLATILE_PTR, BT_DOUBLE)
650DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_LDOUBLE, BT_VOID,
651		     BT_VOLATILE_PTR, BT_LONGDOUBLE)
652DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_SIZE, BT_VOID,
653		     BT_VOLATILE_PTR, BT_SIZE)
654