1169689Skan/* Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 2169689Skan Free Software Foundation, Inc. 390075Sobrien 490075SobrienThis file is part of GCC. 590075Sobrien 690075SobrienGCC is free software; you can redistribute it and/or modify it under 790075Sobrienthe terms of the GNU General Public License as published by the Free 890075SobrienSoftware Foundation; either version 2, or (at your option) any later 990075Sobrienversion. 1090075Sobrien 1190075SobrienGCC is distributed in the hope that it will be useful, but WITHOUT ANY 1290075SobrienWARRANTY; without even the implied warranty of MERCHANTABILITY or 1390075SobrienFITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 1490075Sobrienfor more details. 1590075Sobrien 1690075SobrienYou should have received a copy of the GNU General Public License 1790075Sobrienalong with GCC; see the file COPYING. If not, write to the Free 18169689SkanSoftware Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 19169689Skan02110-1301, USA. */ 2090075Sobrien 21169689Skan/* This header provides a declarative way of describing the types that 2290075Sobrien are used when declaring builtin functions. 2390075Sobrien 2490075Sobrien Before including this header, you must define the following macros: 2590075Sobrien 2690075Sobrien DEF_PRIMITIVE_TYPE (ENUM, TYPE) 2790075Sobrien 2890075Sobrien The ENUM is an identifier indicating which type is being defined. 2990075Sobrien TYPE is an expression for a `tree' that represents the type. 3090075Sobrien 3190075Sobrien DEF_FUNCTION_TYPE_0 (ENUM, RETURN) 3290075Sobrien DEF_FUNCTION_TYPE_1 (ENUM, RETURN, ARG1) 3390075Sobrien DEF_FUNCTION_TYPE_2 (ENUM, RETURN, ARG1, ARG2) 3490075Sobrien DEF_FUNCTION_TYPE_3 (ENUM, RETURN, ARG1, ARG2, ARG3) 3590075Sobrien DEF_FUNCTION_TYPE_4 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4) 36169689Skan DEF_FUNCTION_TYPE_5 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5) 37169689Skan DEF_FUNCTION_TYPE_6 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6) 38169689Skan DEF_FUNCTION_TYPE_7 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7) 3990075Sobrien 4090075Sobrien These macros describe function types. ENUM is as above. The 4190075Sobrien RETURN type is one of the enumerals already defined. ARG1, ARG2, 4290075Sobrien and ARG3 give the types of the arguments, similarly. 4390075Sobrien 4490075Sobrien DEF_FUNCTION_TYPE_VAR_0 (ENUM, RETURN) 4590075Sobrien DEF_FUNCTION_TYPE_VAR_1 (ENUM, RETURN, ARG1) 4690075Sobrien DEF_FUNCTION_TYPE_VAR_2 (ENUM, RETURN, ARG1, ARG2) 47117395Skan DEF_FUNCTION_TYPE_VAR_3 (ENUM, RETURN, ARG1, ARG2, ARG3) 48169689Skan DEF_FUNCTION_TYPE_VAR_4 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4) 49169689Skan DEF_FUNCTION_TYPE_VAR_4 (ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5) 5090075Sobrien 5190075Sobrien Similar, but for function types that take variable arguments. 5290075Sobrien For example: 5390075Sobrien 5490075Sobrien DEF_FUNCTION_TYPE_1 (BT_INT_DOUBLE, BT_INT, BT_DOUBLE) 5590075Sobrien 5690075Sobrien describes the type `int ()(double)', using the enumeral 5790075Sobrien BT_INT_DOUBLE, whereas: 5890075Sobrien 5990075Sobrien DEF_FUNCTION_TYPE_VAR_1 (BT_INT_DOUBLE_VAR, BT_INT, BT_DOUBLE) 6090075Sobrien 6190075Sobrien describes the type `int ()(double, ...)'. 62169689Skan 6390075Sobrien DEF_POINTER_TYPE (ENUM, TYPE) 6490075Sobrien 6590075Sobrien This macro describes a pointer type. ENUM is as above; TYPE is 6690075Sobrien the type pointed to. */ 6790075Sobrien 6890075SobrienDEF_PRIMITIVE_TYPE (BT_VOID, void_type_node) 69169689SkanDEF_PRIMITIVE_TYPE (BT_BOOL, boolean_type_node) 7090075SobrienDEF_PRIMITIVE_TYPE (BT_INT, integer_type_node) 71169689SkanDEF_PRIMITIVE_TYPE (BT_UINT, unsigned_type_node) 7290075SobrienDEF_PRIMITIVE_TYPE (BT_LONG, long_integer_type_node) 73169689SkanDEF_PRIMITIVE_TYPE (BT_ULONG, long_unsigned_type_node) 7490075SobrienDEF_PRIMITIVE_TYPE (BT_LONGLONG, long_long_integer_type_node) 75169689SkanDEF_PRIMITIVE_TYPE (BT_ULONGLONG, long_long_unsigned_type_node) 76169689SkanDEF_PRIMITIVE_TYPE (BT_INTMAX, intmax_type_node) 77169689SkanDEF_PRIMITIVE_TYPE (BT_UINTMAX, uintmax_type_node) 78259563SpfgDEF_PRIMITIVE_TYPE (BT_UINT32, uint32_type_node) 79259563SpfgDEF_PRIMITIVE_TYPE (BT_UINT64, uint64_type_node) 80132718SkanDEF_PRIMITIVE_TYPE (BT_WORD, (*lang_hooks.types.type_for_mode) (word_mode, 0)) 8190075SobrienDEF_PRIMITIVE_TYPE (BT_FLOAT, float_type_node) 8290075SobrienDEF_PRIMITIVE_TYPE (BT_DOUBLE, double_type_node) 83132718SkanDEF_PRIMITIVE_TYPE (BT_LONGDOUBLE, long_double_type_node) 8490075SobrienDEF_PRIMITIVE_TYPE (BT_COMPLEX_FLOAT, complex_float_type_node) 8590075SobrienDEF_PRIMITIVE_TYPE (BT_COMPLEX_DOUBLE, complex_double_type_node) 86132718SkanDEF_PRIMITIVE_TYPE (BT_COMPLEX_LONGDOUBLE, complex_long_double_type_node) 8790075Sobrien 8890075SobrienDEF_PRIMITIVE_TYPE (BT_PTR, ptr_type_node) 89169689SkanDEF_PRIMITIVE_TYPE (BT_FILEPTR, fileptr_type_node) 9090075SobrienDEF_PRIMITIVE_TYPE (BT_CONST_PTR, const_ptr_type_node) 91169689SkanDEF_PRIMITIVE_TYPE (BT_VOLATILE_PTR, 92169689Skan build_pointer_type 93169689Skan (build_qualified_type (void_type_node, 94169689Skan TYPE_QUAL_VOLATILE))) 95117395SkanDEF_PRIMITIVE_TYPE (BT_PTRMODE, (*lang_hooks.types.type_for_mode)(ptr_mode, 0)) 96132718SkanDEF_PRIMITIVE_TYPE (BT_INT_PTR, integer_ptr_type_node) 97132718SkanDEF_PRIMITIVE_TYPE (BT_FLOAT_PTR, float_ptr_type_node) 98132718SkanDEF_PRIMITIVE_TYPE (BT_DOUBLE_PTR, double_ptr_type_node) 99132718SkanDEF_PRIMITIVE_TYPE (BT_LONGDOUBLE_PTR, long_double_ptr_type_node) 100169689SkanDEF_PRIMITIVE_TYPE (BT_PID, pid_type_node) 101110611SkanDEF_PRIMITIVE_TYPE (BT_SIZE, size_type_node) 102132718SkanDEF_PRIMITIVE_TYPE (BT_SSIZE, signed_size_type_node) 103169689SkanDEF_PRIMITIVE_TYPE (BT_WINT, wint_type_node) 10490075SobrienDEF_PRIMITIVE_TYPE (BT_STRING, string_type_node) 10590075SobrienDEF_PRIMITIVE_TYPE (BT_CONST_STRING, const_string_type_node) 10690075Sobrien 107169689SkanDEF_PRIMITIVE_TYPE (BT_DFLOAT32, dfloat32_type_node) 108169689SkanDEF_PRIMITIVE_TYPE (BT_DFLOAT64, dfloat64_type_node) 109169689SkanDEF_PRIMITIVE_TYPE (BT_DFLOAT128, dfloat128_type_node) 110169689SkanDEF_PRIMITIVE_TYPE (BT_DFLOAT32_PTR, dfloat32_ptr_type_node) 111169689SkanDEF_PRIMITIVE_TYPE (BT_DFLOAT64_PTR, dfloat64_ptr_type_node) 112169689SkanDEF_PRIMITIVE_TYPE (BT_DFLOAT128_PTR, dfloat128_ptr_type_node) 113169689Skan 11490075SobrienDEF_PRIMITIVE_TYPE (BT_VALIST_REF, va_list_ref_type_node) 11590075SobrienDEF_PRIMITIVE_TYPE (BT_VALIST_ARG, va_list_arg_type_node) 11690075Sobrien 117169689SkanDEF_PRIMITIVE_TYPE (BT_I1, builtin_type_for_size (BITS_PER_UNIT*1, 1)) 118169689SkanDEF_PRIMITIVE_TYPE (BT_I2, builtin_type_for_size (BITS_PER_UNIT*2, 1)) 119169689SkanDEF_PRIMITIVE_TYPE (BT_I4, builtin_type_for_size (BITS_PER_UNIT*4, 1)) 120169689SkanDEF_PRIMITIVE_TYPE (BT_I8, builtin_type_for_size (BITS_PER_UNIT*8, 1)) 121169689SkanDEF_PRIMITIVE_TYPE (BT_I16, builtin_type_for_size (BITS_PER_UNIT*16, 1)) 122169689Skan 123169689SkanDEF_POINTER_TYPE (BT_PTR_CONST_STRING, BT_CONST_STRING) 124169689SkanDEF_POINTER_TYPE (BT_PTR_LONG, BT_LONG) 125169689SkanDEF_POINTER_TYPE (BT_PTR_PTR, BT_PTR) 126169689Skan 12790075SobrienDEF_FUNCTION_TYPE_0 (BT_FN_VOID, BT_VOID) 128169689SkanDEF_FUNCTION_TYPE_0 (BT_FN_BOOL, BT_BOOL) 12990075SobrienDEF_FUNCTION_TYPE_0 (BT_FN_PTR, BT_PTR) 130169689SkanDEF_FUNCTION_TYPE_0 (BT_FN_PID, BT_PID) 131169689SkanDEF_FUNCTION_TYPE_0 (BT_FN_INT, BT_INT) 132169689SkanDEF_FUNCTION_TYPE_0 (BT_FN_UINT, BT_UINT) 133117395SkanDEF_FUNCTION_TYPE_0 (BT_FN_FLOAT, BT_FLOAT) 134117395SkanDEF_FUNCTION_TYPE_0 (BT_FN_DOUBLE, BT_DOUBLE) 135132718Skan/* For "long double" we use LONGDOUBLE (not LONG_DOUBLE) to 136132718Skan distinguish it from two types in sequence, "long" followed by 137132718Skan "double". */ 138132718SkanDEF_FUNCTION_TYPE_0 (BT_FN_LONGDOUBLE, BT_LONGDOUBLE) 139169689SkanDEF_FUNCTION_TYPE_0 (BT_FN_DFLOAT32, BT_DFLOAT32) 140169689SkanDEF_FUNCTION_TYPE_0 (BT_FN_DFLOAT64, BT_DFLOAT64) 141169689SkanDEF_FUNCTION_TYPE_0 (BT_FN_DFLOAT128, BT_DFLOAT128) 14290075Sobrien 14390075SobrienDEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONG, BT_LONG, BT_LONG) 14490075SobrienDEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGLONG, BT_LONGLONG, BT_LONGLONG) 14590075SobrienDEF_FUNCTION_TYPE_1 (BT_FN_INTMAX_INTMAX, BT_INTMAX, BT_INTMAX) 14690075SobrienDEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_FLOAT, BT_FLOAT, BT_FLOAT) 14790075SobrienDEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_DOUBLE, BT_DOUBLE, BT_DOUBLE) 148169689SkanDEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_LONGDOUBLE, 149169689Skan BT_LONGDOUBLE, BT_LONGDOUBLE) 150169689SkanDEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT, 15190075Sobrien BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT) 152169689SkanDEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE, 15390075Sobrien BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE) 154169689SkanDEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, 155169689Skan BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE) 156169689SkanDEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_COMPLEX_FLOAT, 157169689Skan BT_FLOAT, BT_COMPLEX_FLOAT) 15890075SobrienDEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_COMPLEX_DOUBLE, 159169689Skan BT_DOUBLE, BT_COMPLEX_DOUBLE) 160132718SkanDEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_COMPLEX_LONGDOUBLE, 161169689Skan BT_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE) 162169689SkanDEF_FUNCTION_TYPE_1 (BT_FN_PTR_UINT, BT_PTR, BT_UINT) 16390075SobrienDEF_FUNCTION_TYPE_1 (BT_FN_PTR_SIZE, BT_PTR, BT_SIZE) 16490075SobrienDEF_FUNCTION_TYPE_1 (BT_FN_INT_INT, BT_INT, BT_INT) 165169689SkanDEF_FUNCTION_TYPE_1 (BT_FN_INT_UINT, BT_INT, BT_UINT) 166132718SkanDEF_FUNCTION_TYPE_1 (BT_FN_INT_LONG, BT_INT, BT_LONG) 167169689SkanDEF_FUNCTION_TYPE_1 (BT_FN_INT_ULONG, BT_INT, BT_ULONG) 168132718SkanDEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGLONG, BT_INT, BT_LONGLONG) 169169689SkanDEF_FUNCTION_TYPE_1 (BT_FN_INT_ULONGLONG, BT_INT, BT_ULONGLONG) 170169689SkanDEF_FUNCTION_TYPE_1 (BT_FN_INT_INTMAX, BT_INT, BT_INTMAX) 171169689SkanDEF_FUNCTION_TYPE_1 (BT_FN_INT_UINTMAX, BT_INT, BT_UINTMAX) 17290075SobrienDEF_FUNCTION_TYPE_1 (BT_FN_INT_PTR, BT_INT, BT_PTR) 173132718SkanDEF_FUNCTION_TYPE_1 (BT_FN_INT_FLOAT, BT_INT, BT_FLOAT) 174132718SkanDEF_FUNCTION_TYPE_1 (BT_FN_INT_DOUBLE, BT_INT, BT_DOUBLE) 175132718SkanDEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE) 176169689SkanDEF_FUNCTION_TYPE_1 (BT_FN_INT_DFLOAT32, BT_INT, BT_DFLOAT32) 177169689SkanDEF_FUNCTION_TYPE_1 (BT_FN_INT_DFLOAT64, BT_INT, BT_DFLOAT64) 178169689SkanDEF_FUNCTION_TYPE_1 (BT_FN_INT_DFLOAT128, BT_INT, BT_DFLOAT128) 179132718SkanDEF_FUNCTION_TYPE_1 (BT_FN_LONG_FLOAT, BT_LONG, BT_FLOAT) 180132718SkanDEF_FUNCTION_TYPE_1 (BT_FN_LONG_DOUBLE, BT_LONG, BT_DOUBLE) 181132718SkanDEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONGDOUBLE, BT_LONG, BT_LONGDOUBLE) 182132718SkanDEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_FLOAT, BT_LONGLONG, BT_FLOAT) 183132718SkanDEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_DOUBLE, BT_LONGLONG, BT_DOUBLE) 184132718SkanDEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGDOUBLE, BT_LONGLONG, BT_LONGDOUBLE) 18590075SobrienDEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTR, BT_VOID, BT_PTR) 186117395SkanDEF_FUNCTION_TYPE_1 (BT_FN_SIZE_CONST_STRING, BT_SIZE, BT_CONST_STRING) 18790075SobrienDEF_FUNCTION_TYPE_1 (BT_FN_INT_CONST_STRING, BT_INT, BT_CONST_STRING) 18890075SobrienDEF_FUNCTION_TYPE_1 (BT_FN_PTR_PTR, BT_PTR, BT_PTR) 18990075SobrienDEF_FUNCTION_TYPE_1 (BT_FN_VOID_VALIST_REF, BT_VOID, BT_VALIST_REF) 19090075SobrienDEF_FUNCTION_TYPE_1 (BT_FN_VOID_INT, BT_VOID, BT_INT) 191117395SkanDEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_CONST_STRING, BT_FLOAT, BT_CONST_STRING) 192117395SkanDEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_CONST_STRING, BT_DOUBLE, BT_CONST_STRING) 193132718SkanDEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_CONST_STRING, 194132718Skan BT_LONGDOUBLE, BT_CONST_STRING) 195169689SkanDEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT32_CONST_STRING, BT_DFLOAT32, BT_CONST_STRING) 196169689SkanDEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT64_CONST_STRING, BT_DFLOAT64, BT_CONST_STRING) 197169689SkanDEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT128_CONST_STRING, 198169689Skan BT_DFLOAT128, BT_CONST_STRING) 199132718SkanDEF_FUNCTION_TYPE_1 (BT_FN_STRING_CONST_STRING, BT_STRING, BT_CONST_STRING) 200132718SkanDEF_FUNCTION_TYPE_1 (BT_FN_WORD_PTR, BT_WORD, BT_PTR) 201169689SkanDEF_FUNCTION_TYPE_1 (BT_FN_INT_WINT, BT_INT, BT_WINT) 202169689SkanDEF_FUNCTION_TYPE_1 (BT_FN_WINT_WINT, BT_WINT, BT_WINT) 203169689SkanDEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT32_DFLOAT32, BT_DFLOAT32, BT_DFLOAT32) 204169689SkanDEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT64_DFLOAT64, BT_DFLOAT64, BT_DFLOAT64) 205169689SkanDEF_FUNCTION_TYPE_1 (BT_FN_DFLOAT128_DFLOAT128, BT_DFLOAT128, BT_DFLOAT128) 206169689SkanDEF_FUNCTION_TYPE_1 (BT_FN_VOID_VPTR, BT_VOID, BT_VOLATILE_PTR) 207169689SkanDEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTRPTR, BT_VOID, BT_PTR_PTR) 208169689SkanDEF_FUNCTION_TYPE_1 (BT_FN_UINT_UINT, BT_UINT, BT_UINT) 209259563SpfgDEF_FUNCTION_TYPE_1 (BT_FN_ULONG_ULONG, BT_ULONG, BT_ULONG) 210259563SpfgDEF_FUNCTION_TYPE_1 (BT_FN_ULONGLONG_ULONGLONG, BT_ULONGLONG, BT_ULONGLONG) 211259563SpfgDEF_FUNCTION_TYPE_1 (BT_FN_UINT32_UINT32, BT_UINT32, BT_UINT32) 212259563SpfgDEF_FUNCTION_TYPE_1 (BT_FN_UINT64_UINT64, BT_UINT64, BT_UINT64) 21390075Sobrien 214169689SkanDEF_POINTER_TYPE (BT_PTR_FN_VOID_PTR, BT_FN_VOID_PTR) 215169689Skan 21690075SobrienDEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_INT, BT_VOID, BT_PTR, BT_INT) 217169689SkanDEF_FUNCTION_TYPE_2 (BT_FN_STRING_STRING_CONST_STRING, 218169689Skan BT_STRING, BT_STRING, BT_CONST_STRING) 21990075SobrienDEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_CONST_STRING, 220169689Skan BT_INT, BT_CONST_STRING, BT_CONST_STRING) 22190075SobrienDEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_CONST_STRING, 22290075Sobrien BT_STRING, BT_CONST_STRING, BT_CONST_STRING) 22390075SobrienDEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_STRING_CONST_STRING, 224169689Skan BT_SIZE, BT_CONST_STRING, BT_CONST_STRING) 22590075SobrienDEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_INT, 226169689Skan BT_STRING, BT_CONST_STRING, BT_INT) 227169689SkanDEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_SIZE, 228169689Skan BT_STRING, BT_CONST_STRING, BT_SIZE) 229169689SkanDEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_FILEPTR, 230169689Skan BT_INT, BT_CONST_STRING, BT_FILEPTR) 231169689SkanDEF_FUNCTION_TYPE_2 (BT_FN_INT_INT_FILEPTR, 232169689Skan BT_INT, BT_INT, BT_FILEPTR) 23390075SobrienDEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTRMODE_PTR, 23490075Sobrien BT_VOID, BT_PTRMODE, BT_PTR) 235169689SkanDEF_FUNCTION_TYPE_2 (BT_FN_VOID_VALIST_REF_VALIST_ARG, 23690075Sobrien BT_VOID, BT_VALIST_REF, BT_VALIST_ARG) 23790075SobrienDEF_FUNCTION_TYPE_2 (BT_FN_LONG_LONG_LONG, 23890075Sobrien BT_LONG, BT_LONG, BT_LONG) 23990075SobrienDEF_FUNCTION_TYPE_2 (BT_FN_INT_PTR_CONST_STRING, 24090075Sobrien BT_INT, BT_PTR, BT_CONST_STRING) 241117395SkanDEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_SIZE, 242117395Skan BT_VOID, BT_PTR, BT_SIZE) 243132718SkanDEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOAT, 244132718Skan BT_FLOAT, BT_FLOAT, BT_FLOAT) 245132718SkanDEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLE, 246132718Skan BT_DOUBLE, BT_DOUBLE, BT_DOUBLE) 247132718SkanDEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE, 248132718Skan BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE) 249132718SkanDEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOATPTR, 250132718Skan BT_FLOAT, BT_FLOAT, BT_FLOAT_PTR) 251132718SkanDEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLEPTR, 252132718Skan BT_DOUBLE, BT_DOUBLE, BT_DOUBLE_PTR) 253132718SkanDEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLEPTR, 254132718Skan BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR) 255132718SkanDEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONGDOUBLE, 256132718Skan BT_FLOAT, BT_FLOAT, BT_LONGDOUBLE) 257132718SkanDEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONGDOUBLE, 258132718Skan BT_DOUBLE, BT_DOUBLE, BT_LONGDOUBLE) 259132718SkanDEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INT, 260132718Skan BT_FLOAT, BT_FLOAT, BT_INT) 261132718SkanDEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INT, 262132718Skan BT_DOUBLE, BT_DOUBLE, BT_INT) 263132718SkanDEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INT, 264132718Skan BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT) 265132718SkanDEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INTPTR, 266132718Skan BT_FLOAT, BT_FLOAT, BT_INT_PTR) 267132718SkanDEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INTPTR, 268132718Skan BT_DOUBLE, BT_DOUBLE, BT_INT_PTR) 269132718SkanDEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR, 270132718Skan BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR) 271132718SkanDEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_INT_FLOAT, 272132718Skan BT_FLOAT, BT_INT, BT_FLOAT) 273132718SkanDEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_INT_DOUBLE, 274132718Skan BT_DOUBLE, BT_INT, BT_DOUBLE) 275132718SkanDEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_INT_LONGDOUBLE, 276132718Skan BT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE) 277132718SkanDEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONG, 278132718Skan BT_FLOAT, BT_FLOAT, BT_LONG) 279132718SkanDEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONG, 280132718Skan BT_DOUBLE, BT_DOUBLE, BT_LONG) 281132718SkanDEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONG, 282132718Skan BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONG) 283117395SkanDEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_VALIST_ARG, 284117395Skan BT_INT, BT_CONST_STRING, BT_VALIST_ARG) 285132718SkanDEF_FUNCTION_TYPE_2 (BT_FN_PTR_SIZE_SIZE, 286132718Skan BT_PTR, BT_SIZE, BT_SIZE) 287169689SkanDEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT, 288132718Skan BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT) 289169689SkanDEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE, 290132718Skan BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE) 291169689SkanDEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, 292169689Skan BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE) 293169689SkanDEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_PTR, BT_VOID, BT_PTR, BT_PTR) 294169689SkanDEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING, 295169689Skan BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING) 296169689SkanDEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_PTR_INT, BT_SIZE, BT_CONST_PTR, BT_INT) 297169689SkanDEF_FUNCTION_TYPE_2 (BT_FN_I1_VPTR_I1, BT_I1, BT_VOLATILE_PTR, BT_I1) 298169689SkanDEF_FUNCTION_TYPE_2 (BT_FN_I2_VPTR_I2, BT_I2, BT_VOLATILE_PTR, BT_I2) 299169689SkanDEF_FUNCTION_TYPE_2 (BT_FN_I4_VPTR_I4, BT_I4, BT_VOLATILE_PTR, BT_I4) 300169689SkanDEF_FUNCTION_TYPE_2 (BT_FN_I8_VPTR_I8, BT_I8, BT_VOLATILE_PTR, BT_I8) 301169689SkanDEF_FUNCTION_TYPE_2 (BT_FN_I16_VPTR_I16, BT_I16, BT_VOLATILE_PTR, BT_I16) 302169689SkanDEF_FUNCTION_TYPE_2 (BT_FN_BOOL_LONGPTR_LONGPTR, 303169689Skan BT_BOOL, BT_PTR_LONG, BT_PTR_LONG) 30490075Sobrien 30590075SobrienDEF_FUNCTION_TYPE_3 (BT_FN_STRING_STRING_CONST_STRING_SIZE, 30690075Sobrien BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE) 30790075SobrienDEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_SIZE, 30890075Sobrien BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_SIZE) 309117395SkanDEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_CONST_PTR_SIZE, 310117395Skan BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE) 31190075SobrienDEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_PTR_CONST_PTR_SIZE, 312169689Skan BT_INT, BT_CONST_PTR, BT_CONST_PTR, BT_SIZE) 313117395SkanDEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_INT_SIZE, 314169689Skan BT_PTR, BT_PTR, BT_INT, BT_SIZE) 315117395SkanDEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_INT_INT, 316117395Skan BT_VOID, BT_PTR, BT_INT, BT_INT) 317132718SkanDEF_FUNCTION_TYPE_3 (BT_FN_VOID_CONST_PTR_PTR_SIZE, 318132718Skan BT_VOID, BT_CONST_PTR, BT_PTR, BT_SIZE) 319117395SkanDEF_FUNCTION_TYPE_3 (BT_FN_INT_STRING_CONST_STRING_VALIST_ARG, 320117395Skan BT_INT, BT_STRING, BT_CONST_STRING, BT_VALIST_ARG) 321117395SkanDEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG, 322117395Skan BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_VALIST_ARG) 323169689SkanDEF_FUNCTION_TYPE_3 (BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG, 324169689Skan BT_INT, BT_FILEPTR, BT_CONST_STRING, BT_VALIST_ARG) 325132718SkanDEF_FUNCTION_TYPE_3 (BT_FN_STRING_CONST_STRING_CONST_STRING_INT, 326132718Skan BT_STRING, BT_CONST_STRING, BT_CONST_STRING, BT_INT) 327132718SkanDEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_FLOAT, 328132718Skan BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_FLOAT) 329132718SkanDEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_DOUBLE, 330132718Skan BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_DOUBLE) 331132718SkanDEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE, 332132718Skan BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE) 333132718SkanDEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_INTPTR, 334132718Skan BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_INT_PTR) 335132718SkanDEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR, 336132718Skan BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_INT_PTR) 337132718SkanDEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR, 338132718Skan BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR) 339132718SkanDEF_FUNCTION_TYPE_3 (BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR, 340132718Skan BT_VOID, BT_FLOAT, BT_FLOAT_PTR, BT_FLOAT_PTR) 341132718SkanDEF_FUNCTION_TYPE_3 (BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR, 342132718Skan BT_VOID, BT_DOUBLE, BT_DOUBLE_PTR, BT_DOUBLE_PTR) 343132718SkanDEF_FUNCTION_TYPE_3 (BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR, 344132718Skan BT_VOID, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR, BT_LONGDOUBLE_PTR) 345169689SkanDEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_PTR_PTR, BT_VOID, BT_PTR, BT_PTR, BT_PTR) 346169689SkanDEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING, 347169689Skan BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING, BT_PTR_CONST_STRING) 348169689SkanDEF_FUNCTION_TYPE_3 (BT_FN_INT_INT_CONST_STRING_VALIST_ARG, 349169689Skan BT_INT, BT_INT, BT_CONST_STRING, BT_VALIST_ARG) 350169689SkanDEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I1_I1, BT_BOOL, BT_VOLATILE_PTR, 351169689Skan BT_I1, BT_I1) 352169689SkanDEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I2_I2, BT_BOOL, BT_VOLATILE_PTR, 353169689Skan BT_I2, BT_I2) 354169689SkanDEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I4_I4, BT_BOOL, BT_VOLATILE_PTR, 355169689Skan BT_I4, BT_I4) 356169689SkanDEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I8_I8, BT_BOOL, BT_VOLATILE_PTR, 357169689Skan BT_I8, BT_I8) 358169689SkanDEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I16_I16, BT_BOOL, BT_VOLATILE_PTR, 359169689Skan BT_I16, BT_I16) 360169689SkanDEF_FUNCTION_TYPE_3 (BT_FN_I1_VPTR_I1_I1, BT_I1, BT_VOLATILE_PTR, BT_I1, BT_I1) 361169689SkanDEF_FUNCTION_TYPE_3 (BT_FN_I2_VPTR_I2_I2, BT_I2, BT_VOLATILE_PTR, BT_I2, BT_I2) 362169689SkanDEF_FUNCTION_TYPE_3 (BT_FN_I4_VPTR_I4_I4, BT_I4, BT_VOLATILE_PTR, BT_I4, BT_I4) 363169689SkanDEF_FUNCTION_TYPE_3 (BT_FN_I8_VPTR_I8_I8, BT_I8, BT_VOLATILE_PTR, BT_I8, BT_I8) 364169689SkanDEF_FUNCTION_TYPE_3 (BT_FN_I16_VPTR_I16_I16, BT_I16, BT_VOLATILE_PTR, 365169689Skan BT_I16, BT_I16) 366169689SkanDEF_FUNCTION_TYPE_3 (BT_FN_VOID_OMPFN_PTR_UINT, BT_VOID, BT_PTR_FN_VOID_PTR, 367169689Skan BT_PTR, BT_UINT) 36890075Sobrien 369169689SkanDEF_FUNCTION_TYPE_4 (BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR, 370169689Skan BT_SIZE, BT_CONST_PTR, BT_SIZE, BT_SIZE, BT_FILEPTR) 371117395SkanDEF_FUNCTION_TYPE_4 (BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG, 372117395Skan BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_VALIST_ARG) 373132718SkanDEF_FUNCTION_TYPE_4 (BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR, 374132718Skan BT_SIZE, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_CONST_PTR) 375169689SkanDEF_FUNCTION_TYPE_4 (BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, 376169689Skan BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE, BT_SIZE) 377169689SkanDEF_FUNCTION_TYPE_4 (BT_FN_PTR_PTR_INT_SIZE_SIZE, 378169689Skan BT_PTR, BT_PTR, BT_INT, BT_SIZE, BT_SIZE) 379169689SkanDEF_FUNCTION_TYPE_4 (BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE, 380169689Skan BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE, BT_SIZE) 381169689SkanDEF_FUNCTION_TYPE_4 (BT_FN_INT_FILEPTR_INT_CONST_STRING_VALIST_ARG, 382169689Skan BT_INT, BT_FILEPTR, BT_INT, BT_CONST_STRING, BT_VALIST_ARG) 383169689SkanDEF_FUNCTION_TYPE_4 (BT_FN_VOID_OMPFN_PTR_UINT_UINT, 384169689Skan BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT, BT_UINT) 38590075Sobrien 386169689SkanDEF_FUNCTION_TYPE_5 (BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG, 387169689Skan BT_INT, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING, 388169689Skan BT_VALIST_ARG) 389169689SkanDEF_FUNCTION_TYPE_5 (BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR, 390169689Skan BT_BOOL, BT_LONG, BT_LONG, BT_LONG, 391169689Skan BT_PTR_LONG, BT_PTR_LONG) 392169689Skan 393169689SkanDEF_FUNCTION_TYPE_6 (BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG, 394169689Skan BT_INT, BT_STRING, BT_SIZE, BT_INT, BT_SIZE, 395169689Skan BT_CONST_STRING, BT_VALIST_ARG) 396169689SkanDEF_FUNCTION_TYPE_6 (BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR, 397169689Skan BT_BOOL, BT_LONG, BT_LONG, BT_LONG, BT_LONG, 398169689Skan BT_PTR_LONG, BT_PTR_LONG) 399169689SkanDEF_FUNCTION_TYPE_6 (BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG, 400169689Skan BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT, 401169689Skan BT_LONG, BT_LONG, BT_LONG) 402169689Skan 403169689SkanDEF_FUNCTION_TYPE_7 (BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG, 404169689Skan BT_VOID, BT_PTR_FN_VOID_PTR, BT_PTR, BT_UINT, 405169689Skan BT_LONG, BT_LONG, BT_LONG, BT_LONG) 406169689Skan 40790075SobrienDEF_FUNCTION_TYPE_VAR_0 (BT_FN_VOID_VAR, BT_VOID) 40890075SobrienDEF_FUNCTION_TYPE_VAR_0 (BT_FN_INT_VAR, BT_INT) 40990075SobrienDEF_FUNCTION_TYPE_VAR_0 (BT_FN_PTR_VAR, BT_PTR) 41090075Sobrien 411169689SkanDEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_VALIST_REF_VAR, 41290075Sobrien BT_VOID, BT_VALIST_REF) 41390075SobrienDEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_CONST_PTR_VAR, 41490075Sobrien BT_VOID, BT_CONST_PTR) 41590075SobrienDEF_FUNCTION_TYPE_VAR_1 (BT_FN_INT_CONST_STRING_VAR, 416169689Skan BT_INT, BT_CONST_STRING) 41790075Sobrien 418169689SkanDEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_FILEPTR_CONST_STRING_VAR, 419169689Skan BT_INT, BT_FILEPTR, BT_CONST_STRING) 420117395SkanDEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_STRING_CONST_STRING_VAR, 421117395Skan BT_INT, BT_STRING, BT_CONST_STRING) 422117395SkanDEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_CONST_STRING_CONST_STRING_VAR, 423117395Skan BT_INT, BT_CONST_STRING, BT_CONST_STRING) 424169689SkanDEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_INT_CONST_STRING_VAR, 425169689Skan BT_INT, BT_INT, BT_CONST_STRING) 42690075Sobrien 427117395SkanDEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_STRING_SIZE_CONST_STRING_VAR, 428117395Skan BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING) 429132718SkanDEF_FUNCTION_TYPE_VAR_3 (BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR, 430132718Skan BT_SSIZE, BT_STRING, BT_SIZE, BT_CONST_STRING) 431169689SkanDEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR, 432169689Skan BT_INT, BT_FILEPTR, BT_INT, BT_CONST_STRING) 433117395Skan 434169689SkanDEF_FUNCTION_TYPE_VAR_4 (BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR, 435169689Skan BT_INT, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING) 436169689Skan 437169689SkanDEF_FUNCTION_TYPE_VAR_5 (BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR, 438169689Skan BT_INT, BT_STRING, BT_SIZE, BT_INT, BT_SIZE, 439169689Skan BT_CONST_STRING) 440169689Skan 44190075SobrienDEF_POINTER_TYPE (BT_PTR_FN_VOID_VAR, BT_FN_VOID_VAR) 44290075SobrienDEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE, 44390075Sobrien BT_PTR, BT_PTR_FN_VOID_VAR, BT_PTR, BT_SIZE) 444