OSDN Git Service

Remove misleading use of the word "all".
[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_VALIST_REF, va_list_ref_type_node)
102 DEF_PRIMITIVE_TYPE (BT_VALIST_ARG, va_list_arg_type_node)
103
104 DEF_PRIMITIVE_TYPE (BT_I1, builtin_type_for_size (BITS_PER_UNIT*1, 1))
105 DEF_PRIMITIVE_TYPE (BT_I2, builtin_type_for_size (BITS_PER_UNIT*2, 1))
106 DEF_PRIMITIVE_TYPE (BT_I4, builtin_type_for_size (BITS_PER_UNIT*4, 1))
107 DEF_PRIMITIVE_TYPE (BT_I8, builtin_type_for_size (BITS_PER_UNIT*8, 1))
108
109 DEF_POINTER_TYPE (BT_PTR_CONST_STRING, BT_CONST_STRING)
110
111 DEF_FUNCTION_TYPE_0 (BT_FN_VOID, BT_VOID)
112 DEF_FUNCTION_TYPE_0 (BT_FN_PTR, BT_PTR)
113 DEF_FUNCTION_TYPE_0 (BT_FN_PID, BT_PID)
114 DEF_FUNCTION_TYPE_0 (BT_FN_UINT, BT_UINT)
115 DEF_FUNCTION_TYPE_0 (BT_FN_FLOAT, BT_FLOAT)
116 DEF_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".  */
120 DEF_FUNCTION_TYPE_0 (BT_FN_LONGDOUBLE, BT_LONGDOUBLE)
121
122 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONG, BT_LONG, BT_LONG)
123 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGLONG, BT_LONGLONG, BT_LONGLONG)
124 DEF_FUNCTION_TYPE_1 (BT_FN_INTMAX_INTMAX, BT_INTMAX, BT_INTMAX)
125 DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_FLOAT, BT_FLOAT, BT_FLOAT)
126 DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_DOUBLE, BT_DOUBLE, BT_DOUBLE)
127 DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_LONGDOUBLE, 
128                      BT_LONGDOUBLE, BT_LONGDOUBLE)
129 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT, 
130                      BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
131 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE, 
132                      BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
133 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, 
134                      BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
135 DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_COMPLEX_FLOAT, 
136                      BT_FLOAT, BT_COMPLEX_FLOAT)
137 DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_COMPLEX_DOUBLE,
138                      BT_DOUBLE, BT_COMPLEX_DOUBLE)
139 DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_COMPLEX_LONGDOUBLE,
140                      BT_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
141 DEF_FUNCTION_TYPE_1 (BT_FN_PTR_UINT, BT_PTR, BT_UINT)
142 DEF_FUNCTION_TYPE_1 (BT_FN_PTR_SIZE, BT_PTR, BT_SIZE)
143 DEF_FUNCTION_TYPE_1 (BT_FN_INT_INT, BT_INT, BT_INT)
144 DEF_FUNCTION_TYPE_1 (BT_FN_INT_UINT, BT_INT, BT_UINT)
145 DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONG, BT_INT, BT_LONG)
146 DEF_FUNCTION_TYPE_1 (BT_FN_INT_ULONG, BT_INT, BT_ULONG)
147 DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGLONG, BT_INT, BT_LONGLONG)
148 DEF_FUNCTION_TYPE_1 (BT_FN_INT_ULONGLONG, BT_INT, BT_ULONGLONG)
149 DEF_FUNCTION_TYPE_1 (BT_FN_INT_INTMAX, BT_INT, BT_INTMAX)
150 DEF_FUNCTION_TYPE_1 (BT_FN_INT_UINTMAX, BT_INT, BT_UINTMAX)
151 DEF_FUNCTION_TYPE_1 (BT_FN_INT_PTR, BT_INT, BT_PTR)
152 DEF_FUNCTION_TYPE_1 (BT_FN_INT_FLOAT, BT_INT, BT_FLOAT)
153 DEF_FUNCTION_TYPE_1 (BT_FN_INT_DOUBLE, BT_INT, BT_DOUBLE)
154 DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
155 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_FLOAT, BT_LONG, BT_FLOAT)
156 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_DOUBLE, BT_LONG, BT_DOUBLE)
157 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONGDOUBLE, BT_LONG, BT_LONGDOUBLE)
158 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_FLOAT, BT_LONGLONG, BT_FLOAT)
159 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_DOUBLE, BT_LONGLONG, BT_DOUBLE)
160 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGDOUBLE, BT_LONGLONG, BT_LONGDOUBLE)
161 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTR, BT_VOID, BT_PTR)
162 DEF_FUNCTION_TYPE_1 (BT_FN_SIZE_CONST_STRING, BT_SIZE, BT_CONST_STRING)
163 DEF_FUNCTION_TYPE_1 (BT_FN_INT_CONST_STRING, BT_INT, BT_CONST_STRING)
164 DEF_FUNCTION_TYPE_1 (BT_FN_PTR_PTR, BT_PTR, BT_PTR)
165 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VALIST_REF, BT_VOID, BT_VALIST_REF)
166 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_INT, BT_VOID, BT_INT)
167 DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_CONST_STRING, BT_FLOAT, BT_CONST_STRING)
168 DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_CONST_STRING, BT_DOUBLE, BT_CONST_STRING)
169 DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_CONST_STRING,
170                      BT_LONGDOUBLE, BT_CONST_STRING)
171 DEF_FUNCTION_TYPE_1 (BT_FN_STRING_CONST_STRING, BT_STRING, BT_CONST_STRING)
172 DEF_FUNCTION_TYPE_1 (BT_FN_WORD_PTR, BT_WORD, BT_PTR)
173 DEF_FUNCTION_TYPE_1 (BT_FN_INT_WINT, BT_INT, BT_WINT)
174 DEF_FUNCTION_TYPE_1 (BT_FN_WINT_WINT, BT_WINT, BT_WINT)
175 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VPTR, BT_VOID, BT_VOLATILE_PTR)
176
177 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_INT, BT_VOID, BT_PTR, BT_INT)
178 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_STRING_CONST_STRING, 
179                      BT_STRING, BT_STRING, BT_CONST_STRING)
180 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_CONST_STRING,
181                      BT_INT, BT_CONST_STRING, BT_CONST_STRING)
182 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_CONST_STRING,
183                      BT_STRING, BT_CONST_STRING, BT_CONST_STRING)
184 DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_STRING_CONST_STRING,
185                      BT_SIZE, BT_CONST_STRING, BT_CONST_STRING)
186 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_INT,
187                      BT_STRING, BT_CONST_STRING, BT_INT)
188 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_SIZE,
189                      BT_STRING, BT_CONST_STRING, BT_SIZE)
190 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_FILEPTR,
191                      BT_INT, BT_CONST_STRING, BT_FILEPTR)
192 DEF_FUNCTION_TYPE_2 (BT_FN_INT_INT_FILEPTR,
193                      BT_INT, BT_INT, BT_FILEPTR)
194 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTRMODE_PTR,
195                      BT_VOID, BT_PTRMODE, BT_PTR)
196 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VALIST_REF_VALIST_ARG, 
197                      BT_VOID, BT_VALIST_REF, BT_VALIST_ARG)
198 DEF_FUNCTION_TYPE_2 (BT_FN_LONG_LONG_LONG,
199                      BT_LONG, BT_LONG, BT_LONG)
200 DEF_FUNCTION_TYPE_2 (BT_FN_INT_PTR_CONST_STRING,
201                      BT_INT, BT_PTR, BT_CONST_STRING)
202 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_SIZE,
203                      BT_VOID, BT_PTR, BT_SIZE)
204 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOAT,
205                      BT_FLOAT, BT_FLOAT, BT_FLOAT)
206 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLE,
207                      BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
208 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
209                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
210 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOATPTR,
211                      BT_FLOAT, BT_FLOAT, BT_FLOAT_PTR)
212 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLEPTR,
213                      BT_DOUBLE, BT_DOUBLE, BT_DOUBLE_PTR)
214 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLEPTR,
215                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR)
216 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONGDOUBLE,
217                      BT_FLOAT, BT_FLOAT, BT_LONGDOUBLE)
218 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONGDOUBLE,
219                      BT_DOUBLE, BT_DOUBLE, BT_LONGDOUBLE)
220 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INT,
221                      BT_FLOAT, BT_FLOAT, BT_INT)
222 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INT,
223                      BT_DOUBLE, BT_DOUBLE, BT_INT)
224 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INT,
225                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT)
226 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INTPTR,
227                      BT_FLOAT, BT_FLOAT, BT_INT_PTR)
228 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INTPTR,
229                      BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
230 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR,
231                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
232 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_INT_FLOAT,
233                      BT_FLOAT, BT_INT, BT_FLOAT)
234 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_INT_DOUBLE,
235                      BT_DOUBLE, BT_INT, BT_DOUBLE)
236 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_INT_LONGDOUBLE,
237                      BT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
238 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONG,
239                      BT_FLOAT, BT_FLOAT, BT_LONG)
240 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONG,
241                      BT_DOUBLE, BT_DOUBLE, BT_LONG)
242 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONG,
243                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONG)
244 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_VALIST_ARG,
245                      BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
246 DEF_FUNCTION_TYPE_2 (BT_FN_PTR_SIZE_SIZE,
247                      BT_PTR, BT_SIZE, BT_SIZE)
248 DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT, 
249                      BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
250 DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE, 
251                      BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
252 DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, 
253                      BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
254 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_PTR, BT_VOID, BT_PTR, BT_PTR)
255 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
256                      BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING)
257 DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_PTR_INT, BT_SIZE, BT_CONST_PTR, BT_INT)
258 DEF_FUNCTION_TYPE_2 (BT_FN_I1_VPTR_I1, BT_I1, BT_VOLATILE_PTR, BT_I1)
259 DEF_FUNCTION_TYPE_2 (BT_FN_I2_VPTR_I2, BT_I2, BT_VOLATILE_PTR, BT_I2)
260 DEF_FUNCTION_TYPE_2 (BT_FN_I4_VPTR_I4, BT_I4, BT_VOLATILE_PTR, BT_I4)
261 DEF_FUNCTION_TYPE_2 (BT_FN_I8_VPTR_I8, BT_I8, BT_VOLATILE_PTR, BT_I8)
262
263 DEF_FUNCTION_TYPE_3 (BT_FN_STRING_STRING_CONST_STRING_SIZE,
264                      BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE)
265 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_SIZE,
266                      BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_SIZE)
267 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_CONST_PTR_SIZE,
268                      BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE)
269 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_PTR_CONST_PTR_SIZE,
270                      BT_INT, BT_CONST_PTR, BT_CONST_PTR, BT_SIZE)
271 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_INT_SIZE,
272                      BT_PTR, BT_PTR, BT_INT, BT_SIZE)
273 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_INT_INT,
274                      BT_VOID, BT_PTR, BT_INT, BT_INT)
275 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_CONST_PTR_PTR_SIZE,
276                      BT_VOID, BT_CONST_PTR, BT_PTR, BT_SIZE)
277 DEF_FUNCTION_TYPE_3 (BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
278                      BT_INT, BT_STRING, BT_CONST_STRING, BT_VALIST_ARG)
279 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
280                      BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_VALIST_ARG)
281 DEF_FUNCTION_TYPE_3 (BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
282                      BT_INT, BT_FILEPTR, BT_CONST_STRING, BT_VALIST_ARG)
283 DEF_FUNCTION_TYPE_3 (BT_FN_STRING_CONST_STRING_CONST_STRING_INT,
284                      BT_STRING, BT_CONST_STRING, BT_CONST_STRING, BT_INT)
285 DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_FLOAT,
286                      BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_FLOAT)
287 DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_DOUBLE,
288                      BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
289 DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
290                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
291 DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_INTPTR,
292                      BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_INT_PTR)
293 DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR,
294                      BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
295 DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR,
296                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
297 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR,
298                      BT_VOID, BT_FLOAT, BT_FLOAT_PTR, BT_FLOAT_PTR)
299 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR,
300                      BT_VOID, BT_DOUBLE, BT_DOUBLE_PTR, BT_DOUBLE_PTR)
301 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR,
302                      BT_VOID, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR, BT_LONGDOUBLE_PTR)
303 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_PTR_PTR, BT_VOID, BT_PTR, BT_PTR, BT_PTR)
304 DEF_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)
306 DEF_FUNCTION_TYPE_3 (BT_FN_INT_INT_CONST_STRING_VALIST_ARG,
307                      BT_INT, BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
308 DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I1_I1, BT_BOOL, BT_VOLATILE_PTR,
309                      BT_I1, BT_I1)
310 DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I2_I2, BT_BOOL, BT_VOLATILE_PTR,
311                      BT_I2, BT_I2)
312 DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I4_I4, BT_BOOL, BT_VOLATILE_PTR,
313                      BT_I4, BT_I4)
314 DEF_FUNCTION_TYPE_3 (BT_FN_BOOL_VPTR_I8_I8, BT_BOOL, BT_VOLATILE_PTR,
315                      BT_I8, BT_I8)
316 DEF_FUNCTION_TYPE_3 (BT_FN_I1_VPTR_I1_I1, BT_I1, BT_VOLATILE_PTR, BT_I1, BT_I1)
317 DEF_FUNCTION_TYPE_3 (BT_FN_I2_VPTR_I2_I2, BT_I2, BT_VOLATILE_PTR, BT_I2, BT_I2)
318 DEF_FUNCTION_TYPE_3 (BT_FN_I4_VPTR_I4_I4, BT_I4, BT_VOLATILE_PTR, BT_I4, BT_I4)
319 DEF_FUNCTION_TYPE_3 (BT_FN_I8_VPTR_I8_I8, BT_I8, BT_VOLATILE_PTR, BT_I8, BT_I8)
320
321 DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
322                      BT_SIZE, BT_CONST_PTR, BT_SIZE, BT_SIZE, BT_FILEPTR)
323 DEF_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)
325 DEF_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)
327 DEF_FUNCTION_TYPE_4 (BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE,
328                      BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE, BT_SIZE)
329 DEF_FUNCTION_TYPE_4 (BT_FN_PTR_PTR_INT_SIZE_SIZE,
330                      BT_PTR, BT_PTR, BT_INT, BT_SIZE, BT_SIZE)
331 DEF_FUNCTION_TYPE_4 (BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE,
332                      BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE, BT_SIZE)
333 DEF_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
336 DEF_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
340 DEF_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
344 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_VOID_VAR, BT_VOID)
345 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_INT_VAR, BT_INT)
346 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_PTR_VAR, BT_PTR)
347
348 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_VALIST_REF_VAR, 
349                          BT_VOID, BT_VALIST_REF)
350 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_CONST_PTR_VAR,
351                          BT_VOID, BT_CONST_PTR)
352 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_INT_CONST_STRING_VAR,
353                          BT_INT, BT_CONST_STRING)
354
355 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_FILEPTR_CONST_STRING_VAR,
356                          BT_INT, BT_FILEPTR, BT_CONST_STRING)
357 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_STRING_CONST_STRING_VAR,
358                          BT_INT, BT_STRING, BT_CONST_STRING)
359 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
360                          BT_INT, BT_CONST_STRING, BT_CONST_STRING)
361 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_INT_CONST_STRING_VAR,
362                          BT_INT, BT_INT, BT_CONST_STRING)
363
364 DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_STRING_SIZE_CONST_STRING_VAR,
365                          BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING)
366 DEF_FUNCTION_TYPE_VAR_3 (BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR,
367                          BT_SSIZE, BT_STRING, BT_SIZE, BT_CONST_STRING)
368 DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR,
369                          BT_INT, BT_FILEPTR, BT_INT, BT_CONST_STRING)
370
371 DEF_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
374 DEF_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
378 DEF_POINTER_TYPE (BT_PTR_FN_VOID_VAR, BT_FN_VOID_VAR)
379 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE,
380                      BT_PTR, BT_PTR_FN_VOID_VAR, BT_PTR, BT_SIZE)