1/* Copyright (C) 2001-2015 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)
476
477DEF_FUNCTION_TYPE_5 (BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG,
478		     BT_INT, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING,
479		     BT_VALIST_ARG)
480DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
481		     BT_BOOL, BT_LONG, BT_LONG, BT_LONG,
482		     BT_PTR_LONG, BT_PTR_LONG)
483DEF_FUNCTION_TYPE_5 (BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT, BT_VOID, BT_SIZE,
484		     BT_VOLATILE_PTR, BT_PTR, BT_PTR, BT_INT)
485DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_VPTR_PTR_I1_INT_INT,
486		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I1, BT_INT, BT_INT)
487DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_VPTR_PTR_I2_INT_INT,
488		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I2, BT_INT, BT_INT)
489DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_VPTR_PTR_I4_INT_INT,
490		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I4, BT_INT, BT_INT)
491DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_VPTR_PTR_I8_INT_INT,
492		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I8, BT_INT, BT_INT)
493DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_VPTR_PTR_I16_INT_INT,
494		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I16, BT_INT, BT_INT)
495DEF_FUNCTION_TYPE_5 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR,
496		     BT_VOID, BT_INT, BT_SIZE, BT_PTR, BT_PTR, BT_PTR)
497DEF_FUNCTION_TYPE_5 (BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT,
498		     BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT, BT_UINT,
499		     BT_UINT)
500
501DEF_FUNCTION_TYPE_6 (BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG,
502		     BT_INT, BT_STRING, BT_SIZE, BT_INT, BT_SIZE,
503		     BT_CONST_STRING, BT_VALIST_ARG)
504DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
505		     BT_BOOL, BT_LONG, BT_LONG, BT_LONG, BT_LONG,
506		     BT_PTR_LONG, BT_PTR_LONG)
507DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
508		     BT_BOOL, BT_BOOL, BT_ULONGLONG, BT_ULONGLONG,
509		     BT_ULONGLONG, BT_PTR_ULONGLONG, BT_PTR_ULONGLONG)
510DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I1_BOOL_INT_INT, 
511		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I1, BT_BOOL, BT_INT,
512		     BT_INT)
513DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I2_BOOL_INT_INT, 
514		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I2, BT_BOOL, BT_INT,
515		     BT_INT)
516DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I4_BOOL_INT_INT, 
517		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I4, BT_BOOL, BT_INT,
518		     BT_INT)
519DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I8_BOOL_INT_INT, 
520		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I8, BT_BOOL, BT_INT,
521		     BT_INT)
522DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_VPTR_PTR_I16_BOOL_INT_INT, 
523		     BT_BOOL, BT_VOLATILE_PTR, BT_PTR, BT_I16, BT_BOOL, BT_INT,
524		     BT_INT)
525DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_SIZE_VPTR_PTR_PTR_INT_INT, BT_BOOL, BT_SIZE,
526		     BT_VOLATILE_PTR, BT_PTR, BT_PTR, BT_INT, BT_INT)
527DEF_FUNCTION_TYPE_6 (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
528		     BT_VOID, BT_INT, BT_PTR, BT_SIZE, BT_PTR, BT_PTR, BT_PTR)
529
530DEF_FUNCTION_TYPE_7 (BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
531		     BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT,
532		     BT_LONG, BT_LONG, BT_LONG, BT_UINT)
533DEF_FUNCTION_TYPE_7 (BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
534		     BT_BOOL, BT_BOOL, BT_ULONGLONG, BT_ULONGLONG,
535		     BT_ULONGLONG, BT_ULONGLONG,
536		     BT_PTR_ULONGLONG, BT_PTR_ULONGLONG)
537DEF_FUNCTION_TYPE_7 (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
538		     BT_VOID, BT_INT, BT_PTR_FN_VOID_PTR, BT_PTR, BT_SIZE,
539		     BT_PTR, BT_PTR, BT_PTR)
540
541DEF_FUNCTION_TYPE_8 (BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
542		     BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT,
543		     BT_LONG, BT_LONG, BT_LONG, BT_LONG, BT_UINT)
544DEF_FUNCTION_TYPE_8 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR,
545		     BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR,
546		     BT_PTR_FN_VOID_PTR_PTR, BT_LONG, BT_LONG,
547		     BT_BOOL, BT_UINT, BT_PTR)
548
549DEF_FUNCTION_TYPE_VAR_0 (BT_FN_VOID_VAR, BT_VOID)
550DEF_FUNCTION_TYPE_VAR_0 (BT_FN_INT_VAR, BT_INT)
551DEF_FUNCTION_TYPE_VAR_0 (BT_FN_PTR_VAR, BT_PTR)
552DEF_FUNCTION_TYPE_VAR_0 (BT_FN_BOOL_VAR, BT_BOOL)
553
554DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_VALIST_REF_VAR,
555			 BT_VOID, BT_VALIST_REF)
556DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_CONST_PTR_VAR,
557			 BT_VOID, BT_CONST_PTR)
558DEF_FUNCTION_TYPE_VAR_1 (BT_FN_INT_CONST_STRING_VAR,
559			 BT_INT, BT_CONST_STRING)
560DEF_FUNCTION_TYPE_VAR_1 (BT_FN_UINT32_UINT32_VAR,
561			 BT_UINT32, BT_UINT32)
562
563DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_FILEPTR_CONST_STRING_VAR,
564			 BT_INT, BT_FILEPTR, BT_CONST_STRING)
565DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_STRING_CONST_STRING_VAR,
566			 BT_INT, BT_STRING, BT_CONST_STRING)
567DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
568			 BT_INT, BT_CONST_STRING, BT_CONST_STRING)
569DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_INT_CONST_STRING_VAR,
570			 BT_INT, BT_INT, BT_CONST_STRING)
571DEF_FUNCTION_TYPE_VAR_2 (BT_FN_PTR_CONST_PTR_SIZE_VAR, BT_PTR,
572			 BT_CONST_PTR, BT_SIZE)
573DEF_FUNCTION_TYPE_VAR_2 (BT_FN_VOID_INT_INT_VAR, BT_VOID,
574			 BT_INT, BT_INT)
575
576DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_STRING_SIZE_CONST_STRING_VAR,
577			 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING)
578DEF_FUNCTION_TYPE_VAR_3 (BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR,
579			 BT_SSIZE, BT_STRING, BT_SIZE, BT_CONST_STRING)
580DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR,
581			 BT_INT, BT_FILEPTR, BT_INT, BT_CONST_STRING)
582
583DEF_FUNCTION_TYPE_VAR_4 (BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR,
584			 BT_INT, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING)
585
586DEF_FUNCTION_TYPE_VAR_5 (BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR,
587			 BT_INT, BT_STRING, BT_SIZE, BT_INT, BT_SIZE,
588			 BT_CONST_STRING)
589
590DEF_FUNCTION_TYPE_VAR_5 (BT_FN_INT_INT_INT_INT_INT_INT_VAR,
591			 BT_INT, BT_INT, BT_INT, BT_INT, BT_INT, BT_INT)
592
593DEF_FUNCTION_TYPE_VAR_7 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR,
594			 BT_VOID, BT_INT, BT_SIZE, BT_PTR, BT_PTR,
595			 BT_PTR, BT_INT, BT_INT)
596
597DEF_FUNCTION_TYPE_VAR_11 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR,
598			  BT_VOID, BT_INT, BT_PTR_FN_VOID_PTR, BT_SIZE,
599			  BT_PTR, BT_PTR, BT_PTR, BT_INT, BT_INT, BT_INT,
600			  BT_INT, BT_INT)
601
602DEF_POINTER_TYPE (BT_PTR_FN_VOID_VAR, BT_FN_VOID_VAR)
603DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE,
604		     BT_PTR, BT_PTR_FN_VOID_VAR, BT_PTR, BT_SIZE)
605
606
607DEF_FUNCTION_TYPE_1 (BT_FN_I1_VPTR, BT_I1, BT_VOLATILE_PTR)
608DEF_FUNCTION_TYPE_1 (BT_FN_I2_VPTR, BT_I2, BT_VOLATILE_PTR)
609DEF_FUNCTION_TYPE_1 (BT_FN_I4_VPTR, BT_I4, BT_VOLATILE_PTR)
610DEF_FUNCTION_TYPE_1 (BT_FN_I8_VPTR, BT_I8, BT_VOLATILE_PTR)
611DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_VPTR, BT_FLOAT, BT_VOLATILE_PTR)
612DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_CONST_DOUBLE_PTR, BT_DOUBLE, BT_DOUBLE_PTR)
613DEF_FUNCTION_TYPE_1 (BT_FN_LDOUBLE_VPTR, BT_LONGDOUBLE, BT_VOLATILE_PTR)
614
615DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_I1, BT_VOID, BT_VOLATILE_PTR, BT_I1)
616DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_I2, BT_VOID, BT_VOLATILE_PTR, BT_I2)
617DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_I4, BT_VOID, BT_VOLATILE_PTR, BT_I4)
618DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_I8, BT_VOID, BT_VOLATILE_PTR, BT_I8)
619DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_FLOAT, BT_VOID, BT_VOLATILE_PTR, BT_FLOAT)
620DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_DOUBLE, BT_VOID,
621		     BT_VOLATILE_PTR, BT_DOUBLE)
622DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_LDOUBLE, BT_VOID,
623		     BT_VOLATILE_PTR, BT_LONGDOUBLE)
624DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VPTR_SIZE, BT_VOID,
625		     BT_VOLATILE_PTR, BT_SIZE)
626