1/* Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 2 3This file is part of GCC. 4 5GCC is free software; you can redistribute it and/or modify it under 6the terms of the GNU General Public License as published by the Free 7Software Foundation; either version 2, or (at your option) any later 8version. 9 10GCC is distributed in the hope that it will be useful, but WITHOUT ANY 11WARRANTY; without even the implied warranty of MERCHANTABILITY or 12FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 13for more details. 14 15You should have received a copy of the GNU General Public License 16along with GCC; see the file COPYING. If not, write to the Free 17Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 1802110-1301, USA. */ 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 37 These macros describe function types. ENUM is as above. The 38 RETURN type is one of the enumerals already defined. ARG1, ARG2, 39 and ARG3 give the types of the arguments, similarly. 40 41 DEF_FUNCTION_TYPE_VAR_0 (ENUM, RETURN) 42 DEF_FUNCTION_TYPE_VAR_1 (ENUM, RETURN, ARG1) 43 DEF_FUNCTION_TYPE_VAR_2 (ENUM, RETURN, ARG1, ARG2) 44 DEF_FUNCTION_TYPE_VAR_3 (ENUM, RETURN, ARG1, ARG2, ARG3) 45 DEF_FUNCTION_TYPE_VAR_4 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4) 46 47 Similar, but for function types that take variable arguments. 48 For example: 49 50 DEF_FUNCTION_TYPE_1 (BT_INT_DOUBLE, BT_INT, BT_DOUBLE) 51 52 describes the type `int ()(double)', using the enumeral 53 BT_INT_DOUBLE, whereas: 54 55 DEF_FUNCTION_TYPE_VAR_1 (BT_INT_DOUBLE_VAR, BT_INT, BT_DOUBLE) 56 57 describes the type `int ()(double, ...)'. 58 59 DEF_POINTER_TYPE (ENUM, TYPE) 60 61 This macro describes a pointer type. ENUM is as above; TYPE is 62 the type pointed to. */ 63 64DEF_PRIMITIVE_TYPE (BT_VOID, void_type_node) 65DEF_PRIMITIVE_TYPE (BT_BOOL, boolean_type_node) 66DEF_PRIMITIVE_TYPE (BT_INT, integer_type_node) 67DEF_PRIMITIVE_TYPE (BT_UINT, unsigned_type_node) 68DEF_PRIMITIVE_TYPE (BT_LONG, long_integer_type_node) 69DEF_PRIMITIVE_TYPE (BT_ULONG, long_unsigned_type_node) 70DEF_PRIMITIVE_TYPE (BT_LONGLONG, long_long_integer_type_node) 71DEF_PRIMITIVE_TYPE (BT_ULONGLONG, long_long_unsigned_type_node) 72DEF_PRIMITIVE_TYPE (BT_INTMAX, intmax_type_node) 73DEF_PRIMITIVE_TYPE (BT_UINTMAX, uintmax_type_node) 74DEF_PRIMITIVE_TYPE (BT_WORD, (*lang_hooks.types.type_for_mode) (word_mode, 0)) 75DEF_PRIMITIVE_TYPE (BT_FLOAT, float_type_node) 76DEF_PRIMITIVE_TYPE (BT_DOUBLE, double_type_node) 77DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE, long_double_type_node) 78DEF_PRIMITIVE_TYPE (BT_COMPLEX_FLOAT, complex_float_type_node) 79DEF_PRIMITIVE_TYPE (BT_COMPLEX_DOUBLE, complex_double_type_node) 80DEF_PRIMITIVE_TYPE (BT_COMPLEX_LONGDOUBLE, complex_long_double_type_node) 81 82DEF_PRIMITIVE_TYPE (BT_PTR, ptr_type_node) 83DEF_PRIMITIVE_TYPE (BT_FILEPTR, fileptr_type_node) 84DEF_PRIMITIVE_TYPE (BT_CONST_PTR, const_ptr_type_node) 85DEF_PRIMITIVE_TYPE (BT_VOLATILE_PTR, 86 build_pointer_type 87 (build_qualified_type (void_type_node, 88 TYPE_QUAL_VOLATILE))) 89DEF_PRIMITIVE_TYPE (BT_PTRMODE, (*lang_hooks.types.type_for_mode)(ptr_mode, 0)) 90DEF_PRIMITIVE_TYPE (BT_INT_PTR, integer_ptr_type_node) 91DEF_PRIMITIVE_TYPE (BT_FLOAT_PTR, float_ptr_type_node) 92DEF_PRIMITIVE_TYPE (BT_DOUBLE_PTR, double_ptr_type_node) 93DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE_PTR, long_double_ptr_type_node) 94DEF_PRIMITIVE_TYPE (BT_PID, pid_type_node) 95DEF_PRIMITIVE_TYPE (BT_SIZE, size_type_node) 96DEF_PRIMITIVE_TYPE (BT_SSIZE, signed_size_type_node) 97DEF_PRIMITIVE_TYPE (BT_WINT, wint_type_node) 98DEF_PRIMITIVE_TYPE (BT_STRING, string_type_node) 99DEF_PRIMITIVE_TYPE (BT_CONST_STRING, const_string_type_node) 100 101DEF_PRIMITIVE_TYPE (BT_VALIST_REF, va_list_ref_type_node) 102DEF_PRIMITIVE_TYPE (BT_VALIST_ARG, va_list_arg_type_node) 103 104DEF_PRIMITIVE_TYPE (BT_I1, builtin_type_for_size (BITS_PER_UNIT*1, 1)) 105DEF_PRIMITIVE_TYPE (BT_I2, builtin_type_for_size (BITS_PER_UNIT*2, 1)) 106DEF_PRIMITIVE_TYPE (BT_I4, builtin_type_for_size (BITS_PER_UNIT*4, 1)) 107DEF_PRIMITIVE_TYPE (BT_I8, builtin_type_for_size (BITS_PER_UNIT*8, 1)) 108 109DEF_POINTER_TYPE (BT_PTR_CONST_STRING, BT_CONST_STRING) 110 111DEF_FUNCTION_TYPE_0 (BT_FN_VOID, BT_VOID) 112DEF_FUNCTION_TYPE_0 (BT_FN_PTR, BT_PTR) 113DEF_FUNCTION_TYPE_0 (BT_FN_PID, BT_PID) 114DEF_FUNCTION_TYPE_0 (BT_FN_UINT, BT_UINT) 115DEF_FUNCTION_TYPE_0 (BT_FN_FLOAT, BT_FLOAT) 116DEF_FUNCTION_TYPE_0 (BT_FN_DOUBLE, BT_DOUBLE) 117/* For "long double" we use LONGDOUBLE (not LONG_DOUBLE) to 118 distinguish it from two types in sequence, "long" followed by 119 "double". */ 120DEF_FUNCTION_TYPE_0 (BT_FN_LONGDOUBLE, BT_LONGDOUBLE) 121 122DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONG, BT_LONG, BT_LONG) 123DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGLONG, BT_LONGLONG, BT_LONGLONG) 124DEF_FUNCTION_TYPE_1 (BT_FN_INTMAX_INTMAX, BT_INTMAX, BT_INTMAX) 125DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_FLOAT, BT_FLOAT, BT_FLOAT) 126DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_DOUBLE, BT_DOUBLE, BT_DOUBLE) 127DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_LONGDOUBLE, 128 BT_LONGDOUBLE, BT_LONGDOUBLE) 129DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT, 130 BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT) 131DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE, 132 BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE) 133DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, 134 BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE) 135DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_COMPLEX_FLOAT, 136 BT_FLOAT, BT_COMPLEX_FLOAT) 137DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_COMPLEX_DOUBLE, 138 BT_DOUBLE, BT_COMPLEX_DOUBLE) 139DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_COMPLEX_LONGDOUBLE, 140 BT_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE) 141DEF_FUNCTION_TYPE_1 (BT_FN_PTR_UINT, BT_PTR, BT_UINT) 142DEF_FUNCTION_TYPE_1 (BT_FN_PTR_SIZE, BT_PTR, BT_SIZE) 143DEF_FUNCTION_TYPE_1 (BT_FN_INT_INT, BT_INT, BT_INT) 144DEF_FUNCTION_TYPE_1 (BT_FN_INT_UINT, BT_INT, BT_UINT) 145DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONG, BT_INT, BT_LONG) 146DEF_FUNCTION_TYPE_1 (BT_FN_INT_ULONG, BT_INT, BT_ULONG) 147DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGLONG, BT_INT, BT_LONGLONG) 148DEF_FUNCTION_TYPE_1 (BT_FN_INT_ULONGLONG, BT_INT, BT_ULONGLONG) 149DEF_FUNCTION_TYPE_1 (BT_FN_INT_INTMAX, BT_INT, BT_INTMAX) 150DEF_FUNCTION_TYPE_1 (BT_FN_INT_UINTMAX, BT_INT, BT_UINTMAX) 151DEF_FUNCTION_TYPE_1 (BT_FN_INT_PTR, BT_INT, BT_PTR) 152DEF_FUNCTION_TYPE_1 (BT_FN_INT_FLOAT, BT_INT, BT_FLOAT) 153DEF_FUNCTION_TYPE_1 (BT_FN_INT_DOUBLE, BT_INT, BT_DOUBLE) 154DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE) 155DEF_FUNCTION_TYPE_1 (BT_FN_LONG_FLOAT, BT_LONG, BT_FLOAT) 156DEF_FUNCTION_TYPE_1 (BT_FN_LONG_DOUBLE, BT_LONG, BT_DOUBLE) 157DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONGDOUBLE, BT_LONG, BT_LONGDOUBLE) 158DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_FLOAT, BT_LONGLONG, BT_FLOAT) 159DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_DOUBLE, BT_LONGLONG, BT_DOUBLE) 160DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGDOUBLE, BT_LONGLONG, BT_LONGDOUBLE) 161DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTR, BT_VOID, BT_PTR) 162DEF_FUNCTION_TYPE_1 (BT_FN_SIZE_CONST_STRING, BT_SIZE, BT_CONST_STRING) 163DEF_FUNCTION_TYPE_1 (BT_FN_INT_CONST_STRING, BT_INT, BT_CONST_STRING) 164DEF_FUNCTION_TYPE_1 (BT_FN_PTR_PTR, BT_PTR, BT_PTR) 165DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VALIST_REF, BT_VOID, BT_VALIST_REF) 166DEF_FUNCTION_TYPE_1 (BT_FN_VOID_INT, BT_VOID, BT_INT) 167DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_CONST_STRING, BT_FLOAT, BT_CONST_STRING) 168DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_CONST_STRING, BT_DOUBLE, BT_CONST_STRING) 169DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_CONST_STRING, 170 BT_LONGDOUBLE, BT_CONST_STRING) 171DEF_FUNCTION_TYPE_1 (BT_FN_STRING_CONST_STRING, BT_STRING, BT_CONST_STRING) 172DEF_FUNCTION_TYPE_1 (BT_FN_WORD_PTR, BT_WORD, BT_PTR) 173DEF_FUNCTION_TYPE_1 (BT_FN_INT_WINT, BT_INT, BT_WINT) 174DEF_FUNCTION_TYPE_1 (BT_FN_WINT_WINT, BT_WINT, BT_WINT) 175DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VPTR, BT_VOID, BT_VOLATILE_PTR) 176 177DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_INT, BT_VOID, BT_PTR, BT_INT) 178DEF_FUNCTION_TYPE_2 (BT_FN_STRING_STRING_CONST_STRING, 179 BT_STRING, BT_STRING, BT_CONST_STRING) 180DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_CONST_STRING, 181 BT_INT, BT_CONST_STRING, BT_CONST_STRING) 182DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_CONST_STRING, 183 BT_STRING, BT_CONST_STRING, BT_CONST_STRING) 184DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_STRING_CONST_STRING, 185 BT_SIZE, BT_CONST_STRING, BT_CONST_STRING) 186DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_INT, 187 BT_STRING, BT_CONST_STRING, BT_INT) 188DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_SIZE, 189 BT_STRING, BT_CONST_STRING, BT_SIZE) 190DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_FILEPTR, 191 BT_INT, BT_CONST_STRING, BT_FILEPTR) 192DEF_FUNCTION_TYPE_2 (BT_FN_INT_INT_FILEPTR, 193 BT_INT, BT_INT, BT_FILEPTR) 194DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTRMODE_PTR, 195 BT_VOID, BT_PTRMODE, BT_PTR) 196DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VALIST_REF_VALIST_ARG, 197 BT_VOID, BT_VALIST_REF, BT_VALIST_ARG) 198DEF_FUNCTION_TYPE_2 (BT_FN_LONG_LONG_LONG, 199 BT_LONG, BT_LONG, BT_LONG) 200DEF_FUNCTION_TYPE_2 (BT_FN_INT_PTR_CONST_STRING, 201 BT_INT, BT_PTR, BT_CONST_STRING) 202DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_SIZE, 203 BT_VOID, BT_PTR, BT_SIZE) 204DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOAT, 205 BT_FLOAT, BT_FLOAT, BT_FLOAT) 206DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLE, 207 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE) 208DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE, 209 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE) 210DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOATPTR, 211 BT_FLOAT, BT_FLOAT, BT_FLOAT_PTR) 212DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLEPTR, 213 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE_PTR) 214DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLEPTR, 215 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR) 216DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONGDOUBLE, 217 BT_FLOAT, BT_FLOAT, BT_LONGDOUBLE) 218DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONGDOUBLE, 219 BT_DOUBLE, BT_DOUBLE, BT_LONGDOUBLE) 220DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INT, 221 BT_FLOAT, BT_FLOAT, BT_INT) 222DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INT, 223 BT_DOUBLE, BT_DOUBLE, BT_INT) 224DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INT, 225 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT) 226DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INTPTR, 227 BT_FLOAT, BT_FLOAT, BT_INT_PTR) 228DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INTPTR, 229 BT_DOUBLE, BT_DOUBLE, BT_INT_PTR) 230DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR, 231 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR) 232DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_INT_FLOAT, 233 BT_FLOAT, BT_INT, BT_FLOAT) 234DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_INT_DOUBLE, 235 BT_DOUBLE, BT_INT, BT_DOUBLE) 236DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_INT_LONGDOUBLE, 237 BT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE) 238DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONG, 239 BT_FLOAT, BT_FLOAT, BT_LONG) 240DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONG, 241 BT_DOUBLE, BT_DOUBLE, BT_LONG) 242DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONG, 243 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONG) 244DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_VALIST_ARG, 245 BT_INT, BT_CONST_STRING, BT_VALIST_ARG) 246DEF_FUNCTION_TYPE_2 (BT_FN_PTR_SIZE_SIZE, 247 BT_PTR, BT_SIZE, BT_SIZE) 248DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT, 249 BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT) 250DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE, 251 BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE) 252DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, 253 BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE) 254DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_PTR, BT_VOID, BT_PTR, BT_PTR) 255DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING, 256 BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING) 257DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_PTR_INT, BT_SIZE, BT_CONST_PTR, BT_INT) 258DEF_FUNCTION_TYPE_2 (BT_FN_I1_VPTR_I1, BT_I1, BT_VOLATILE_PTR, BT_I1) 259DEF_FUNCTION_TYPE_2 (BT_FN_I2_VPTR_I2, BT_I2, BT_VOLATILE_PTR, BT_I2) 260DEF_FUNCTION_TYPE_2 (BT_FN_I4_VPTR_I4, BT_I4, BT_VOLATILE_PTR, BT_I4) 261DEF_FUNCTION_TYPE_2 (BT_FN_I8_VPTR_I8, BT_I8, BT_VOLATILE_PTR, BT_I8) 262 263DEF_FUNCTION_TYPE_3 (BT_FN_STRING_STRING_CONST_STRING_SIZE, 264 BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE) 265DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_SIZE, 266 BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_SIZE) 267DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_CONST_PTR_SIZE, 268 BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE) 269DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_PTR_CONST_PTR_SIZE, 270 BT_INT, BT_CONST_PTR, BT_CONST_PTR, BT_SIZE) 271DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_INT_SIZE, 272 BT_PTR, BT_PTR, BT_INT, BT_SIZE) 273DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_INT_INT, 274 BT_VOID, BT_PTR, BT_INT, BT_INT) 275DEF_FUNCTION_TYPE_3 (BT_FN_VOID_CONST_PTR_PTR_SIZE, 276 BT_VOID, BT_CONST_PTR, BT_PTR, BT_SIZE) 277DEF_FUNCTION_TYPE_3 (BT_FN_INT_STRING_CONST_STRING_VALIST_ARG, 278 BT_INT, BT_STRING, BT_CONST_STRING, BT_VALIST_ARG) 279DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG, 280 BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_VALIST_ARG) 281DEF_FUNCTION_TYPE_3 (BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG, 282 BT_INT, BT_FILEPTR, BT_CONST_STRING, BT_VALIST_ARG) 283DEF_FUNCTION_TYPE_3 (BT_FN_STRING_CONST_STRING_CONST_STRING_INT, 284 BT_STRING, BT_CONST_STRING, BT_CONST_STRING, BT_INT) 285DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_FLOAT, 286 BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_FLOAT) 287DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_DOUBLE, 288 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_DOUBLE) 289DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE, 290 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE) 291DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_INTPTR, 292 BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_INT_PTR) 293DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR, 294 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_INT_PTR) 295DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR, 296 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR) 297DEF_FUNCTION_TYPE_3 (BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR, 298 BT_VOID, BT_FLOAT, BT_FLOAT_PTR, BT_FLOAT_PTR) 299DEF_FUNCTION_TYPE_3 (BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR, 300 BT_VOID, BT_DOUBLE, BT_DOUBLE_PTR, BT_DOUBLE_PTR) 301DEF_FUNCTION_TYPE_3 (BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR, 302 BT_VOID, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR, BT_LONGDOUBLE_PTR) 303DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_PTR_PTR, BT_VOID, BT_PTR, BT_PTR, BT_PTR) 304DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING, 305 BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING, BT_PTR_CONST_STRING) 306DEF_FUNCTION_TYPE_3 (BT_FN_INT_INT_CONST_STRING_VALIST_ARG, 307 BT_INT, BT_INT, BT_CONST_STRING, BT_VALIST_ARG) 308DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I1_I1, BT_BOOL, BT_VOLATILE_PTR, 309 BT_I1, BT_I1) 310DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I2_I2, BT_BOOL, BT_VOLATILE_PTR, 311 BT_I2, BT_I2) 312DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I4_I4, BT_BOOL, BT_VOLATILE_PTR, 313 BT_I4, BT_I4) 314DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I8_I8, BT_BOOL, BT_VOLATILE_PTR, 315 BT_I8, BT_I8) 316DEF_FUNCTION_TYPE_3 (BT_FN_I1_VPTR_I1_I1, BT_I1, BT_VOLATILE_PTR, BT_I1, BT_I1) 317DEF_FUNCTION_TYPE_3 (BT_FN_I2_VPTR_I2_I2, BT_I2, BT_VOLATILE_PTR, BT_I2, BT_I2) 318DEF_FUNCTION_TYPE_3 (BT_FN_I4_VPTR_I4_I4, BT_I4, BT_VOLATILE_PTR, BT_I4, BT_I4) 319DEF_FUNCTION_TYPE_3 (BT_FN_I8_VPTR_I8_I8, BT_I8, BT_VOLATILE_PTR, BT_I8, BT_I8) 320 321DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR, 322 BT_SIZE, BT_CONST_PTR, BT_SIZE, BT_SIZE, BT_FILEPTR) 323DEF_FUNCTION_TYPE_4 (BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG, 324 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_VALIST_ARG) 325DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR, 326 BT_SIZE, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_CONST_PTR) 327DEF_FUNCTION_TYPE_4 (BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, 328 BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE, BT_SIZE) 329DEF_FUNCTION_TYPE_4 (BT_FN_PTR_PTR_INT_SIZE_SIZE, 330 BT_PTR, BT_PTR, BT_INT, BT_SIZE, BT_SIZE) 331DEF_FUNCTION_TYPE_4 (BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE, 332 BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE, BT_SIZE) 333DEF_FUNCTION_TYPE_4 (BT_FN_INT_FILEPTR_INT_CONST_STRING_VALIST_ARG, 334 BT_INT, BT_FILEPTR, BT_INT, BT_CONST_STRING, BT_VALIST_ARG) 335 336DEF_FUNCTION_TYPE_5 (BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG, 337 BT_INT, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING, 338 BT_VALIST_ARG) 339 340DEF_FUNCTION_TYPE_6 (BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG, 341 BT_INT, BT_STRING, BT_SIZE, BT_INT, BT_SIZE, 342 BT_CONST_STRING, BT_VALIST_ARG) 343 344DEF_FUNCTION_TYPE_VAR_0 (BT_FN_VOID_VAR, BT_VOID) 345DEF_FUNCTION_TYPE_VAR_0 (BT_FN_INT_VAR, BT_INT) 346DEF_FUNCTION_TYPE_VAR_0 (BT_FN_PTR_VAR, BT_PTR) 347 348DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_VALIST_REF_VAR, 349 BT_VOID, BT_VALIST_REF) 350DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_CONST_PTR_VAR, 351 BT_VOID, BT_CONST_PTR) 352DEF_FUNCTION_TYPE_VAR_1 (BT_FN_INT_CONST_STRING_VAR, 353 BT_INT, BT_CONST_STRING) 354 355DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_FILEPTR_CONST_STRING_VAR, 356 BT_INT, BT_FILEPTR, BT_CONST_STRING) 357DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_STRING_CONST_STRING_VAR, 358 BT_INT, BT_STRING, BT_CONST_STRING) 359DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_CONST_STRING_CONST_STRING_VAR, 360 BT_INT, BT_CONST_STRING, BT_CONST_STRING) 361DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_INT_CONST_STRING_VAR, 362 BT_INT, BT_INT, BT_CONST_STRING) 363 364DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_STRING_SIZE_CONST_STRING_VAR, 365 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING) 366DEF_FUNCTION_TYPE_VAR_3 (BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR, 367 BT_SSIZE, BT_STRING, BT_SIZE, BT_CONST_STRING) 368DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR, 369 BT_INT, BT_FILEPTR, BT_INT, BT_CONST_STRING) 370 371DEF_FUNCTION_TYPE_VAR_4 (BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR, 372 BT_INT, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING) 373 374DEF_FUNCTION_TYPE_VAR_5 (BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR, 375 BT_INT, BT_STRING, BT_SIZE, BT_INT, BT_SIZE, 376 BT_CONST_STRING) 377 378DEF_POINTER_TYPE (BT_PTR_FN_VOID_VAR, BT_FN_VOID_VAR) 379DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE, 380 BT_PTR, BT_PTR_FN_VOID_VAR, BT_PTR, BT_SIZE) 381