OSDN Git Service

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