]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/builtin-types.def
gcc/
[thirdparty/gcc.git] / gcc / builtin-types.def
CommitLineData
2551f8e0 1/* Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
2 Free Software Foundation, Inc.
d2d4bdde 3
f12b58b3 4This file is part of GCC.
d2d4bdde 5
f12b58b3 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 2, or (at your option) any later
9version.
d2d4bdde 10
f12b58b3 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.
d2d4bdde 15
16You should have received a copy of the GNU General Public License
f12b58b3 17along with GCC; see the file COPYING. If not, write to the Free
67ce556b 18Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
1902110-1301, USA. */
d2d4bdde 20
3f7df443 21/* This header provides a declarative way of describing the types that
d2d4bdde 22 are used when declaring builtin functions.
23
24 Before including this header, you must define the following macros:
25
26 DEF_PRIMITIVE_TYPE (ENUM, TYPE)
27
28 The ENUM is an identifier indicating which type is being defined.
29 TYPE is an expression for a `tree' that represents the type.
30
31 DEF_FUNCTION_TYPE_0 (ENUM, RETURN)
32 DEF_FUNCTION_TYPE_1 (ENUM, RETURN, ARG1)
33 DEF_FUNCTION_TYPE_2 (ENUM, RETURN, ARG1, ARG2)
34 DEF_FUNCTION_TYPE_3 (ENUM, RETURN, ARG1, ARG2, ARG3)
35 DEF_FUNCTION_TYPE_4 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4)
0a39fd54 36 DEF_FUNCTION_TYPE_5 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5)
1e8e9920 37 DEF_FUNCTION_TYPE_6 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6)
38 DEF_FUNCTION_TYPE_7 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7)
d2d4bdde 39
40 These macros describe function types. ENUM is as above. The
41 RETURN type is one of the enumerals already defined. ARG1, ARG2,
42 and ARG3 give the types of the arguments, similarly.
43
44 DEF_FUNCTION_TYPE_VAR_0 (ENUM, RETURN)
45 DEF_FUNCTION_TYPE_VAR_1 (ENUM, RETURN, ARG1)
46 DEF_FUNCTION_TYPE_VAR_2 (ENUM, RETURN, ARG1, ARG2)
03901330 47 DEF_FUNCTION_TYPE_VAR_3 (ENUM, RETURN, ARG1, ARG2, ARG3)
0a39fd54 48 DEF_FUNCTION_TYPE_VAR_4 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4)
1e8e9920 49 DEF_FUNCTION_TYPE_VAR_4 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5)
d2d4bdde 50
51 Similar, but for function types that take variable arguments.
52 For example:
53
54 DEF_FUNCTION_TYPE_1 (BT_INT_DOUBLE, BT_INT, BT_DOUBLE)
55
56 describes the type `int ()(double)', using the enumeral
57 BT_INT_DOUBLE, whereas:
58
59 DEF_FUNCTION_TYPE_VAR_1 (BT_INT_DOUBLE_VAR, BT_INT, BT_DOUBLE)
60
61 describes the type `int ()(double, ...)'.
a0c938f0 62
d2d4bdde 63 DEF_POINTER_TYPE (ENUM, TYPE)
64
65 This macro describes a pointer type. ENUM is as above; TYPE is
66 the type pointed to. */
67
68DEF_PRIMITIVE_TYPE (BT_VOID, void_type_node)
b6a5fc45 69DEF_PRIMITIVE_TYPE (BT_BOOL, boolean_type_node)
d2d4bdde 70DEF_PRIMITIVE_TYPE (BT_INT, integer_type_node)
5053259b 71DEF_PRIMITIVE_TYPE (BT_UINT, unsigned_type_node)
d2d4bdde 72DEF_PRIMITIVE_TYPE (BT_LONG, long_integer_type_node)
5053259b 73DEF_PRIMITIVE_TYPE (BT_ULONG, long_unsigned_type_node)
d2d4bdde 74DEF_PRIMITIVE_TYPE (BT_LONGLONG, long_long_integer_type_node)
5053259b 75DEF_PRIMITIVE_TYPE (BT_ULONGLONG, long_long_unsigned_type_node)
76DEF_PRIMITIVE_TYPE (BT_INTMAX, intmax_type_node)
77DEF_PRIMITIVE_TYPE (BT_UINTMAX, uintmax_type_node)
2551f8e0 78DEF_PRIMITIVE_TYPE (BT_WORD, (*lang_hooks.types.type_for_mode) (word_mode, 1))
d2d4bdde 79DEF_PRIMITIVE_TYPE (BT_FLOAT, float_type_node)
d2d4bdde 80DEF_PRIMITIVE_TYPE (BT_DOUBLE, double_type_node)
00eb5190 81DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE, long_double_type_node)
d2d4bdde 82DEF_PRIMITIVE_TYPE (BT_COMPLEX_FLOAT, complex_float_type_node)
83DEF_PRIMITIVE_TYPE (BT_COMPLEX_DOUBLE, complex_double_type_node)
00eb5190 84DEF_PRIMITIVE_TYPE (BT_COMPLEX_LONGDOUBLE, complex_long_double_type_node)
d2d4bdde 85
86DEF_PRIMITIVE_TYPE (BT_PTR, ptr_type_node)
e256d445 87DEF_PRIMITIVE_TYPE (BT_FILEPTR, fileptr_type_node)
d2d4bdde 88DEF_PRIMITIVE_TYPE (BT_CONST_PTR, const_ptr_type_node)
b6a5fc45 89DEF_PRIMITIVE_TYPE (BT_VOLATILE_PTR,
90 build_pointer_type
91 (build_qualified_type (void_type_node,
92 TYPE_QUAL_VOLATILE)))
771d21fa 93DEF_PRIMITIVE_TYPE (BT_PTRMODE, (*lang_hooks.types.type_for_mode)(ptr_mode, 0))
4070bd43 94DEF_PRIMITIVE_TYPE (BT_INT_PTR, integer_ptr_type_node)
95DEF_PRIMITIVE_TYPE (BT_FLOAT_PTR, float_ptr_type_node)
96DEF_PRIMITIVE_TYPE (BT_DOUBLE_PTR, double_ptr_type_node)
97DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE_PTR, long_double_ptr_type_node)
73673831 98DEF_PRIMITIVE_TYPE (BT_PID, pid_type_node)
654ef926 99DEF_PRIMITIVE_TYPE (BT_SIZE, size_type_node)
b9b15671 100DEF_PRIMITIVE_TYPE (BT_SSIZE, signed_size_type_node)
4617d9b5 101DEF_PRIMITIVE_TYPE (BT_WINT, wint_type_node)
d2d4bdde 102DEF_PRIMITIVE_TYPE (BT_STRING, string_type_node)
103DEF_PRIMITIVE_TYPE (BT_CONST_STRING, const_string_type_node)
d2d4bdde 104
c4503c0a 105DEF_PRIMITIVE_TYPE (BT_DFLOAT32, dfloat32_type_node)
106DEF_PRIMITIVE_TYPE (BT_DFLOAT64, dfloat64_type_node)
107DEF_PRIMITIVE_TYPE (BT_DFLOAT128, dfloat128_type_node)
108DEF_PRIMITIVE_TYPE (BT_DFLOAT32_PTR, dfloat32_ptr_type_node)
109DEF_PRIMITIVE_TYPE (BT_DFLOAT64_PTR, dfloat64_ptr_type_node)
110DEF_PRIMITIVE_TYPE (BT_DFLOAT128_PTR, dfloat128_ptr_type_node)
111
d2d4bdde 112DEF_PRIMITIVE_TYPE (BT_VALIST_REF, va_list_ref_type_node)
113DEF_PRIMITIVE_TYPE (BT_VALIST_ARG, va_list_arg_type_node)
114
b6a5fc45 115DEF_PRIMITIVE_TYPE (BT_I1, builtin_type_for_size (BITS_PER_UNIT*1, 1))
116DEF_PRIMITIVE_TYPE (BT_I2, builtin_type_for_size (BITS_PER_UNIT*2, 1))
117DEF_PRIMITIVE_TYPE (BT_I4, builtin_type_for_size (BITS_PER_UNIT*4, 1))
118DEF_PRIMITIVE_TYPE (BT_I8, builtin_type_for_size (BITS_PER_UNIT*8, 1))
27213ba3 119DEF_PRIMITIVE_TYPE (BT_I16, builtin_type_for_size (BITS_PER_UNIT*16, 1))
b6a5fc45 120
73673831 121DEF_POINTER_TYPE (BT_PTR_CONST_STRING, BT_CONST_STRING)
1e8e9920 122DEF_POINTER_TYPE (BT_PTR_LONG, BT_LONG)
123DEF_POINTER_TYPE (BT_PTR_PTR, BT_PTR)
73673831 124
d2d4bdde 125DEF_FUNCTION_TYPE_0 (BT_FN_VOID, BT_VOID)
1e8e9920 126DEF_FUNCTION_TYPE_0 (BT_FN_BOOL, BT_BOOL)
d2d4bdde 127DEF_FUNCTION_TYPE_0 (BT_FN_PTR, BT_PTR)
73673831 128DEF_FUNCTION_TYPE_0 (BT_FN_PID, BT_PID)
1e8e9920 129DEF_FUNCTION_TYPE_0 (BT_FN_INT, BT_INT)
5053259b 130DEF_FUNCTION_TYPE_0 (BT_FN_UINT, BT_UINT)
92c43e3c 131DEF_FUNCTION_TYPE_0 (BT_FN_FLOAT, BT_FLOAT)
132DEF_FUNCTION_TYPE_0 (BT_FN_DOUBLE, BT_DOUBLE)
00eb5190 133/* For "long double" we use LONGDOUBLE (not LONG_DOUBLE) to
134 distinguish it from two types in sequence, "long" followed by
135 "double". */
136DEF_FUNCTION_TYPE_0 (BT_FN_LONGDOUBLE, BT_LONGDOUBLE)
c4503c0a 137DEF_FUNCTION_TYPE_0 (BT_FN_DFLOAT32, BT_DFLOAT32)
138DEF_FUNCTION_TYPE_0 (BT_FN_DFLOAT64, BT_DFLOAT64)
139DEF_FUNCTION_TYPE_0 (BT_FN_DFLOAT128, BT_DFLOAT128)
d2d4bdde 140
141DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONG, BT_LONG, BT_LONG)
142DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGLONG, BT_LONGLONG, BT_LONGLONG)
143DEF_FUNCTION_TYPE_1 (BT_FN_INTMAX_INTMAX, BT_INTMAX, BT_INTMAX)
144DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_FLOAT, BT_FLOAT, BT_FLOAT)
145DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_DOUBLE, BT_DOUBLE, BT_DOUBLE)
a0c938f0 146DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_LONGDOUBLE,
147 BT_LONGDOUBLE, BT_LONGDOUBLE)
148DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT,
d2d4bdde 149 BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
a0c938f0 150DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
d2d4bdde 151 BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
a0c938f0 152DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE,
153 BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
154DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_COMPLEX_FLOAT,
155 BT_FLOAT, BT_COMPLEX_FLOAT)
d2d4bdde 156DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_COMPLEX_DOUBLE,
a0c938f0 157 BT_DOUBLE, BT_COMPLEX_DOUBLE)
00eb5190 158DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_COMPLEX_LONGDOUBLE,
a0c938f0 159 BT_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
5053259b 160DEF_FUNCTION_TYPE_1 (BT_FN_PTR_UINT, BT_PTR, BT_UINT)
d2d4bdde 161DEF_FUNCTION_TYPE_1 (BT_FN_PTR_SIZE, BT_PTR, BT_SIZE)
162DEF_FUNCTION_TYPE_1 (BT_FN_INT_INT, BT_INT, BT_INT)
5053259b 163DEF_FUNCTION_TYPE_1 (BT_FN_INT_UINT, BT_INT, BT_UINT)
6a08d0ab 164DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONG, BT_INT, BT_LONG)
5053259b 165DEF_FUNCTION_TYPE_1 (BT_FN_INT_ULONG, BT_INT, BT_ULONG)
6a08d0ab 166DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGLONG, BT_INT, BT_LONGLONG)
5053259b 167DEF_FUNCTION_TYPE_1 (BT_FN_INT_ULONGLONG, BT_INT, BT_ULONGLONG)
168DEF_FUNCTION_TYPE_1 (BT_FN_INT_INTMAX, BT_INT, BT_INTMAX)
169DEF_FUNCTION_TYPE_1 (BT_FN_INT_UINTMAX, BT_INT, BT_UINTMAX)
d2d4bdde 170DEF_FUNCTION_TYPE_1 (BT_FN_INT_PTR, BT_INT, BT_PTR)
e88e2794 171DEF_FUNCTION_TYPE_1 (BT_FN_INT_FLOAT, BT_INT, BT_FLOAT)
172DEF_FUNCTION_TYPE_1 (BT_FN_INT_DOUBLE, BT_INT, BT_DOUBLE)
173DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
c4503c0a 174DEF_FUNCTION_TYPE_1 (BT_FN_INT_DFLOAT32, BT_INT, BT_DFLOAT32)
175DEF_FUNCTION_TYPE_1 (BT_FN_INT_DFLOAT64, BT_INT, BT_DFLOAT64)
176DEF_FUNCTION_TYPE_1 (BT_FN_INT_DFLOAT128, BT_INT, BT_DFLOAT128)
e88e2794 177DEF_FUNCTION_TYPE_1 (BT_FN_LONG_FLOAT, BT_LONG, BT_FLOAT)
178DEF_FUNCTION_TYPE_1 (BT_FN_LONG_DOUBLE, BT_LONG, BT_DOUBLE)
179DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONGDOUBLE, BT_LONG, BT_LONGDOUBLE)
180DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_FLOAT, BT_LONGLONG, BT_FLOAT)
181DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_DOUBLE, BT_LONGLONG, BT_DOUBLE)
182DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGDOUBLE, BT_LONGLONG, BT_LONGDOUBLE)
d2d4bdde 183DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTR, BT_VOID, BT_PTR)
455730ef 184DEF_FUNCTION_TYPE_1 (BT_FN_SIZE_CONST_STRING, BT_SIZE, BT_CONST_STRING)
d2d4bdde 185DEF_FUNCTION_TYPE_1 (BT_FN_INT_CONST_STRING, BT_INT, BT_CONST_STRING)
186DEF_FUNCTION_TYPE_1 (BT_FN_PTR_PTR, BT_PTR, BT_PTR)
187DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VALIST_REF, BT_VOID, BT_VALIST_REF)
188DEF_FUNCTION_TYPE_1 (BT_FN_VOID_INT, BT_VOID, BT_INT)
b0db7939 189DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_CONST_STRING, BT_FLOAT, BT_CONST_STRING)
190DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_CONST_STRING, BT_DOUBLE, BT_CONST_STRING)
00eb5190 191DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_CONST_STRING,
192 BT_LONGDOUBLE, BT_CONST_STRING)
c4503c0a 193DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT32_CONST_STRING, BT_DFLOAT32, BT_CONST_STRING)
194DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT64_CONST_STRING, BT_DFLOAT64, BT_CONST_STRING)
195DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT128_CONST_STRING,
196 BT_DFLOAT128, BT_CONST_STRING)
32ef1cd2 197DEF_FUNCTION_TYPE_1 (BT_FN_STRING_CONST_STRING, BT_STRING, BT_CONST_STRING)
26093bf4 198DEF_FUNCTION_TYPE_1 (BT_FN_WORD_PTR, BT_WORD, BT_PTR)
4617d9b5 199DEF_FUNCTION_TYPE_1 (BT_FN_INT_WINT, BT_INT, BT_WINT)
200DEF_FUNCTION_TYPE_1 (BT_FN_WINT_WINT, BT_WINT, BT_WINT)
c4503c0a 201DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT32_DFLOAT32, BT_DFLOAT32, BT_DFLOAT32)
202DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT64_DFLOAT64, BT_DFLOAT64, BT_DFLOAT64)
203DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT128_DFLOAT128, BT_DFLOAT128, BT_DFLOAT128)
b6a5fc45 204DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VPTR, BT_VOID, BT_VOLATILE_PTR)
1e8e9920 205DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTRPTR, BT_VOID, BT_PTR_PTR)
206DEF_FUNCTION_TYPE_1 (BT_FN_UINT_UINT, BT_UINT, BT_UINT)
207
208DEF_POINTER_TYPE (BT_PTR_FN_VOID_PTR, BT_FN_VOID_PTR)
d2d4bdde 209
210DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_INT, BT_VOID, BT_PTR, BT_INT)
a0c938f0 211DEF_FUNCTION_TYPE_2 (BT_FN_STRING_STRING_CONST_STRING,
212 BT_STRING, BT_STRING, BT_CONST_STRING)
d2d4bdde 213DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_CONST_STRING,
a0c938f0 214 BT_INT, BT_CONST_STRING, BT_CONST_STRING)
d2d4bdde 215DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_CONST_STRING,
216 BT_STRING, BT_CONST_STRING, BT_CONST_STRING)
217DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_STRING_CONST_STRING,
a0c938f0 218 BT_SIZE, BT_CONST_STRING, BT_CONST_STRING)
d2d4bdde 219DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_INT,
a0c938f0 220 BT_STRING, BT_CONST_STRING, BT_INT)
7e50d406 221DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_SIZE,
a0c938f0 222 BT_STRING, BT_CONST_STRING, BT_SIZE)
e256d445 223DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_FILEPTR,
224 BT_INT, BT_CONST_STRING, BT_FILEPTR)
225DEF_FUNCTION_TYPE_2 (BT_FN_INT_INT_FILEPTR,
226 BT_INT, BT_INT, BT_FILEPTR)
d2d4bdde 227DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTRMODE_PTR,
228 BT_VOID, BT_PTRMODE, BT_PTR)
a0c938f0 229DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VALIST_REF_VALIST_ARG,
d2d4bdde 230 BT_VOID, BT_VALIST_REF, BT_VALIST_ARG)
231DEF_FUNCTION_TYPE_2 (BT_FN_LONG_LONG_LONG,
232 BT_LONG, BT_LONG, BT_LONG)
233DEF_FUNCTION_TYPE_2 (BT_FN_INT_PTR_CONST_STRING,
234 BT_INT, BT_PTR, BT_CONST_STRING)
455730ef 235DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_SIZE,
236 BT_VOID, BT_PTR, BT_SIZE)
fa426235 237DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOAT,
238 BT_FLOAT, BT_FLOAT, BT_FLOAT)
239DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLE,
240 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
00eb5190 241DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
242 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
4070bd43 243DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOATPTR,
244 BT_FLOAT, BT_FLOAT, BT_FLOAT_PTR)
245DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLEPTR,
246 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE_PTR)
247DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLEPTR,
248 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR)
e88e2794 249DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONGDOUBLE,
250 BT_FLOAT, BT_FLOAT, BT_LONGDOUBLE)
251DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONGDOUBLE,
252 BT_DOUBLE, BT_DOUBLE, BT_LONGDOUBLE)
253DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INT,
254 BT_FLOAT, BT_FLOAT, BT_INT)
255DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INT,
256 BT_DOUBLE, BT_DOUBLE, BT_INT)
257DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INT,
258 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT)
4070bd43 259DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INTPTR,
260 BT_FLOAT, BT_FLOAT, BT_INT_PTR)
261DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INTPTR,
262 BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
263DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR,
264 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
847749e5 265DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_INT_FLOAT,
266 BT_FLOAT, BT_INT, BT_FLOAT)
267DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_INT_DOUBLE,
268 BT_DOUBLE, BT_INT, BT_DOUBLE)
269DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_INT_LONGDOUBLE,
270 BT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
e88e2794 271DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONG,
272 BT_FLOAT, BT_FLOAT, BT_LONG)
273DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONG,
274 BT_DOUBLE, BT_DOUBLE, BT_LONG)
275DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONG,
276 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONG)
03901330 277DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_VALIST_ARG,
278 BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
32ef1cd2 279DEF_FUNCTION_TYPE_2 (BT_FN_PTR_SIZE_SIZE,
280 BT_PTR, BT_SIZE, BT_SIZE)
a0c938f0 281DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT,
61b922e7 282 BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
a0c938f0 283DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
61b922e7 284 BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
a0c938f0 285DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE,
286 BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
4ee9c684 287DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_PTR, BT_VOID, BT_PTR, BT_PTR)
73673831 288DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
289 BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING)
0a39fd54 290DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_PTR_INT, BT_SIZE, BT_CONST_PTR, BT_INT)
b6a5fc45 291DEF_FUNCTION_TYPE_2 (BT_FN_I1_VPTR_I1, BT_I1, BT_VOLATILE_PTR, BT_I1)
292DEF_FUNCTION_TYPE_2 (BT_FN_I2_VPTR_I2, BT_I2, BT_VOLATILE_PTR, BT_I2)
293DEF_FUNCTION_TYPE_2 (BT_FN_I4_VPTR_I4, BT_I4, BT_VOLATILE_PTR, BT_I4)
294DEF_FUNCTION_TYPE_2 (BT_FN_I8_VPTR_I8, BT_I8, BT_VOLATILE_PTR, BT_I8)
27213ba3 295DEF_FUNCTION_TYPE_2 (BT_FN_I16_VPTR_I16, BT_I16, BT_VOLATILE_PTR, BT_I16)
1e8e9920 296DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_LONGPTR_LONGPTR,
297 BT_BOOL, BT_PTR_LONG, BT_PTR_LONG)
d2d4bdde 298
299DEF_FUNCTION_TYPE_3 (BT_FN_STRING_STRING_CONST_STRING_SIZE,
300 BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE)
301DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_SIZE,
302 BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_SIZE)
455730ef 303DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_CONST_PTR_SIZE,
304 BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE)
d2d4bdde 305DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_PTR_CONST_PTR_SIZE,
a0c938f0 306 BT_INT, BT_CONST_PTR, BT_CONST_PTR, BT_SIZE)
455730ef 307DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_INT_SIZE,
a0c938f0 308 BT_PTR, BT_PTR, BT_INT, BT_SIZE)
03901330 309DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_INT_INT,
310 BT_VOID, BT_PTR, BT_INT, BT_INT)
c4950093 311DEF_FUNCTION_TYPE_3 (BT_FN_VOID_CONST_PTR_PTR_SIZE,
312 BT_VOID, BT_CONST_PTR, BT_PTR, BT_SIZE)
03901330 313DEF_FUNCTION_TYPE_3 (BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
314 BT_INT, BT_STRING, BT_CONST_STRING, BT_VALIST_ARG)
315DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
316 BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_VALIST_ARG)
e256d445 317DEF_FUNCTION_TYPE_3 (BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
318 BT_INT, BT_FILEPTR, BT_CONST_STRING, BT_VALIST_ARG)
b9b15671 319DEF_FUNCTION_TYPE_3 (BT_FN_STRING_CONST_STRING_CONST_STRING_INT,
320 BT_STRING, BT_CONST_STRING, BT_CONST_STRING, BT_INT)
e88e2794 321DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_FLOAT,
322 BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_FLOAT)
323DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_DOUBLE,
324 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
325DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
326 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
4070bd43 327DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_INTPTR,
328 BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_INT_PTR)
329DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR,
330 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
331DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR,
332 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
333DEF_FUNCTION_TYPE_3 (BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR,
334 BT_VOID, BT_FLOAT, BT_FLOAT_PTR, BT_FLOAT_PTR)
335DEF_FUNCTION_TYPE_3 (BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR,
336 BT_VOID, BT_DOUBLE, BT_DOUBLE_PTR, BT_DOUBLE_PTR)
337DEF_FUNCTION_TYPE_3 (BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR,
338 BT_VOID, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR, BT_LONGDOUBLE_PTR)
4ee9c684 339DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_PTR_PTR, BT_VOID, BT_PTR, BT_PTR, BT_PTR)
73673831 340DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING,
341 BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING, BT_PTR_CONST_STRING)
0a39fd54 342DEF_FUNCTION_TYPE_3 (BT_FN_INT_INT_CONST_STRING_VALIST_ARG,
343 BT_INT, BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
b6a5fc45 344DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I1_I1, BT_BOOL, BT_VOLATILE_PTR,
345 BT_I1, BT_I1)
346DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I2_I2, BT_BOOL, BT_VOLATILE_PTR,
347 BT_I2, BT_I2)
348DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I4_I4, BT_BOOL, BT_VOLATILE_PTR,
349 BT_I4, BT_I4)
350DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I8_I8, BT_BOOL, BT_VOLATILE_PTR,
351 BT_I8, BT_I8)
27213ba3 352DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I16_I16, BT_BOOL, BT_VOLATILE_PTR,
353 BT_I16, BT_I16)
b6a5fc45 354DEF_FUNCTION_TYPE_3 (BT_FN_I1_VPTR_I1_I1, BT_I1, BT_VOLATILE_PTR, BT_I1, BT_I1)
355DEF_FUNCTION_TYPE_3 (BT_FN_I2_VPTR_I2_I2, BT_I2, BT_VOLATILE_PTR, BT_I2, BT_I2)
356DEF_FUNCTION_TYPE_3 (BT_FN_I4_VPTR_I4_I4, BT_I4, BT_VOLATILE_PTR, BT_I4, BT_I4)
357DEF_FUNCTION_TYPE_3 (BT_FN_I8_VPTR_I8_I8, BT_I8, BT_VOLATILE_PTR, BT_I8, BT_I8)
27213ba3 358DEF_FUNCTION_TYPE_3 (BT_FN_I16_VPTR_I16_I16, BT_I16, BT_VOLATILE_PTR,
359 BT_I16, BT_I16)
1e8e9920 360DEF_FUNCTION_TYPE_3 (BT_FN_VOID_OMPFN_PTR_UINT, BT_VOID, BT_PTR_FN_VOID_PTR,
361 BT_PTR, BT_UINT)
d2d4bdde 362
e256d445 363DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
364 BT_SIZE, BT_CONST_PTR, BT_SIZE, BT_SIZE, BT_FILEPTR)
03901330 365DEF_FUNCTION_TYPE_4 (BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
366 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_VALIST_ARG)
b9b15671 367DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR,
368 BT_SIZE, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_CONST_PTR)
0a39fd54 369DEF_FUNCTION_TYPE_4 (BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE,
370 BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE, BT_SIZE)
371DEF_FUNCTION_TYPE_4 (BT_FN_PTR_PTR_INT_SIZE_SIZE,
372 BT_PTR, BT_PTR, BT_INT, BT_SIZE, BT_SIZE)
373DEF_FUNCTION_TYPE_4 (BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE,
374 BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE, BT_SIZE)
375DEF_FUNCTION_TYPE_4 (BT_FN_INT_FILEPTR_INT_CONST_STRING_VALIST_ARG,
376 BT_INT, BT_FILEPTR, BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
1e8e9920 377DEF_FUNCTION_TYPE_4 (BT_FN_VOID_OMPFN_PTR_UINT_UINT,
378 BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT, BT_UINT)
2551f8e0 379DEF_FUNCTION_TYPE_4 (BT_FN_VOID_PTR_WORD_WORD_PTR,
380 BT_VOID, BT_PTR, BT_WORD, BT_WORD, BT_PTR)
0a39fd54 381
382DEF_FUNCTION_TYPE_5 (BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG,
383 BT_INT, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING,
384 BT_VALIST_ARG)
1e8e9920 385DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
386 BT_BOOL, BT_LONG, BT_LONG, BT_LONG,
387 BT_PTR_LONG, BT_PTR_LONG)
0a39fd54 388
389DEF_FUNCTION_TYPE_6 (BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG,
390 BT_INT, BT_STRING, BT_SIZE, BT_INT, BT_SIZE,
391 BT_CONST_STRING, BT_VALIST_ARG)
1e8e9920 392DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
393 BT_BOOL, BT_LONG, BT_LONG, BT_LONG, BT_LONG,
394 BT_PTR_LONG, BT_PTR_LONG)
395DEF_FUNCTION_TYPE_6 (BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
396 BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT,
397 BT_LONG, BT_LONG, BT_LONG)
398
399DEF_FUNCTION_TYPE_7 (BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
400 BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT,
401 BT_LONG, BT_LONG, BT_LONG, BT_LONG)
d2d4bdde 402
403DEF_FUNCTION_TYPE_VAR_0 (BT_FN_VOID_VAR, BT_VOID)
404DEF_FUNCTION_TYPE_VAR_0 (BT_FN_INT_VAR, BT_INT)
405DEF_FUNCTION_TYPE_VAR_0 (BT_FN_PTR_VAR, BT_PTR)
406
a0c938f0 407DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_VALIST_REF_VAR,
d2d4bdde 408 BT_VOID, BT_VALIST_REF)
82086392 409DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_CONST_PTR_VAR,
410 BT_VOID, BT_CONST_PTR)
d2d4bdde 411DEF_FUNCTION_TYPE_VAR_1 (BT_FN_INT_CONST_STRING_VAR,
a0c938f0 412 BT_INT, BT_CONST_STRING)
d2d4bdde 413
e256d445 414DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_FILEPTR_CONST_STRING_VAR,
a0c938f0 415 BT_INT, BT_FILEPTR, BT_CONST_STRING)
03901330 416DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_STRING_CONST_STRING_VAR,
417 BT_INT, BT_STRING, BT_CONST_STRING)
418DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
419 BT_INT, BT_CONST_STRING, BT_CONST_STRING)
0a39fd54 420DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_INT_CONST_STRING_VAR,
421 BT_INT, BT_INT, BT_CONST_STRING)
03901330 422
423DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_STRING_SIZE_CONST_STRING_VAR,
424 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING)
b9b15671 425DEF_FUNCTION_TYPE_VAR_3 (BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR,
426 BT_SSIZE, BT_STRING, BT_SIZE, BT_CONST_STRING)
0a39fd54 427DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR,
428 BT_INT, BT_FILEPTR, BT_INT, BT_CONST_STRING)
429
430DEF_FUNCTION_TYPE_VAR_4 (BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR,
431 BT_INT, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING)
432
433DEF_FUNCTION_TYPE_VAR_5 (BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR,
434 BT_INT, BT_STRING, BT_SIZE, BT_INT, BT_SIZE,
435 BT_CONST_STRING)
d2d4bdde 436
437DEF_POINTER_TYPE (BT_PTR_FN_VOID_VAR, BT_FN_VOID_VAR)
438DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE,
439 BT_PTR, BT_PTR_FN_VOID_VAR, BT_PTR, BT_SIZE)
1e8e9920 440