1/* Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 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 2, 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 COPYING. If not, write to the Free 18Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 1902110-1301, USA. */ 20 21/* This header provides a declarative way of describing the types that 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) 36 DEF_FUNCTION_TYPE_5 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5) 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) 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) 47 DEF_FUNCTION_TYPE_VAR_3 (ENUM, RETURN, ARG1, ARG2, ARG3) 48 DEF_FUNCTION_TYPE_VAR_4 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4) 49 DEF_FUNCTION_TYPE_VAR_4 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5) 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, ...)'. 62 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) 69DEF_PRIMITIVE_TYPE (BT_BOOL, boolean_type_node) 70DEF_PRIMITIVE_TYPE (BT_INT, integer_type_node) 71DEF_PRIMITIVE_TYPE (BT_UINT, unsigned_type_node) 72DEF_PRIMITIVE_TYPE (BT_LONG, long_integer_type_node) 73DEF_PRIMITIVE_TYPE (BT_ULONG, long_unsigned_type_node) 74DEF_PRIMITIVE_TYPE (BT_LONGLONG, long_long_integer_type_node) 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) 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