]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/builtin-types.def
2006-12-13 Richard Guenther <rguenther@suse.de>
[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)
42791117 78DEF_PRIMITIVE_TYPE (BT_UINT32, uint32_type_node)
79DEF_PRIMITIVE_TYPE (BT_UINT64, uint64_type_node)
5c3667a1 80DEF_PRIMITIVE_TYPE (BT_WORD, (*lang_hooks.types.type_for_mode) (word_mode, 0))
d2d4bdde 81DEF_PRIMITIVE_TYPE (BT_FLOAT, float_type_node)
d2d4bdde 82DEF_PRIMITIVE_TYPE (BT_DOUBLE, double_type_node)
00eb5190 83DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE, long_double_type_node)
d2d4bdde 84DEF_PRIMITIVE_TYPE (BT_COMPLEX_FLOAT, complex_float_type_node)
85DEF_PRIMITIVE_TYPE (BT_COMPLEX_DOUBLE, complex_double_type_node)
00eb5190 86DEF_PRIMITIVE_TYPE (BT_COMPLEX_LONGDOUBLE, complex_long_double_type_node)
d2d4bdde 87
88DEF_PRIMITIVE_TYPE (BT_PTR, ptr_type_node)
e256d445 89DEF_PRIMITIVE_TYPE (BT_FILEPTR, fileptr_type_node)
d2d4bdde 90DEF_PRIMITIVE_TYPE (BT_CONST_PTR, const_ptr_type_node)
b6a5fc45 91DEF_PRIMITIVE_TYPE (BT_VOLATILE_PTR,
92 build_pointer_type
93 (build_qualified_type (void_type_node,
94 TYPE_QUAL_VOLATILE)))
771d21fa 95DEF_PRIMITIVE_TYPE (BT_PTRMODE, (*lang_hooks.types.type_for_mode)(ptr_mode, 0))
4070bd43 96DEF_PRIMITIVE_TYPE (BT_INT_PTR, integer_ptr_type_node)
97DEF_PRIMITIVE_TYPE (BT_FLOAT_PTR, float_ptr_type_node)
98DEF_PRIMITIVE_TYPE (BT_DOUBLE_PTR, double_ptr_type_node)
99DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE_PTR, long_double_ptr_type_node)
73673831 100DEF_PRIMITIVE_TYPE (BT_PID, pid_type_node)
654ef926 101DEF_PRIMITIVE_TYPE (BT_SIZE, size_type_node)
b9b15671 102DEF_PRIMITIVE_TYPE (BT_SSIZE, signed_size_type_node)
4617d9b5 103DEF_PRIMITIVE_TYPE (BT_WINT, wint_type_node)
d2d4bdde 104DEF_PRIMITIVE_TYPE (BT_STRING, string_type_node)
105DEF_PRIMITIVE_TYPE (BT_CONST_STRING, const_string_type_node)
d2d4bdde 106
c4503c0a 107DEF_PRIMITIVE_TYPE (BT_DFLOAT32, dfloat32_type_node)
108DEF_PRIMITIVE_TYPE (BT_DFLOAT64, dfloat64_type_node)
109DEF_PRIMITIVE_TYPE (BT_DFLOAT128, dfloat128_type_node)
110DEF_PRIMITIVE_TYPE (BT_DFLOAT32_PTR, dfloat32_ptr_type_node)
111DEF_PRIMITIVE_TYPE (BT_DFLOAT64_PTR, dfloat64_ptr_type_node)
112DEF_PRIMITIVE_TYPE (BT_DFLOAT128_PTR, dfloat128_ptr_type_node)
113
d2d4bdde 114DEF_PRIMITIVE_TYPE (BT_VALIST_REF, va_list_ref_type_node)
115DEF_PRIMITIVE_TYPE (BT_VALIST_ARG, va_list_arg_type_node)
116
b6a5fc45 117DEF_PRIMITIVE_TYPE (BT_I1, builtin_type_for_size (BITS_PER_UNIT*1, 1))
118DEF_PRIMITIVE_TYPE (BT_I2, builtin_type_for_size (BITS_PER_UNIT*2, 1))
119DEF_PRIMITIVE_TYPE (BT_I4, builtin_type_for_size (BITS_PER_UNIT*4, 1))
120DEF_PRIMITIVE_TYPE (BT_I8, builtin_type_for_size (BITS_PER_UNIT*8, 1))
27213ba3 121DEF_PRIMITIVE_TYPE (BT_I16, builtin_type_for_size (BITS_PER_UNIT*16, 1))
b6a5fc45 122
73673831 123DEF_POINTER_TYPE (BT_PTR_CONST_STRING, BT_CONST_STRING)
1e8e9920 124DEF_POINTER_TYPE (BT_PTR_LONG, BT_LONG)
125DEF_POINTER_TYPE (BT_PTR_PTR, BT_PTR)
73673831 126
d2d4bdde 127DEF_FUNCTION_TYPE_0 (BT_FN_VOID, BT_VOID)
1e8e9920 128DEF_FUNCTION_TYPE_0 (BT_FN_BOOL, BT_BOOL)
d2d4bdde 129DEF_FUNCTION_TYPE_0 (BT_FN_PTR, BT_PTR)
73673831 130DEF_FUNCTION_TYPE_0 (BT_FN_PID, BT_PID)
1e8e9920 131DEF_FUNCTION_TYPE_0 (BT_FN_INT, BT_INT)
5053259b 132DEF_FUNCTION_TYPE_0 (BT_FN_UINT, BT_UINT)
92c43e3c 133DEF_FUNCTION_TYPE_0 (BT_FN_FLOAT, BT_FLOAT)
134DEF_FUNCTION_TYPE_0 (BT_FN_DOUBLE, BT_DOUBLE)
00eb5190 135/* For "long double" we use LONGDOUBLE (not LONG_DOUBLE) to
136 distinguish it from two types in sequence, "long" followed by
137 "double". */
138DEF_FUNCTION_TYPE_0 (BT_FN_LONGDOUBLE, BT_LONGDOUBLE)
c4503c0a 139DEF_FUNCTION_TYPE_0 (BT_FN_DFLOAT32, BT_DFLOAT32)
140DEF_FUNCTION_TYPE_0 (BT_FN_DFLOAT64, BT_DFLOAT64)
141DEF_FUNCTION_TYPE_0 (BT_FN_DFLOAT128, BT_DFLOAT128)
d2d4bdde 142
143DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONG, BT_LONG, BT_LONG)
144DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGLONG, BT_LONGLONG, BT_LONGLONG)
145DEF_FUNCTION_TYPE_1 (BT_FN_INTMAX_INTMAX, BT_INTMAX, BT_INTMAX)
146DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_FLOAT, BT_FLOAT, BT_FLOAT)
147DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_DOUBLE, BT_DOUBLE, BT_DOUBLE)
a0c938f0 148DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_LONGDOUBLE,
149 BT_LONGDOUBLE, BT_LONGDOUBLE)
150DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT,
d2d4bdde 151 BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
a0c938f0 152DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
d2d4bdde 153 BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
a0c938f0 154DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE,
155 BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
156DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_COMPLEX_FLOAT,
157 BT_FLOAT, BT_COMPLEX_FLOAT)
d2d4bdde 158DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_COMPLEX_DOUBLE,
a0c938f0 159 BT_DOUBLE, BT_COMPLEX_DOUBLE)
00eb5190 160DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_COMPLEX_LONGDOUBLE,
a0c938f0 161 BT_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
d735c391 162DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_FLOAT_FLOAT,
163 BT_COMPLEX_FLOAT, BT_FLOAT)
164DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_DOUBLE_DOUBLE,
165 BT_COMPLEX_DOUBLE, BT_DOUBLE)
166DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_LONGDOUBLE_LONGDOUBLE,
167 BT_COMPLEX_LONGDOUBLE, BT_LONGDOUBLE)
5053259b 168DEF_FUNCTION_TYPE_1 (BT_FN_PTR_UINT, BT_PTR, BT_UINT)
d2d4bdde 169DEF_FUNCTION_TYPE_1 (BT_FN_PTR_SIZE, BT_PTR, BT_SIZE)
170DEF_FUNCTION_TYPE_1 (BT_FN_INT_INT, BT_INT, BT_INT)
5053259b 171DEF_FUNCTION_TYPE_1 (BT_FN_INT_UINT, BT_INT, BT_UINT)
6a08d0ab 172DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONG, BT_INT, BT_LONG)
5053259b 173DEF_FUNCTION_TYPE_1 (BT_FN_INT_ULONG, BT_INT, BT_ULONG)
6a08d0ab 174DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGLONG, BT_INT, BT_LONGLONG)
5053259b 175DEF_FUNCTION_TYPE_1 (BT_FN_INT_ULONGLONG, BT_INT, BT_ULONGLONG)
176DEF_FUNCTION_TYPE_1 (BT_FN_INT_INTMAX, BT_INT, BT_INTMAX)
177DEF_FUNCTION_TYPE_1 (BT_FN_INT_UINTMAX, BT_INT, BT_UINTMAX)
d2d4bdde 178DEF_FUNCTION_TYPE_1 (BT_FN_INT_PTR, BT_INT, BT_PTR)
e88e2794 179DEF_FUNCTION_TYPE_1 (BT_FN_INT_FLOAT, BT_INT, BT_FLOAT)
180DEF_FUNCTION_TYPE_1 (BT_FN_INT_DOUBLE, BT_INT, BT_DOUBLE)
181DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
c4503c0a 182DEF_FUNCTION_TYPE_1 (BT_FN_INT_DFLOAT32, BT_INT, BT_DFLOAT32)
183DEF_FUNCTION_TYPE_1 (BT_FN_INT_DFLOAT64, BT_INT, BT_DFLOAT64)
184DEF_FUNCTION_TYPE_1 (BT_FN_INT_DFLOAT128, BT_INT, BT_DFLOAT128)
e88e2794 185DEF_FUNCTION_TYPE_1 (BT_FN_LONG_FLOAT, BT_LONG, BT_FLOAT)
186DEF_FUNCTION_TYPE_1 (BT_FN_LONG_DOUBLE, BT_LONG, BT_DOUBLE)
187DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONGDOUBLE, BT_LONG, BT_LONGDOUBLE)
188DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_FLOAT, BT_LONGLONG, BT_FLOAT)
189DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_DOUBLE, BT_LONGLONG, BT_DOUBLE)
190DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGDOUBLE, BT_LONGLONG, BT_LONGDOUBLE)
d2d4bdde 191DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTR, BT_VOID, BT_PTR)
455730ef 192DEF_FUNCTION_TYPE_1 (BT_FN_SIZE_CONST_STRING, BT_SIZE, BT_CONST_STRING)
d2d4bdde 193DEF_FUNCTION_TYPE_1 (BT_FN_INT_CONST_STRING, BT_INT, BT_CONST_STRING)
194DEF_FUNCTION_TYPE_1 (BT_FN_PTR_PTR, BT_PTR, BT_PTR)
195DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VALIST_REF, BT_VOID, BT_VALIST_REF)
196DEF_FUNCTION_TYPE_1 (BT_FN_VOID_INT, BT_VOID, BT_INT)
b0db7939 197DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_CONST_STRING, BT_FLOAT, BT_CONST_STRING)
198DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_CONST_STRING, BT_DOUBLE, BT_CONST_STRING)
00eb5190 199DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_CONST_STRING,
200 BT_LONGDOUBLE, BT_CONST_STRING)
c4503c0a 201DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT32_CONST_STRING, BT_DFLOAT32, BT_CONST_STRING)
202DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT64_CONST_STRING, BT_DFLOAT64, BT_CONST_STRING)
203DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT128_CONST_STRING,
204 BT_DFLOAT128, BT_CONST_STRING)
32ef1cd2 205DEF_FUNCTION_TYPE_1 (BT_FN_STRING_CONST_STRING, BT_STRING, BT_CONST_STRING)
26093bf4 206DEF_FUNCTION_TYPE_1 (BT_FN_WORD_PTR, BT_WORD, BT_PTR)
4617d9b5 207DEF_FUNCTION_TYPE_1 (BT_FN_INT_WINT, BT_INT, BT_WINT)
208DEF_FUNCTION_TYPE_1 (BT_FN_WINT_WINT, BT_WINT, BT_WINT)
c4503c0a 209DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT32_DFLOAT32, BT_DFLOAT32, BT_DFLOAT32)
210DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT64_DFLOAT64, BT_DFLOAT64, BT_DFLOAT64)
211DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT128_DFLOAT128, BT_DFLOAT128, BT_DFLOAT128)
b6a5fc45 212DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VPTR, BT_VOID, BT_VOLATILE_PTR)
1e8e9920 213DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTRPTR, BT_VOID, BT_PTR_PTR)
214DEF_FUNCTION_TYPE_1 (BT_FN_UINT_UINT, BT_UINT, BT_UINT)
42791117 215DEF_FUNCTION_TYPE_1 (BT_FN_ULONG_ULONG, BT_ULONG, BT_ULONG)
216DEF_FUNCTION_TYPE_1 (BT_FN_ULONGLONG_ULONGLONG, BT_ULONGLONG, BT_ULONGLONG)
217DEF_FUNCTION_TYPE_1 (BT_FN_UINT32_UINT32, BT_UINT32, BT_UINT32)
218DEF_FUNCTION_TYPE_1 (BT_FN_UINT64_UINT64, BT_UINT64, BT_UINT64)
1e8e9920 219
220DEF_POINTER_TYPE (BT_PTR_FN_VOID_PTR, BT_FN_VOID_PTR)
d2d4bdde 221
222DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_INT, BT_VOID, BT_PTR, BT_INT)
a0c938f0 223DEF_FUNCTION_TYPE_2 (BT_FN_STRING_STRING_CONST_STRING,
224 BT_STRING, BT_STRING, BT_CONST_STRING)
d2d4bdde 225DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_CONST_STRING,
a0c938f0 226 BT_INT, BT_CONST_STRING, BT_CONST_STRING)
d2d4bdde 227DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_CONST_STRING,
228 BT_STRING, BT_CONST_STRING, BT_CONST_STRING)
229DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_STRING_CONST_STRING,
a0c938f0 230 BT_SIZE, BT_CONST_STRING, BT_CONST_STRING)
d2d4bdde 231DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_INT,
a0c938f0 232 BT_STRING, BT_CONST_STRING, BT_INT)
7e50d406 233DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_SIZE,
a0c938f0 234 BT_STRING, BT_CONST_STRING, BT_SIZE)
e256d445 235DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_FILEPTR,
236 BT_INT, BT_CONST_STRING, BT_FILEPTR)
237DEF_FUNCTION_TYPE_2 (BT_FN_INT_INT_FILEPTR,
238 BT_INT, BT_INT, BT_FILEPTR)
d2d4bdde 239DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTRMODE_PTR,
240 BT_VOID, BT_PTRMODE, BT_PTR)
a0c938f0 241DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VALIST_REF_VALIST_ARG,
d2d4bdde 242 BT_VOID, BT_VALIST_REF, BT_VALIST_ARG)
243DEF_FUNCTION_TYPE_2 (BT_FN_LONG_LONG_LONG,
244 BT_LONG, BT_LONG, BT_LONG)
245DEF_FUNCTION_TYPE_2 (BT_FN_INT_PTR_CONST_STRING,
246 BT_INT, BT_PTR, BT_CONST_STRING)
455730ef 247DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_SIZE,
248 BT_VOID, BT_PTR, BT_SIZE)
fa426235 249DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOAT,
250 BT_FLOAT, BT_FLOAT, BT_FLOAT)
251DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLE,
252 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
00eb5190 253DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
254 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
4070bd43 255DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOATPTR,
256 BT_FLOAT, BT_FLOAT, BT_FLOAT_PTR)
257DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLEPTR,
258 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE_PTR)
259DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLEPTR,
260 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR)
e88e2794 261DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONGDOUBLE,
262 BT_FLOAT, BT_FLOAT, BT_LONGDOUBLE)
263DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONGDOUBLE,
264 BT_DOUBLE, BT_DOUBLE, BT_LONGDOUBLE)
265DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INT,
266 BT_FLOAT, BT_FLOAT, BT_INT)
267DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INT,
268 BT_DOUBLE, BT_DOUBLE, BT_INT)
269DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INT,
270 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT)
4070bd43 271DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INTPTR,
272 BT_FLOAT, BT_FLOAT, BT_INT_PTR)
273DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INTPTR,
274 BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
275DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR,
276 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
847749e5 277DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_INT_FLOAT,
278 BT_FLOAT, BT_INT, BT_FLOAT)
279DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_INT_DOUBLE,
280 BT_DOUBLE, BT_INT, BT_DOUBLE)
281DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_INT_LONGDOUBLE,
282 BT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
e88e2794 283DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONG,
284 BT_FLOAT, BT_FLOAT, BT_LONG)
285DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONG,
286 BT_DOUBLE, BT_DOUBLE, BT_LONG)
287DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONG,
288 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONG)
03901330 289DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_VALIST_ARG,
290 BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
32ef1cd2 291DEF_FUNCTION_TYPE_2 (BT_FN_PTR_SIZE_SIZE,
292 BT_PTR, BT_SIZE, BT_SIZE)
a0c938f0 293DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT,
61b922e7 294 BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
a0c938f0 295DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
61b922e7 296 BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
a0c938f0 297DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE,
298 BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
4ee9c684 299DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_PTR, BT_VOID, BT_PTR, BT_PTR)
73673831 300DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
301 BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING)
0a39fd54 302DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_PTR_INT, BT_SIZE, BT_CONST_PTR, BT_INT)
b6a5fc45 303DEF_FUNCTION_TYPE_2 (BT_FN_I1_VPTR_I1, BT_I1, BT_VOLATILE_PTR, BT_I1)
304DEF_FUNCTION_TYPE_2 (BT_FN_I2_VPTR_I2, BT_I2, BT_VOLATILE_PTR, BT_I2)
305DEF_FUNCTION_TYPE_2 (BT_FN_I4_VPTR_I4, BT_I4, BT_VOLATILE_PTR, BT_I4)
306DEF_FUNCTION_TYPE_2 (BT_FN_I8_VPTR_I8, BT_I8, BT_VOLATILE_PTR, BT_I8)
27213ba3 307DEF_FUNCTION_TYPE_2 (BT_FN_I16_VPTR_I16, BT_I16, BT_VOLATILE_PTR, BT_I16)
1e8e9920 308DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_LONGPTR_LONGPTR,
309 BT_BOOL, BT_PTR_LONG, BT_PTR_LONG)
d2d4bdde 310
311DEF_FUNCTION_TYPE_3 (BT_FN_STRING_STRING_CONST_STRING_SIZE,
312 BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE)
313DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_SIZE,
314 BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_SIZE)
455730ef 315DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_CONST_PTR_SIZE,
316 BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE)
d2d4bdde 317DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_PTR_CONST_PTR_SIZE,
a0c938f0 318 BT_INT, BT_CONST_PTR, BT_CONST_PTR, BT_SIZE)
455730ef 319DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_INT_SIZE,
a0c938f0 320 BT_PTR, BT_PTR, BT_INT, BT_SIZE)
03901330 321DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_INT_INT,
322 BT_VOID, BT_PTR, BT_INT, BT_INT)
c4950093 323DEF_FUNCTION_TYPE_3 (BT_FN_VOID_CONST_PTR_PTR_SIZE,
324 BT_VOID, BT_CONST_PTR, BT_PTR, BT_SIZE)
03901330 325DEF_FUNCTION_TYPE_3 (BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
326 BT_INT, BT_STRING, BT_CONST_STRING, BT_VALIST_ARG)
327DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
328 BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_VALIST_ARG)
e256d445 329DEF_FUNCTION_TYPE_3 (BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
330 BT_INT, BT_FILEPTR, BT_CONST_STRING, BT_VALIST_ARG)
b9b15671 331DEF_FUNCTION_TYPE_3 (BT_FN_STRING_CONST_STRING_CONST_STRING_INT,
332 BT_STRING, BT_CONST_STRING, BT_CONST_STRING, BT_INT)
e88e2794 333DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_FLOAT,
334 BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_FLOAT)
335DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_DOUBLE,
336 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
337DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
338 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
4070bd43 339DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_INTPTR,
340 BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_INT_PTR)
341DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR,
342 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
343DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR,
344 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
345DEF_FUNCTION_TYPE_3 (BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR,
346 BT_VOID, BT_FLOAT, BT_FLOAT_PTR, BT_FLOAT_PTR)
347DEF_FUNCTION_TYPE_3 (BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR,
348 BT_VOID, BT_DOUBLE, BT_DOUBLE_PTR, BT_DOUBLE_PTR)
349DEF_FUNCTION_TYPE_3 (BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR,
350 BT_VOID, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR, BT_LONGDOUBLE_PTR)
4ee9c684 351DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_PTR_PTR, BT_VOID, BT_PTR, BT_PTR, BT_PTR)
73673831 352DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING,
353 BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING, BT_PTR_CONST_STRING)
0a39fd54 354DEF_FUNCTION_TYPE_3 (BT_FN_INT_INT_CONST_STRING_VALIST_ARG,
355 BT_INT, BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
b6a5fc45 356DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I1_I1, BT_BOOL, BT_VOLATILE_PTR,
357 BT_I1, BT_I1)
358DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I2_I2, BT_BOOL, BT_VOLATILE_PTR,
359 BT_I2, BT_I2)
360DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I4_I4, BT_BOOL, BT_VOLATILE_PTR,
361 BT_I4, BT_I4)
362DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I8_I8, BT_BOOL, BT_VOLATILE_PTR,
363 BT_I8, BT_I8)
27213ba3 364DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I16_I16, BT_BOOL, BT_VOLATILE_PTR,
365 BT_I16, BT_I16)
b6a5fc45 366DEF_FUNCTION_TYPE_3 (BT_FN_I1_VPTR_I1_I1, BT_I1, BT_VOLATILE_PTR, BT_I1, BT_I1)
367DEF_FUNCTION_TYPE_3 (BT_FN_I2_VPTR_I2_I2, BT_I2, BT_VOLATILE_PTR, BT_I2, BT_I2)
368DEF_FUNCTION_TYPE_3 (BT_FN_I4_VPTR_I4_I4, BT_I4, BT_VOLATILE_PTR, BT_I4, BT_I4)
369DEF_FUNCTION_TYPE_3 (BT_FN_I8_VPTR_I8_I8, BT_I8, BT_VOLATILE_PTR, BT_I8, BT_I8)
27213ba3 370DEF_FUNCTION_TYPE_3 (BT_FN_I16_VPTR_I16_I16, BT_I16, BT_VOLATILE_PTR,
371 BT_I16, BT_I16)
1e8e9920 372DEF_FUNCTION_TYPE_3 (BT_FN_VOID_OMPFN_PTR_UINT, BT_VOID, BT_PTR_FN_VOID_PTR,
373 BT_PTR, BT_UINT)
d2d4bdde 374
e256d445 375DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
376 BT_SIZE, BT_CONST_PTR, BT_SIZE, BT_SIZE, BT_FILEPTR)
03901330 377DEF_FUNCTION_TYPE_4 (BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
378 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_VALIST_ARG)
b9b15671 379DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR,
380 BT_SIZE, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_CONST_PTR)
0a39fd54 381DEF_FUNCTION_TYPE_4 (BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE,
382 BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE, BT_SIZE)
383DEF_FUNCTION_TYPE_4 (BT_FN_PTR_PTR_INT_SIZE_SIZE,
384 BT_PTR, BT_PTR, BT_INT, BT_SIZE, BT_SIZE)
385DEF_FUNCTION_TYPE_4 (BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE,
386 BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE, BT_SIZE)
387DEF_FUNCTION_TYPE_4 (BT_FN_INT_FILEPTR_INT_CONST_STRING_VALIST_ARG,
388 BT_INT, BT_FILEPTR, BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
1e8e9920 389DEF_FUNCTION_TYPE_4 (BT_FN_VOID_OMPFN_PTR_UINT_UINT,
390 BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT, BT_UINT)
0a39fd54 391
392DEF_FUNCTION_TYPE_5 (BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG,
393 BT_INT, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING,
394 BT_VALIST_ARG)
1e8e9920 395DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
396 BT_BOOL, BT_LONG, BT_LONG, BT_LONG,
397 BT_PTR_LONG, BT_PTR_LONG)
0a39fd54 398
399DEF_FUNCTION_TYPE_6 (BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG,
400 BT_INT, BT_STRING, BT_SIZE, BT_INT, BT_SIZE,
401 BT_CONST_STRING, BT_VALIST_ARG)
1e8e9920 402DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
403 BT_BOOL, BT_LONG, BT_LONG, BT_LONG, BT_LONG,
404 BT_PTR_LONG, BT_PTR_LONG)
405DEF_FUNCTION_TYPE_6 (BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
406 BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT,
407 BT_LONG, BT_LONG, BT_LONG)
408
409DEF_FUNCTION_TYPE_7 (BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
410 BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT,
411 BT_LONG, BT_LONG, BT_LONG, BT_LONG)
d2d4bdde 412
413DEF_FUNCTION_TYPE_VAR_0 (BT_FN_VOID_VAR, BT_VOID)
414DEF_FUNCTION_TYPE_VAR_0 (BT_FN_INT_VAR, BT_INT)
415DEF_FUNCTION_TYPE_VAR_0 (BT_FN_PTR_VAR, BT_PTR)
416
a0c938f0 417DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_VALIST_REF_VAR,
d2d4bdde 418 BT_VOID, BT_VALIST_REF)
82086392 419DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_CONST_PTR_VAR,
420 BT_VOID, BT_CONST_PTR)
d2d4bdde 421DEF_FUNCTION_TYPE_VAR_1 (BT_FN_INT_CONST_STRING_VAR,
a0c938f0 422 BT_INT, BT_CONST_STRING)
d2d4bdde 423
e256d445 424DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_FILEPTR_CONST_STRING_VAR,
a0c938f0 425 BT_INT, BT_FILEPTR, BT_CONST_STRING)
03901330 426DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_STRING_CONST_STRING_VAR,
427 BT_INT, BT_STRING, BT_CONST_STRING)
428DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
429 BT_INT, BT_CONST_STRING, BT_CONST_STRING)
0a39fd54 430DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_INT_CONST_STRING_VAR,
431 BT_INT, BT_INT, BT_CONST_STRING)
03901330 432
433DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_STRING_SIZE_CONST_STRING_VAR,
434 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING)
b9b15671 435DEF_FUNCTION_TYPE_VAR_3 (BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR,
436 BT_SSIZE, BT_STRING, BT_SIZE, BT_CONST_STRING)
0a39fd54 437DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR,
438 BT_INT, BT_FILEPTR, BT_INT, BT_CONST_STRING)
439
440DEF_FUNCTION_TYPE_VAR_4 (BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR,
441 BT_INT, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING)
442
443DEF_FUNCTION_TYPE_VAR_5 (BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR,
444 BT_INT, BT_STRING, BT_SIZE, BT_INT, BT_SIZE,
445 BT_CONST_STRING)
d2d4bdde 446
447DEF_POINTER_TYPE (BT_PTR_FN_VOID_VAR, BT_FN_VOID_VAR)
448DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE,
449 BT_PTR, BT_PTR_FN_VOID_VAR, BT_PTR, BT_SIZE)