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_UINT32, uint32_type_node) 79DEF_PRIMITIVE_TYPE (BT_UINT64, uint64_type_node) 80DEF_PRIMITIVE_TYPE (BT_WORD, (*lang_hooks.types.type_for_mode) (word_mode, 0)) 81DEF_PRIMITIVE_TYPE (BT_FLOAT, float_type_node) 82DEF_PRIMITIVE_TYPE (BT_DOUBLE, double_type_node) 83DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE, long_double_type_node) 84DEF_PRIMITIVE_TYPE (BT_COMPLEX_FLOAT, complex_float_type_node) 85DEF_PRIMITIVE_TYPE (BT_COMPLEX_DOUBLE, complex_double_type_node) 86DEF_PRIMITIVE_TYPE (BT_COMPLEX_LONGDOUBLE, complex_long_double_type_node) 87 88DEF_PRIMITIVE_TYPE (BT_PTR, ptr_type_node) 89DEF_PRIMITIVE_TYPE (BT_FILEPTR, fileptr_type_node) 90DEF_PRIMITIVE_TYPE (BT_CONST_PTR, const_ptr_type_node) 91DEF_PRIMITIVE_TYPE (BT_VOLATILE_PTR, 92 build_pointer_type 93 (build_qualified_type (void_type_node, 94 TYPE_QUAL_VOLATILE))) 95DEF_PRIMITIVE_TYPE (BT_PTRMODE, (*lang_hooks.types.type_for_mode)(ptr_mode, 0)) 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) 100DEF_PRIMITIVE_TYPE (BT_PID, pid_type_node) 101DEF_PRIMITIVE_TYPE (BT_SIZE, size_type_node) 102DEF_PRIMITIVE_TYPE (BT_SSIZE, signed_size_type_node) 103DEF_PRIMITIVE_TYPE (BT_WINT, wint_type_node) 104DEF_PRIMITIVE_TYPE (BT_STRING, string_type_node) 105DEF_PRIMITIVE_TYPE (BT_CONST_STRING, const_string_type_node) 106 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 114DEF_PRIMITIVE_TYPE (BT_VALIST_REF, va_list_ref_type_node) 115DEF_PRIMITIVE_TYPE (BT_VALIST_ARG, va_list_arg_type_node) 116 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)) 121DEF_PRIMITIVE_TYPE (BT_I16, builtin_type_for_size (BITS_PER_UNIT*16, 1)) 122 123DEF_POINTER_TYPE (BT_PTR_CONST_STRING, BT_CONST_STRING) 124DEF_POINTER_TYPE (BT_PTR_LONG, BT_LONG) 125DEF_POINTER_TYPE (BT_PTR_PTR, BT_PTR) 126 127DEF_FUNCTION_TYPE_0 (BT_FN_VOID, BT_VOID) 128DEF_FUNCTION_TYPE_0 (BT_FN_BOOL, BT_BOOL) 129DEF_FUNCTION_TYPE_0 (BT_FN_PTR, BT_PTR) 130DEF_FUNCTION_TYPE_0 (BT_FN_PID, BT_PID) 131DEF_FUNCTION_TYPE_0 (BT_FN_INT, BT_INT) 132DEF_FUNCTION_TYPE_0 (BT_FN_UINT, BT_UINT) 133DEF_FUNCTION_TYPE_0 (BT_FN_FLOAT, BT_FLOAT) 134DEF_FUNCTION_TYPE_0 (BT_FN_DOUBLE, BT_DOUBLE) 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) 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) 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) 148DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_LONGDOUBLE, 149 BT_LONGDOUBLE, BT_LONGDOUBLE) 150DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT, 151 BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT) 152DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE, 153 BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE) 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) 158DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_COMPLEX_DOUBLE, 159 BT_DOUBLE, BT_COMPLEX_DOUBLE) 160DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_COMPLEX_LONGDOUBLE, 161 BT_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE) 162DEF_FUNCTION_TYPE_1 (BT_FN_PTR_UINT, BT_PTR, BT_UINT) 163DEF_FUNCTION_TYPE_1 (BT_FN_PTR_SIZE, BT_PTR, BT_SIZE) 164DEF_FUNCTION_TYPE_1 (BT_FN_INT_INT, BT_INT, BT_INT) 165DEF_FUNCTION_TYPE_1 (BT_FN_INT_UINT, BT_INT, BT_UINT) 166DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONG, BT_INT, BT_LONG) 167DEF_FUNCTION_TYPE_1 (BT_FN_INT_ULONG, BT_INT, BT_ULONG) 168DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGLONG, BT_INT, BT_LONGLONG) 169DEF_FUNCTION_TYPE_1 (BT_FN_INT_ULONGLONG, BT_INT, BT_ULONGLONG) 170DEF_FUNCTION_TYPE_1 (BT_FN_INT_INTMAX, BT_INT, BT_INTMAX) 171DEF_FUNCTION_TYPE_1 (BT_FN_INT_UINTMAX, BT_INT, BT_UINTMAX) 172DEF_FUNCTION_TYPE_1 (BT_FN_INT_PTR, BT_INT, BT_PTR) 173DEF_FUNCTION_TYPE_1 (BT_FN_INT_FLOAT, BT_INT, BT_FLOAT) 174DEF_FUNCTION_TYPE_1 (BT_FN_INT_DOUBLE, BT_INT, BT_DOUBLE) 175DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE) 176DEF_FUNCTION_TYPE_1 (BT_FN_INT_DFLOAT32, BT_INT, BT_DFLOAT32) 177DEF_FUNCTION_TYPE_1 (BT_FN_INT_DFLOAT64, BT_INT, BT_DFLOAT64) 178DEF_FUNCTION_TYPE_1 (BT_FN_INT_DFLOAT128, BT_INT, BT_DFLOAT128) 179DEF_FUNCTION_TYPE_1 (BT_FN_LONG_FLOAT, BT_LONG, BT_FLOAT) 180DEF_FUNCTION_TYPE_1 (BT_FN_LONG_DOUBLE, BT_LONG, BT_DOUBLE) 181DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONGDOUBLE, BT_LONG, BT_LONGDOUBLE) 182DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_FLOAT, BT_LONGLONG, BT_FLOAT) 183DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_DOUBLE, BT_LONGLONG, BT_DOUBLE) 184DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGDOUBLE, BT_LONGLONG, BT_LONGDOUBLE) 185DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTR, BT_VOID, BT_PTR) 186DEF_FUNCTION_TYPE_1 (BT_FN_SIZE_CONST_STRING, BT_SIZE, BT_CONST_STRING) 187DEF_FUNCTION_TYPE_1 (BT_FN_INT_CONST_STRING, BT_INT, BT_CONST_STRING) 188DEF_FUNCTION_TYPE_1 (BT_FN_PTR_PTR, BT_PTR, BT_PTR) 189DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VALIST_REF, BT_VOID, BT_VALIST_REF) 190DEF_FUNCTION_TYPE_1 (BT_FN_VOID_INT, BT_VOID, BT_INT) 191DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_CONST_STRING, BT_FLOAT, BT_CONST_STRING) 192DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_CONST_STRING, BT_DOUBLE, BT_CONST_STRING) 193DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_CONST_STRING, 194 BT_LONGDOUBLE, BT_CONST_STRING) 195DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT32_CONST_STRING, BT_DFLOAT32, BT_CONST_STRING) 196DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT64_CONST_STRING, BT_DFLOAT64, BT_CONST_STRING) 197DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT128_CONST_STRING, 198 BT_DFLOAT128, BT_CONST_STRING) 199DEF_FUNCTION_TYPE_1 (BT_FN_STRING_CONST_STRING, BT_STRING, BT_CONST_STRING) 200DEF_FUNCTION_TYPE_1 (BT_FN_WORD_PTR, BT_WORD, BT_PTR) 201DEF_FUNCTION_TYPE_1 (BT_FN_INT_WINT, BT_INT, BT_WINT) 202DEF_FUNCTION_TYPE_1 (BT_FN_WINT_WINT, BT_WINT, BT_WINT) 203DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT32_DFLOAT32, BT_DFLOAT32, BT_DFLOAT32) 204DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT64_DFLOAT64, BT_DFLOAT64, BT_DFLOAT64) 205DEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT128_DFLOAT128, BT_DFLOAT128, BT_DFLOAT128) 206DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VPTR, BT_VOID, BT_VOLATILE_PTR) 207DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTRPTR, BT_VOID, BT_PTR_PTR) 208DEF_FUNCTION_TYPE_1 (BT_FN_UINT_UINT, BT_UINT, BT_UINT) 209DEF_FUNCTION_TYPE_1 (BT_FN_ULONG_ULONG, BT_ULONG, BT_ULONG) 210DEF_FUNCTION_TYPE_1 (BT_FN_ULONGLONG_ULONGLONG, BT_ULONGLONG, BT_ULONGLONG) 211DEF_FUNCTION_TYPE_1 (BT_FN_UINT32_UINT32, BT_UINT32, BT_UINT32) 212DEF_FUNCTION_TYPE_1 (BT_FN_UINT64_UINT64, BT_UINT64, BT_UINT64) 213 214DEF_POINTER_TYPE (BT_PTR_FN_VOID_PTR, BT_FN_VOID_PTR) 215 216DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_INT, BT_VOID, BT_PTR, BT_INT) 217DEF_FUNCTION_TYPE_2 (BT_FN_STRING_STRING_CONST_STRING, 218 BT_STRING, BT_STRING, BT_CONST_STRING) 219DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_CONST_STRING, 220 BT_INT, BT_CONST_STRING, BT_CONST_STRING) 221DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_CONST_STRING, 222 BT_STRING, BT_CONST_STRING, BT_CONST_STRING) 223DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_STRING_CONST_STRING, 224 BT_SIZE, BT_CONST_STRING, BT_CONST_STRING) 225DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_INT, 226 BT_STRING, BT_CONST_STRING, BT_INT) 227DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_SIZE, 228 BT_STRING, BT_CONST_STRING, BT_SIZE) 229DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_FILEPTR, 230 BT_INT, BT_CONST_STRING, BT_FILEPTR) 231DEF_FUNCTION_TYPE_2 (BT_FN_INT_INT_FILEPTR, 232 BT_INT, BT_INT, BT_FILEPTR) 233DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTRMODE_PTR, 234 BT_VOID, BT_PTRMODE, BT_PTR) 235DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VALIST_REF_VALIST_ARG, 236 BT_VOID, BT_VALIST_REF, BT_VALIST_ARG) 237DEF_FUNCTION_TYPE_2 (BT_FN_LONG_LONG_LONG, 238 BT_LONG, BT_LONG, BT_LONG) 239DEF_FUNCTION_TYPE_2 (BT_FN_INT_PTR_CONST_STRING, 240 BT_INT, BT_PTR, BT_CONST_STRING) 241DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_SIZE, 242 BT_VOID, BT_PTR, BT_SIZE) 243DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOAT, 244 BT_FLOAT, BT_FLOAT, BT_FLOAT) 245DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLE, 246 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE) 247DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE, 248 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE) 249DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOATPTR, 250 BT_FLOAT, BT_FLOAT, BT_FLOAT_PTR) 251DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLEPTR, 252 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE_PTR) 253DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLEPTR, 254 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR) 255DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONGDOUBLE, 256 BT_FLOAT, BT_FLOAT, BT_LONGDOUBLE) 257DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONGDOUBLE, 258 BT_DOUBLE, BT_DOUBLE, BT_LONGDOUBLE) 259DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INT, 260 BT_FLOAT, BT_FLOAT, BT_INT) 261DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INT, 262 BT_DOUBLE, BT_DOUBLE, BT_INT) 263DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INT, 264 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT) 265DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INTPTR, 266 BT_FLOAT, BT_FLOAT, BT_INT_PTR) 267DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INTPTR, 268 BT_DOUBLE, BT_DOUBLE, BT_INT_PTR) 269DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR, 270 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR) 271DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_INT_FLOAT, 272 BT_FLOAT, BT_INT, BT_FLOAT) 273DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_INT_DOUBLE, 274 BT_DOUBLE, BT_INT, BT_DOUBLE) 275DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_INT_LONGDOUBLE, 276 BT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE) 277DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONG, 278 BT_FLOAT, BT_FLOAT, BT_LONG) 279DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONG, 280 BT_DOUBLE, BT_DOUBLE, BT_LONG) 281DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONG, 282 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONG) 283DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_VALIST_ARG, 284 BT_INT, BT_CONST_STRING, BT_VALIST_ARG) 285DEF_FUNCTION_TYPE_2 (BT_FN_PTR_SIZE_SIZE, 286 BT_PTR, BT_SIZE, BT_SIZE) 287DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT, 288 BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT) 289DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE, 290 BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE) 291DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, 292 BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE) 293DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_PTR, BT_VOID, BT_PTR, BT_PTR) 294DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING, 295 BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING) 296DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_PTR_INT, BT_SIZE, BT_CONST_PTR, BT_INT) 297DEF_FUNCTION_TYPE_2 (BT_FN_I1_VPTR_I1, BT_I1, BT_VOLATILE_PTR, BT_I1) 298DEF_FUNCTION_TYPE_2 (BT_FN_I2_VPTR_I2, BT_I2, BT_VOLATILE_PTR, BT_I2) 299DEF_FUNCTION_TYPE_2 (BT_FN_I4_VPTR_I4, BT_I4, BT_VOLATILE_PTR, BT_I4) 300DEF_FUNCTION_TYPE_2 (BT_FN_I8_VPTR_I8, BT_I8, BT_VOLATILE_PTR, BT_I8) 301DEF_FUNCTION_TYPE_2 (BT_FN_I16_VPTR_I16, BT_I16, BT_VOLATILE_PTR, BT_I16) 302DEF_FUNCTION_TYPE_2 (BT_FN_BOOL_LONGPTR_LONGPTR, 303 BT_BOOL, BT_PTR_LONG, BT_PTR_LONG) 304 305DEF_FUNCTION_TYPE_3 (BT_FN_STRING_STRING_CONST_STRING_SIZE, 306 BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE) 307DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_SIZE, 308 BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_SIZE) 309DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_CONST_PTR_SIZE, 310 BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE) 311DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_PTR_CONST_PTR_SIZE, 312 BT_INT, BT_CONST_PTR, BT_CONST_PTR, BT_SIZE) 313DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_INT_SIZE, 314 BT_PTR, BT_PTR, BT_INT, BT_SIZE) 315DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_INT_INT, 316 BT_VOID, BT_PTR, BT_INT, BT_INT) 317DEF_FUNCTION_TYPE_3 (BT_FN_VOID_CONST_PTR_PTR_SIZE, 318 BT_VOID, BT_CONST_PTR, BT_PTR, BT_SIZE) 319DEF_FUNCTION_TYPE_3 (BT_FN_INT_STRING_CONST_STRING_VALIST_ARG, 320 BT_INT, BT_STRING, BT_CONST_STRING, BT_VALIST_ARG) 321DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG, 322 BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_VALIST_ARG) 323DEF_FUNCTION_TYPE_3 (BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG, 324 BT_INT, BT_FILEPTR, BT_CONST_STRING, BT_VALIST_ARG) 325DEF_FUNCTION_TYPE_3 (BT_FN_STRING_CONST_STRING_CONST_STRING_INT, 326 BT_STRING, BT_CONST_STRING, BT_CONST_STRING, BT_INT) 327DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_FLOAT, 328 BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_FLOAT) 329DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_DOUBLE, 330 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_DOUBLE) 331DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE, 332 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE) 333DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_INTPTR, 334 BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_INT_PTR) 335DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR, 336 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_INT_PTR) 337DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR, 338 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR) 339DEF_FUNCTION_TYPE_3 (BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR, 340 BT_VOID, BT_FLOAT, BT_FLOAT_PTR, BT_FLOAT_PTR) 341DEF_FUNCTION_TYPE_3 (BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR, 342 BT_VOID, BT_DOUBLE, BT_DOUBLE_PTR, BT_DOUBLE_PTR) 343DEF_FUNCTION_TYPE_3 (BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR, 344 BT_VOID, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR, BT_LONGDOUBLE_PTR) 345DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_PTR_PTR, BT_VOID, BT_PTR, BT_PTR, BT_PTR) 346DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING, 347 BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING, BT_PTR_CONST_STRING) 348DEF_FUNCTION_TYPE_3 (BT_FN_INT_INT_CONST_STRING_VALIST_ARG, 349 BT_INT, BT_INT, BT_CONST_STRING, BT_VALIST_ARG) 350DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I1_I1, BT_BOOL, BT_VOLATILE_PTR, 351 BT_I1, BT_I1) 352DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I2_I2, BT_BOOL, BT_VOLATILE_PTR, 353 BT_I2, BT_I2) 354DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I4_I4, BT_BOOL, BT_VOLATILE_PTR, 355 BT_I4, BT_I4) 356DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I8_I8, BT_BOOL, BT_VOLATILE_PTR, 357 BT_I8, BT_I8) 358DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I16_I16, BT_BOOL, BT_VOLATILE_PTR, 359 BT_I16, BT_I16) 360DEF_FUNCTION_TYPE_3 (BT_FN_I1_VPTR_I1_I1, BT_I1, BT_VOLATILE_PTR, BT_I1, BT_I1) 361DEF_FUNCTION_TYPE_3 (BT_FN_I2_VPTR_I2_I2, BT_I2, BT_VOLATILE_PTR, BT_I2, BT_I2) 362DEF_FUNCTION_TYPE_3 (BT_FN_I4_VPTR_I4_I4, BT_I4, BT_VOLATILE_PTR, BT_I4, BT_I4) 363DEF_FUNCTION_TYPE_3 (BT_FN_I8_VPTR_I8_I8, BT_I8, BT_VOLATILE_PTR, BT_I8, BT_I8) 364DEF_FUNCTION_TYPE_3 (BT_FN_I16_VPTR_I16_I16, BT_I16, BT_VOLATILE_PTR, 365 BT_I16, BT_I16) 366DEF_FUNCTION_TYPE_3 (BT_FN_VOID_OMPFN_PTR_UINT, BT_VOID, BT_PTR_FN_VOID_PTR, 367 BT_PTR, BT_UINT) 368 369DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR, 370 BT_SIZE, BT_CONST_PTR, BT_SIZE, BT_SIZE, BT_FILEPTR) 371DEF_FUNCTION_TYPE_4 (BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG, 372 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_VALIST_ARG) 373DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR, 374 BT_SIZE, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_CONST_PTR) 375DEF_FUNCTION_TYPE_4 (BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, 376 BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE, BT_SIZE) 377DEF_FUNCTION_TYPE_4 (BT_FN_PTR_PTR_INT_SIZE_SIZE, 378 BT_PTR, BT_PTR, BT_INT, BT_SIZE, BT_SIZE) 379DEF_FUNCTION_TYPE_4 (BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE, 380 BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE, BT_SIZE) 381DEF_FUNCTION_TYPE_4 (BT_FN_INT_FILEPTR_INT_CONST_STRING_VALIST_ARG, 382 BT_INT, BT_FILEPTR, BT_INT, BT_CONST_STRING, BT_VALIST_ARG) 383DEF_FUNCTION_TYPE_4 (BT_FN_VOID_OMPFN_PTR_UINT_UINT, 384 BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT, BT_UINT) 385 386DEF_FUNCTION_TYPE_5 (BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG, 387 BT_INT, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING, 388 BT_VALIST_ARG) 389DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR, 390 BT_BOOL, BT_LONG, BT_LONG, BT_LONG, 391 BT_PTR_LONG, BT_PTR_LONG) 392 393DEF_FUNCTION_TYPE_6 (BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG, 394 BT_INT, BT_STRING, BT_SIZE, BT_INT, BT_SIZE, 395 BT_CONST_STRING, BT_VALIST_ARG) 396DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR, 397 BT_BOOL, BT_LONG, BT_LONG, BT_LONG, BT_LONG, 398 BT_PTR_LONG, BT_PTR_LONG) 399DEF_FUNCTION_TYPE_6 (BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG, 400 BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT, 401 BT_LONG, BT_LONG, BT_LONG) 402 403DEF_FUNCTION_TYPE_7 (BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG, 404 BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT, 405 BT_LONG, BT_LONG, BT_LONG, BT_LONG) 406 407DEF_FUNCTION_TYPE_VAR_0 (BT_FN_VOID_VAR, BT_VOID) 408DEF_FUNCTION_TYPE_VAR_0 (BT_FN_INT_VAR, BT_INT) 409DEF_FUNCTION_TYPE_VAR_0 (BT_FN_PTR_VAR, BT_PTR) 410 411DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_VALIST_REF_VAR, 412 BT_VOID, BT_VALIST_REF) 413DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_CONST_PTR_VAR, 414 BT_VOID, BT_CONST_PTR) 415DEF_FUNCTION_TYPE_VAR_1 (BT_FN_INT_CONST_STRING_VAR, 416 BT_INT, BT_CONST_STRING) 417 418DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_FILEPTR_CONST_STRING_VAR, 419 BT_INT, BT_FILEPTR, BT_CONST_STRING) 420DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_STRING_CONST_STRING_VAR, 421 BT_INT, BT_STRING, BT_CONST_STRING) 422DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_CONST_STRING_CONST_STRING_VAR, 423 BT_INT, BT_CONST_STRING, BT_CONST_STRING) 424DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_INT_CONST_STRING_VAR, 425 BT_INT, BT_INT, BT_CONST_STRING) 426 427DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_STRING_SIZE_CONST_STRING_VAR, 428 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING) 429DEF_FUNCTION_TYPE_VAR_3 (BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR, 430 BT_SSIZE, BT_STRING, BT_SIZE, BT_CONST_STRING) 431DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR, 432 BT_INT, BT_FILEPTR, BT_INT, BT_CONST_STRING) 433 434DEF_FUNCTION_TYPE_VAR_4 (BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR, 435 BT_INT, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING) 436 437DEF_FUNCTION_TYPE_VAR_5 (BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR, 438 BT_INT, BT_STRING, BT_SIZE, BT_INT, BT_SIZE, 439 BT_CONST_STRING) 440 441DEF_POINTER_TYPE (BT_PTR_FN_VOID_VAR, BT_FN_VOID_VAR) 442DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE, 443 BT_PTR, BT_PTR_FN_VOID_VAR, BT_PTR, BT_SIZE) 444