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