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