1172677Smlaier/* Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 2172677Smlaier Free Software Foundation, Inc. 3172677Smlaier 4235426SdelphijThis file is part of GCC. 5172677Smlaier 6172677SmlaierGCC is free software; you can redistribute it and/or modify it under 7172677Smlaierthe terms of the GNU General Public License as published by the Free 8172677SmlaierSoftware Foundation; either version 2, or (at your option) any later 9235426Sdelphijversion. 10172677Smlaier 11172677SmlaierGCC is distributed in the hope that it will be useful, but WITHOUT ANY 12172677SmlaierWARRANTY; without even the implied warranty of MERCHANTABILITY or 13172677SmlaierFITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14235426Sdelphijfor more details. 15235426Sdelphij 16172677SmlaierYou should have received a copy of the GNU General Public License 17235426Sdelphijalong with GCC; see the file COPYING. If not, write to the Free 18235426SdelphijSoftware Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 19235426Sdelphij02110-1301, USA. */ 20235426Sdelphij 21235426Sdelphij/* This header provides a declarative way of describing the types that 22235426Sdelphij are used when declaring builtin functions. 23235426Sdelphij 24172677Smlaier Before including this header, you must define the following macros: 25235426Sdelphij 26235426Sdelphij DEF_PRIMITIVE_TYPE (ENUM, TYPE) 27235426Sdelphij 28235426Sdelphij The ENUM is an identifier indicating which type is being defined. 29235426Sdelphij TYPE is an expression for a `tree' that represents the type. 30235426Sdelphij 31235426Sdelphij DEF_FUNCTION_TYPE_0 (ENUM, RETURN) 32235426Sdelphij DEF_FUNCTION_TYPE_1 (ENUM, RETURN, ARG1) 33235426Sdelphij DEF_FUNCTION_TYPE_2 (ENUM, RETURN, ARG1, ARG2) 34235426Sdelphij DEF_FUNCTION_TYPE_3 (ENUM, RETURN, ARG1, ARG2, ARG3) 35235426Sdelphij DEF_FUNCTION_TYPE_4 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4) 36235426Sdelphij DEF_FUNCTION_TYPE_5 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5) 37235426Sdelphij DEF_FUNCTION_TYPE_6 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6) 38235426Sdelphij DEF_FUNCTION_TYPE_7 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7) 39235426Sdelphij 40235426Sdelphij These macros describe function types. ENUM is as above. The 41235426Sdelphij RETURN type is one of the enumerals already defined. ARG1, ARG2, 42235426Sdelphij and ARG3 give the types of the arguments, similarly. 43235426Sdelphij 44172677Smlaier DEF_FUNCTION_TYPE_VAR_0 (ENUM, RETURN) 45235426Sdelphij DEF_FUNCTION_TYPE_VAR_1 (ENUM, RETURN, ARG1) 46172677Smlaier DEF_FUNCTION_TYPE_VAR_2 (ENUM, RETURN, ARG1, ARG2) 47172677Smlaier DEF_FUNCTION_TYPE_VAR_3 (ENUM, RETURN, ARG1, ARG2, ARG3) 48235426Sdelphij DEF_FUNCTION_TYPE_VAR_4 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4) 49235426Sdelphij DEF_FUNCTION_TYPE_VAR_4 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5) 50235426Sdelphij 51172677Smlaier Similar, but for function types that take variable arguments. 52172677Smlaier For example: 53172677Smlaier 54172677Smlaier DEF_FUNCTION_TYPE_1 (BT_INT_DOUBLE, BT_INT, BT_DOUBLE) 55235426Sdelphij 56235426Sdelphij describes the type `int ()(double)', using the enumeral 57172677Smlaier BT_INT_DOUBLE, whereas: 58172677Smlaier 59172677Smlaier DEF_FUNCTION_TYPE_VAR_1 (BT_INT_DOUBLE_VAR, BT_INT, BT_DOUBLE) 60172677Smlaier 61172677Smlaier describes the type `int ()(double, ...)'. 62235426Sdelphij 63235426Sdelphij DEF_POINTER_TYPE (ENUM, TYPE) 64235426Sdelphij 65235426Sdelphij This macro describes a pointer type. ENUM is as above; TYPE is 66235426Sdelphij the type pointed to. */ 67235426Sdelphij 68235426SdelphijDEF_PRIMITIVE_TYPE (BT_VOID, void_type_node) 69241231SdelphijDEF_PRIMITIVE_TYPE (BT_BOOL, boolean_type_node) 70235426SdelphijDEF_PRIMITIVE_TYPE (BT_INT, integer_type_node) 71241231SdelphijDEF_PRIMITIVE_TYPE (BT_UINT, unsigned_type_node) 72241231SdelphijDEF_PRIMITIVE_TYPE (BT_LONG, long_integer_type_node) 73235426SdelphijDEF_PRIMITIVE_TYPE (BT_ULONG, long_unsigned_type_node) 74235426SdelphijDEF_PRIMITIVE_TYPE (BT_LONGLONG, long_long_integer_type_node) 75235426SdelphijDEF_PRIMITIVE_TYPE (BT_ULONGLONG, long_long_unsigned_type_node) 76235426SdelphijDEF_PRIMITIVE_TYPE (BT_INTMAX, intmax_type_node) 77235426SdelphijDEF_PRIMITIVE_TYPE (BT_UINTMAX, uintmax_type_node) 78DEF_PRIMITIVE_TYPE (BT_WORD, (*lang_hooks.types.type_for_mode) (word_mode, 0)) 79DEF_PRIMITIVE_TYPE (BT_FLOAT, float_type_node) 80DEF_PRIMITIVE_TYPE (BT_DOUBLE, double_type_node) 81DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE, long_double_type_node) 82DEF_PRIMITIVE_TYPE (BT_COMPLEX_FLOAT, complex_float_type_node) 83DEF_PRIMITIVE_TYPE (BT_COMPLEX_DOUBLE, complex_double_type_node) 84DEF_PRIMITIVE_TYPE (BT_COMPLEX_LONGDOUBLE, complex_long_double_type_node) 85 86DEF_PRIMITIVE_TYPE (BT_PTR, ptr_type_node) 87DEF_PRIMITIVE_TYPE (BT_FILEPTR, fileptr_type_node) 88DEF_PRIMITIVE_TYPE (BT_CONST_PTR, const_ptr_type_node) 89DEF_PRIMITIVE_TYPE (BT_VOLATILE_PTR, 90 build_pointer_type 91 (build_qualified_type (void_type_node, 92 TYPE_QUAL_VOLATILE))) 93DEF_PRIMITIVE_TYPE (BT_PTRMODE, (*lang_hooks.types.type_for_mode)(ptr_mode, 0)) 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) 98DEF_PRIMITIVE_TYPE (BT_PID, pid_type_node) 99DEF_PRIMITIVE_TYPE (BT_SIZE, size_type_node) 100DEF_PRIMITIVE_TYPE (BT_SSIZE, signed_size_type_node) 101DEF_PRIMITIVE_TYPE (BT_WINT, wint_type_node) 102DEF_PRIMITIVE_TYPE (BT_STRING, string_type_node) 103DEF_PRIMITIVE_TYPE (BT_CONST_STRING, const_string_type_node) 104 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 112DEF_PRIMITIVE_TYPE (BT_VALIST_REF, va_list_ref_type_node) 113DEF_PRIMITIVE_TYPE (BT_VALIST_ARG, va_list_arg_type_node) 114 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)) 119DEF_PRIMITIVE_TYPE (BT_I16, builtin_type_for_size (BITS_PER_UNIT*16, 1)) 120 121DEF_POINTER_TYPE (BT_PTR_CONST_STRING, BT_CONST_STRING) 122DEF_POINTER_TYPE (BT_PTR_LONG, BT_LONG) 123DEF_POINTER_TYPE (BT_PTR_PTR, BT_PTR) 124 125DEF_FUNCTION_TYPE_0 (BT_FN_VOID, BT_VOID) 126DEF_FUNCTION_TYPE_0 (BT_FN_BOOL, BT_BOOL) 127DEF_FUNCTION_TYPE_0 (BT_FN_PTR, BT_PTR) 128DEF_FUNCTION_TYPE_0 (BT_FN_PID, BT_PID) 129DEF_FUNCTION_TYPE_0 (BT_FN_INT, BT_INT) 130DEF_FUNCTION_TYPE_0 (BT_FN_UINT, BT_UINT) 131DEF_FUNCTION_TYPE_0 (BT_FN_FLOAT, BT_FLOAT) 132DEF_FUNCTION_TYPE_0 (BT_FN_DOUBLE, BT_DOUBLE) 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) 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) 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) 146DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_LONGDOUBLE, 147 BT_LONGDOUBLE, BT_LONGDOUBLE) 148DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT, 149 BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT) 150DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE, 151 BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE) 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) 156DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_COMPLEX_DOUBLE, 157 BT_DOUBLE, BT_COMPLEX_DOUBLE) 158DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_COMPLEX_LONGDOUBLE, 159 BT_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE) 160DEF_FUNCTION_TYPE_1 (BT_FN_PTR_UINT, BT_PTR, BT_UINT) 161DEF_FUNCTION_TYPE_1 (BT_FN_PTR_SIZE, BT_PTR, BT_SIZE) 162DEF_FUNCTION_TYPE_1 (BT_FN_INT_INT, BT_INT, BT_INT) 163DEF_FUNCTION_TYPE_1 (BT_FN_INT_UINT, BT_INT, BT_UINT) 164DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONG, BT_INT, BT_LONG) 165DEF_FUNCTION_TYPE_1 (BT_FN_INT_ULONG, BT_INT, BT_ULONG) 166DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGLONG, BT_INT, BT_LONGLONG) 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) 170DEF_FUNCTION_TYPE_1 (BT_FN_INT_PTR, BT_INT, BT_PTR) 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) 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) 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) 183DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTR, BT_VOID, BT_PTR) 184DEF_FUNCTION_TYPE_1 (BT_FN_SIZE_CONST_STRING, BT_SIZE, BT_CONST_STRING) 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) 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) 191DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_CONST_STRING, 192 BT_LONGDOUBLE, BT_CONST_STRING) 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) 197DEF_FUNCTION_TYPE_1 (BT_FN_STRING_CONST_STRING, BT_STRING, BT_CONST_STRING) 198DEF_FUNCTION_TYPE_1 (BT_FN_WORD_PTR, BT_WORD, BT_PTR) 199DEF_FUNCTION_TYPE_1 (BT_FN_INT_WINT, BT_INT, BT_WINT) 200DEF_FUNCTION_TYPE_1 (BT_FN_WINT_WINT, BT_WINT, BT_WINT) 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) 204DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VPTR, BT_VOID, BT_VOLATILE_PTR) 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) 209 210DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_INT, BT_VOID, BT_PTR, BT_INT) 211DEF_FUNCTION_TYPE_2 (BT_FN_STRING_STRING_CONST_STRING, 212 BT_STRING, BT_STRING, BT_CONST_STRING) 213DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_CONST_STRING, 214 BT_INT, BT_CONST_STRING, BT_CONST_STRING) 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, 218 BT_SIZE, BT_CONST_STRING, BT_CONST_STRING) 219DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_INT, 220 BT_STRING, BT_CONST_STRING, BT_INT) 221DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_SIZE, 222 BT_STRING, BT_CONST_STRING, BT_SIZE) 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) 227DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTRMODE_PTR, 228 BT_VOID, BT_PTRMODE, BT_PTR) 229DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VALIST_REF_VALIST_ARG, 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) 235DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_SIZE, 236 BT_VOID, BT_PTR, BT_SIZE) 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) 241DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE, 242 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE) 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) 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) 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) 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) 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) 277DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_VALIST_ARG, 278 BT_INT, BT_CONST_STRING, BT_VALIST_ARG) 279DEF_FUNCTION_TYPE_2 (BT_FN_PTR_SIZE_SIZE, 280 BT_PTR, BT_SIZE, BT_SIZE) 281DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT, 282 BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT) 283DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE, 284 BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE) 285DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, 286 BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE) 287DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_PTR, BT_VOID, BT_PTR, BT_PTR) 288DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING, 289 BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING) 290DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_PTR_INT, BT_SIZE, BT_CONST_PTR, BT_INT) 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) 295DEF_FUNCTION_TYPE_2 (BT_FN_I16_VPTR_I16, BT_I16, BT_VOLATILE_PTR, BT_I16) 296DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_LONGPTR_LONGPTR, 297 BT_BOOL, BT_PTR_LONG, BT_PTR_LONG) 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) 303DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_CONST_PTR_SIZE, 304 BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE) 305DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_PTR_CONST_PTR_SIZE, 306 BT_INT, BT_CONST_PTR, BT_CONST_PTR, BT_SIZE) 307DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_INT_SIZE, 308 BT_PTR, BT_PTR, BT_INT, BT_SIZE) 309DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_INT_INT, 310 BT_VOID, BT_PTR, BT_INT, BT_INT) 311DEF_FUNCTION_TYPE_3 (BT_FN_VOID_CONST_PTR_PTR_SIZE, 312 BT_VOID, BT_CONST_PTR, BT_PTR, BT_SIZE) 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) 317DEF_FUNCTION_TYPE_3 (BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG, 318 BT_INT, BT_FILEPTR, BT_CONST_STRING, BT_VALIST_ARG) 319DEF_FUNCTION_TYPE_3 (BT_FN_STRING_CONST_STRING_CONST_STRING_INT, 320 BT_STRING, BT_CONST_STRING, BT_CONST_STRING, BT_INT) 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) 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) 339DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_PTR_PTR, BT_VOID, BT_PTR, BT_PTR, BT_PTR) 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) 342DEF_FUNCTION_TYPE_3 (BT_FN_INT_INT_CONST_STRING_VALIST_ARG, 343 BT_INT, BT_INT, BT_CONST_STRING, BT_VALIST_ARG) 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) 352DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I16_I16, BT_BOOL, BT_VOLATILE_PTR, 353 BT_I16, BT_I16) 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) 358DEF_FUNCTION_TYPE_3 (BT_FN_I16_VPTR_I16_I16, BT_I16, BT_VOLATILE_PTR, 359 BT_I16, BT_I16) 360DEF_FUNCTION_TYPE_3 (BT_FN_VOID_OMPFN_PTR_UINT, BT_VOID, BT_PTR_FN_VOID_PTR, 361 BT_PTR, BT_UINT) 362 363DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR, 364 BT_SIZE, BT_CONST_PTR, BT_SIZE, BT_SIZE, BT_FILEPTR) 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) 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) 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) 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) 379 380DEF_FUNCTION_TYPE_5 (BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG, 381 BT_INT, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING, 382 BT_VALIST_ARG) 383DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR, 384 BT_BOOL, BT_LONG, BT_LONG, BT_LONG, 385 BT_PTR_LONG, BT_PTR_LONG) 386 387DEF_FUNCTION_TYPE_6 (BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG, 388 BT_INT, BT_STRING, BT_SIZE, BT_INT, BT_SIZE, 389 BT_CONST_STRING, BT_VALIST_ARG) 390DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR, 391 BT_BOOL, BT_LONG, BT_LONG, BT_LONG, BT_LONG, 392 BT_PTR_LONG, BT_PTR_LONG) 393DEF_FUNCTION_TYPE_6 (BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG, 394 BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT, 395 BT_LONG, BT_LONG, BT_LONG) 396 397DEF_FUNCTION_TYPE_7 (BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG, 398 BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT, 399 BT_LONG, BT_LONG, BT_LONG, BT_LONG) 400 401DEF_FUNCTION_TYPE_VAR_0 (BT_FN_VOID_VAR, BT_VOID) 402DEF_FUNCTION_TYPE_VAR_0 (BT_FN_INT_VAR, BT_INT) 403DEF_FUNCTION_TYPE_VAR_0 (BT_FN_PTR_VAR, BT_PTR) 404 405DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_VALIST_REF_VAR, 406 BT_VOID, BT_VALIST_REF) 407DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_CONST_PTR_VAR, 408 BT_VOID, BT_CONST_PTR) 409DEF_FUNCTION_TYPE_VAR_1 (BT_FN_INT_CONST_STRING_VAR, 410 BT_INT, BT_CONST_STRING) 411 412DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_FILEPTR_CONST_STRING_VAR, 413 BT_INT, BT_FILEPTR, BT_CONST_STRING) 414DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_STRING_CONST_STRING_VAR, 415 BT_INT, BT_STRING, BT_CONST_STRING) 416DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_CONST_STRING_CONST_STRING_VAR, 417 BT_INT, BT_CONST_STRING, BT_CONST_STRING) 418DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_INT_CONST_STRING_VAR, 419 BT_INT, BT_INT, BT_CONST_STRING) 420 421DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_STRING_SIZE_CONST_STRING_VAR, 422 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING) 423DEF_FUNCTION_TYPE_VAR_3 (BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR, 424 BT_SSIZE, BT_STRING, BT_SIZE, BT_CONST_STRING) 425DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR, 426 BT_INT, BT_FILEPTR, BT_INT, BT_CONST_STRING) 427 428DEF_FUNCTION_TYPE_VAR_4 (BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR, 429 BT_INT, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING) 430 431DEF_FUNCTION_TYPE_VAR_5 (BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR, 432 BT_INT, BT_STRING, BT_SIZE, BT_INT, BT_SIZE, 433 BT_CONST_STRING) 434 435DEF_POINTER_TYPE (BT_PTR_FN_VOID_VAR, BT_FN_VOID_VAR) 436DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE, 437 BT_PTR, BT_PTR_FN_VOID_VAR, BT_PTR, BT_SIZE) 438 439