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