OSDN Git Service

* gcc/config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
[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, 59 Temple Place - Suite 330, Boston, MA
18 02111-1307, 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
36      These macros describe function types.  ENUM is as above.  The
37      RETURN type is one of the enumerals already defined.  ARG1, ARG2,
38      and ARG3 give the types of the arguments, similarly.
39
40    DEF_FUNCTION_TYPE_VAR_0 (ENUM, RETURN)
41    DEF_FUNCTION_TYPE_VAR_1 (ENUM, RETURN, ARG1)
42    DEF_FUNCTION_TYPE_VAR_2 (ENUM, RETURN, ARG1, ARG2)
43    DEF_FUNCTION_TYPE_VAR_3 (ENUM, RETURN, ARG1, ARG2, ARG3)
44
45      Similar, but for function types that take variable arguments.
46      For example:
47
48        DEF_FUNCTION_TYPE_1 (BT_INT_DOUBLE, BT_INT, BT_DOUBLE)
49
50      describes the type `int ()(double)', using the enumeral
51      BT_INT_DOUBLE, whereas:
52
53        DEF_FUNCTION_TYPE_VAR_1 (BT_INT_DOUBLE_VAR, BT_INT, BT_DOUBLE)
54
55      describes the type `int ()(double, ...)'.
56  
57   DEF_POINTER_TYPE (ENUM, TYPE)
58
59     This macro describes a pointer type.  ENUM is as above; TYPE is
60     the type pointed to.  */
61
62 DEF_PRIMITIVE_TYPE (BT_VOID, void_type_node)
63 DEF_PRIMITIVE_TYPE (BT_INT, integer_type_node)
64 DEF_PRIMITIVE_TYPE (BT_UINT, unsigned_type_node)
65 DEF_PRIMITIVE_TYPE (BT_LONG, long_integer_type_node)
66 DEF_PRIMITIVE_TYPE (BT_ULONG, long_unsigned_type_node)
67 DEF_PRIMITIVE_TYPE (BT_LONGLONG, long_long_integer_type_node)
68 DEF_PRIMITIVE_TYPE (BT_ULONGLONG, long_long_unsigned_type_node)
69 DEF_PRIMITIVE_TYPE (BT_INTMAX, intmax_type_node)
70 DEF_PRIMITIVE_TYPE (BT_UINTMAX, uintmax_type_node)
71 DEF_PRIMITIVE_TYPE (BT_WORD, (*lang_hooks.types.type_for_mode) (word_mode, 0))
72 DEF_PRIMITIVE_TYPE (BT_FLOAT, float_type_node)
73 DEF_PRIMITIVE_TYPE (BT_DOUBLE, double_type_node)
74 DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE, long_double_type_node)
75 DEF_PRIMITIVE_TYPE (BT_COMPLEX_FLOAT, complex_float_type_node)
76 DEF_PRIMITIVE_TYPE (BT_COMPLEX_DOUBLE, complex_double_type_node)
77 DEF_PRIMITIVE_TYPE (BT_COMPLEX_LONGDOUBLE, complex_long_double_type_node)
78
79 DEF_PRIMITIVE_TYPE (BT_PTR, ptr_type_node)
80 DEF_PRIMITIVE_TYPE (BT_FILEPTR, fileptr_type_node)
81 DEF_PRIMITIVE_TYPE (BT_CONST_PTR, const_ptr_type_node)
82 DEF_PRIMITIVE_TYPE (BT_PTRMODE, (*lang_hooks.types.type_for_mode)(ptr_mode, 0))
83 DEF_PRIMITIVE_TYPE (BT_INT_PTR, integer_ptr_type_node)
84 DEF_PRIMITIVE_TYPE (BT_FLOAT_PTR, float_ptr_type_node)
85 DEF_PRIMITIVE_TYPE (BT_DOUBLE_PTR, double_ptr_type_node)
86 DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE_PTR, long_double_ptr_type_node)
87 DEF_PRIMITIVE_TYPE (BT_PID, pid_type_node)
88 DEF_PRIMITIVE_TYPE (BT_SIZE, size_type_node)
89 DEF_PRIMITIVE_TYPE (BT_SSIZE, signed_size_type_node)
90 DEF_PRIMITIVE_TYPE (BT_WINT, wint_type_node)
91 DEF_PRIMITIVE_TYPE (BT_STRING, string_type_node)
92 DEF_PRIMITIVE_TYPE (BT_CONST_STRING, const_string_type_node)
93
94 DEF_PRIMITIVE_TYPE (BT_VALIST_REF, va_list_ref_type_node)
95 DEF_PRIMITIVE_TYPE (BT_VALIST_ARG, va_list_arg_type_node)
96
97 DEF_POINTER_TYPE (BT_PTR_CONST_STRING, BT_CONST_STRING)
98
99 DEF_FUNCTION_TYPE_0 (BT_FN_VOID, BT_VOID)
100 DEF_FUNCTION_TYPE_0 (BT_FN_PTR, BT_PTR)
101 DEF_FUNCTION_TYPE_0 (BT_FN_PID, BT_PID)
102 DEF_FUNCTION_TYPE_0 (BT_FN_UINT, BT_UINT)
103 DEF_FUNCTION_TYPE_0 (BT_FN_FLOAT, BT_FLOAT)
104 DEF_FUNCTION_TYPE_0 (BT_FN_DOUBLE, BT_DOUBLE)
105 /* For "long double" we use LONGDOUBLE (not LONG_DOUBLE) to
106    distinguish it from two types in sequence, "long" followed by
107    "double".  */
108 DEF_FUNCTION_TYPE_0 (BT_FN_LONGDOUBLE, BT_LONGDOUBLE)
109
110 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONG, BT_LONG, BT_LONG)
111 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGLONG, BT_LONGLONG, BT_LONGLONG)
112 DEF_FUNCTION_TYPE_1 (BT_FN_INTMAX_INTMAX, BT_INTMAX, BT_INTMAX)
113 DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_FLOAT, BT_FLOAT, BT_FLOAT)
114 DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_DOUBLE, BT_DOUBLE, BT_DOUBLE)
115 DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_LONGDOUBLE, 
116                      BT_LONGDOUBLE, BT_LONGDOUBLE)
117 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT, 
118                      BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
119 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE, 
120                      BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
121 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, 
122                      BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
123 DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_COMPLEX_FLOAT, 
124                      BT_FLOAT, BT_COMPLEX_FLOAT)
125 DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_COMPLEX_DOUBLE,
126                      BT_DOUBLE, BT_COMPLEX_DOUBLE)
127 DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_COMPLEX_LONGDOUBLE,
128                      BT_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
129 DEF_FUNCTION_TYPE_1 (BT_FN_PTR_UINT, BT_PTR, BT_UINT)
130 DEF_FUNCTION_TYPE_1 (BT_FN_PTR_SIZE, BT_PTR, BT_SIZE)
131 DEF_FUNCTION_TYPE_1 (BT_FN_INT_INT, BT_INT, BT_INT)
132 DEF_FUNCTION_TYPE_1 (BT_FN_INT_UINT, BT_INT, BT_UINT)
133 DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONG, BT_INT, BT_LONG)
134 DEF_FUNCTION_TYPE_1 (BT_FN_INT_ULONG, BT_INT, BT_ULONG)
135 DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGLONG, BT_INT, BT_LONGLONG)
136 DEF_FUNCTION_TYPE_1 (BT_FN_INT_ULONGLONG, BT_INT, BT_ULONGLONG)
137 DEF_FUNCTION_TYPE_1 (BT_FN_INT_INTMAX, BT_INT, BT_INTMAX)
138 DEF_FUNCTION_TYPE_1 (BT_FN_INT_UINTMAX, BT_INT, BT_UINTMAX)
139 DEF_FUNCTION_TYPE_1 (BT_FN_INT_PTR, BT_INT, BT_PTR)
140 DEF_FUNCTION_TYPE_1 (BT_FN_INT_FLOAT, BT_INT, BT_FLOAT)
141 DEF_FUNCTION_TYPE_1 (BT_FN_INT_DOUBLE, BT_INT, BT_DOUBLE)
142 DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
143 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_FLOAT, BT_LONG, BT_FLOAT)
144 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_DOUBLE, BT_LONG, BT_DOUBLE)
145 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONGDOUBLE, BT_LONG, BT_LONGDOUBLE)
146 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_FLOAT, BT_LONGLONG, BT_FLOAT)
147 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_DOUBLE, BT_LONGLONG, BT_DOUBLE)
148 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGDOUBLE, BT_LONGLONG, BT_LONGDOUBLE)
149 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTR, BT_VOID, BT_PTR)
150 DEF_FUNCTION_TYPE_1 (BT_FN_SIZE_CONST_STRING, BT_SIZE, BT_CONST_STRING)
151 DEF_FUNCTION_TYPE_1 (BT_FN_INT_CONST_STRING, BT_INT, BT_CONST_STRING)
152 DEF_FUNCTION_TYPE_1 (BT_FN_PTR_PTR, BT_PTR, BT_PTR)
153 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VALIST_REF, BT_VOID, BT_VALIST_REF)
154 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_INT, BT_VOID, BT_INT)
155 DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_CONST_STRING, BT_FLOAT, BT_CONST_STRING)
156 DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_CONST_STRING, BT_DOUBLE, BT_CONST_STRING)
157 DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_CONST_STRING,
158                      BT_LONGDOUBLE, BT_CONST_STRING)
159 DEF_FUNCTION_TYPE_1 (BT_FN_STRING_CONST_STRING, BT_STRING, BT_CONST_STRING)
160 DEF_FUNCTION_TYPE_1 (BT_FN_WORD_PTR, BT_WORD, BT_PTR)
161 DEF_FUNCTION_TYPE_1 (BT_FN_INT_WINT, BT_INT, BT_WINT)
162 DEF_FUNCTION_TYPE_1 (BT_FN_WINT_WINT, BT_WINT, BT_WINT)
163
164 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_INT, BT_VOID, BT_PTR, BT_INT)
165 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_STRING_CONST_STRING, 
166                      BT_STRING, BT_STRING, BT_CONST_STRING)
167 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_CONST_STRING,
168                      BT_INT, BT_CONST_STRING, BT_CONST_STRING)
169 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_CONST_STRING,
170                      BT_STRING, BT_CONST_STRING, BT_CONST_STRING)
171 DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_STRING_CONST_STRING,
172                      BT_SIZE, BT_CONST_STRING, BT_CONST_STRING)
173 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_INT,
174                      BT_STRING, BT_CONST_STRING, BT_INT)
175 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_SIZE,
176                      BT_STRING, BT_CONST_STRING, BT_SIZE)
177 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_FILEPTR,
178                      BT_INT, BT_CONST_STRING, BT_FILEPTR)
179 DEF_FUNCTION_TYPE_2 (BT_FN_INT_INT_FILEPTR,
180                      BT_INT, BT_INT, BT_FILEPTR)
181 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTRMODE_PTR,
182                      BT_VOID, BT_PTRMODE, BT_PTR)
183 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VALIST_REF_VALIST_ARG, 
184                      BT_VOID, BT_VALIST_REF, BT_VALIST_ARG)
185 DEF_FUNCTION_TYPE_2 (BT_FN_LONG_LONG_LONG,
186                      BT_LONG, BT_LONG, BT_LONG)
187 DEF_FUNCTION_TYPE_2 (BT_FN_INT_PTR_CONST_STRING,
188                      BT_INT, BT_PTR, BT_CONST_STRING)
189 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_SIZE,
190                      BT_VOID, BT_PTR, BT_SIZE)
191 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOAT,
192                      BT_FLOAT, BT_FLOAT, BT_FLOAT)
193 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLE,
194                      BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
195 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
196                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
197 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOATPTR,
198                      BT_FLOAT, BT_FLOAT, BT_FLOAT_PTR)
199 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLEPTR,
200                      BT_DOUBLE, BT_DOUBLE, BT_DOUBLE_PTR)
201 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLEPTR,
202                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR)
203 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONGDOUBLE,
204                      BT_FLOAT, BT_FLOAT, BT_LONGDOUBLE)
205 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONGDOUBLE,
206                      BT_DOUBLE, BT_DOUBLE, BT_LONGDOUBLE)
207 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INT,
208                      BT_FLOAT, BT_FLOAT, BT_INT)
209 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INT,
210                      BT_DOUBLE, BT_DOUBLE, BT_INT)
211 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INT,
212                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT)
213 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INTPTR,
214                      BT_FLOAT, BT_FLOAT, BT_INT_PTR)
215 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INTPTR,
216                      BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
217 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR,
218                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
219 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_INT_FLOAT,
220                      BT_FLOAT, BT_INT, BT_FLOAT)
221 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_INT_DOUBLE,
222                      BT_DOUBLE, BT_INT, BT_DOUBLE)
223 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_INT_LONGDOUBLE,
224                      BT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
225 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONG,
226                      BT_FLOAT, BT_FLOAT, BT_LONG)
227 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONG,
228                      BT_DOUBLE, BT_DOUBLE, BT_LONG)
229 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONG,
230                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONG)
231 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_VALIST_ARG,
232                      BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
233 DEF_FUNCTION_TYPE_2 (BT_FN_PTR_SIZE_SIZE,
234                      BT_PTR, BT_SIZE, BT_SIZE)
235 DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT, 
236                      BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
237 DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE, 
238                      BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
239 DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, 
240                      BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
241 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_PTR, BT_VOID, BT_PTR, BT_PTR)
242 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
243                      BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING)
244
245 DEF_FUNCTION_TYPE_3 (BT_FN_STRING_STRING_CONST_STRING_SIZE,
246                      BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE)
247 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_SIZE,
248                      BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_SIZE)
249 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_CONST_PTR_SIZE,
250                      BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE)
251 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_PTR_CONST_PTR_SIZE,
252                      BT_INT, BT_CONST_PTR, BT_CONST_PTR, BT_SIZE)
253 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_INT_SIZE,
254                      BT_PTR, BT_PTR, BT_INT, BT_SIZE)
255 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_INT_INT,
256                      BT_VOID, BT_PTR, BT_INT, BT_INT)
257 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_CONST_PTR_PTR_SIZE,
258                      BT_VOID, BT_CONST_PTR, BT_PTR, BT_SIZE)
259 DEF_FUNCTION_TYPE_3 (BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
260                      BT_INT, BT_STRING, BT_CONST_STRING, BT_VALIST_ARG)
261 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
262                      BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_VALIST_ARG)
263 DEF_FUNCTION_TYPE_3 (BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
264                      BT_INT, BT_FILEPTR, BT_CONST_STRING, BT_VALIST_ARG)
265 DEF_FUNCTION_TYPE_3 (BT_FN_STRING_CONST_STRING_CONST_STRING_INT,
266                      BT_STRING, BT_CONST_STRING, BT_CONST_STRING, BT_INT)
267 DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_FLOAT,
268                      BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_FLOAT)
269 DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_DOUBLE,
270                      BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
271 DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
272                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
273 DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_INTPTR,
274                      BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_INT_PTR)
275 DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR,
276                      BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
277 DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR,
278                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
279 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR,
280                      BT_VOID, BT_FLOAT, BT_FLOAT_PTR, BT_FLOAT_PTR)
281 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR,
282                      BT_VOID, BT_DOUBLE, BT_DOUBLE_PTR, BT_DOUBLE_PTR)
283 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR,
284                      BT_VOID, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR, BT_LONGDOUBLE_PTR)
285 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_PTR_PTR, BT_VOID, BT_PTR, BT_PTR, BT_PTR)
286 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING,
287                      BT_INT, BT_CONST_STRING, BT_PTR_CONST_STRING, BT_PTR_CONST_STRING)
288
289 DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
290                      BT_SIZE, BT_CONST_PTR, BT_SIZE, BT_SIZE, BT_FILEPTR)
291 DEF_FUNCTION_TYPE_4 (BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
292                 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_VALIST_ARG)
293 DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR,
294                 BT_SIZE, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_CONST_PTR)
295
296 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_VOID_VAR, BT_VOID)
297 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_INT_VAR, BT_INT)
298 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_PTR_VAR, BT_PTR)
299
300 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_VALIST_REF_VAR, 
301                          BT_VOID, BT_VALIST_REF)
302 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_CONST_PTR_VAR,
303                          BT_VOID, BT_CONST_PTR)
304 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_INT_CONST_STRING_VAR,
305                          BT_INT, BT_CONST_STRING)
306
307 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_FILEPTR_CONST_STRING_VAR,
308                          BT_INT, BT_FILEPTR, BT_CONST_STRING)
309 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_STRING_CONST_STRING_VAR,
310                          BT_INT, BT_STRING, BT_CONST_STRING)
311 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
312                          BT_INT, BT_CONST_STRING, BT_CONST_STRING)
313
314 DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_STRING_SIZE_CONST_STRING_VAR,
315                          BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING)
316 DEF_FUNCTION_TYPE_VAR_3 (BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR,
317                          BT_SSIZE, BT_STRING, BT_SIZE, BT_CONST_STRING)
318
319 DEF_POINTER_TYPE (BT_PTR_FN_VOID_VAR, BT_FN_VOID_VAR)
320 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE,
321                      BT_PTR, BT_PTR_FN_VOID_VAR, BT_PTR, BT_SIZE)