OSDN Git Service

PR libstdc++/5625
[pf3gnuchains/gcc-fork.git] / gcc / builtin-types.def
1 /* Copyright (C) 2001, 2002, 2003, 2004 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_UNSIGNED, unsigned_type_node)
65 DEF_PRIMITIVE_TYPE (BT_LONG, long_integer_type_node)
66 DEF_PRIMITIVE_TYPE (BT_LONGLONG, long_long_integer_type_node)
67 DEF_PRIMITIVE_TYPE (BT_WORD, (*lang_hooks.types.type_for_mode) (word_mode, 0))
68 DEF_PRIMITIVE_TYPE (BT_FLOAT, float_type_node)
69 DEF_PRIMITIVE_TYPE (BT_INTMAX, intmax_type_node)
70 DEF_PRIMITIVE_TYPE (BT_DOUBLE, double_type_node)
71 DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE, long_double_type_node)
72 DEF_PRIMITIVE_TYPE (BT_COMPLEX_FLOAT, complex_float_type_node)
73 DEF_PRIMITIVE_TYPE (BT_COMPLEX_DOUBLE, complex_double_type_node)
74 DEF_PRIMITIVE_TYPE (BT_COMPLEX_LONGDOUBLE, complex_long_double_type_node)
75
76 DEF_PRIMITIVE_TYPE (BT_PTR, ptr_type_node)
77 DEF_PRIMITIVE_TYPE (BT_CONST_PTR, const_ptr_type_node)
78 DEF_PRIMITIVE_TYPE (BT_PTRMODE, (*lang_hooks.types.type_for_mode)(ptr_mode, 0))
79 DEF_PRIMITIVE_TYPE (BT_INT_PTR, integer_ptr_type_node)
80 DEF_PRIMITIVE_TYPE (BT_FLOAT_PTR, float_ptr_type_node)
81 DEF_PRIMITIVE_TYPE (BT_DOUBLE_PTR, double_ptr_type_node)
82 DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE_PTR, long_double_ptr_type_node)
83 DEF_PRIMITIVE_TYPE (BT_SIZE, size_type_node)
84 DEF_PRIMITIVE_TYPE (BT_SSIZE, signed_size_type_node)
85 DEF_PRIMITIVE_TYPE (BT_STRING, string_type_node)
86 DEF_PRIMITIVE_TYPE (BT_CONST_STRING, const_string_type_node)
87
88 DEF_PRIMITIVE_TYPE (BT_VALIST_REF, va_list_ref_type_node)
89 DEF_PRIMITIVE_TYPE (BT_VALIST_ARG, va_list_arg_type_node)
90
91 DEF_FUNCTION_TYPE_0 (BT_FN_VOID, BT_VOID)
92 DEF_FUNCTION_TYPE_0 (BT_FN_PTR, BT_PTR)
93 DEF_FUNCTION_TYPE_0 (BT_FN_UNSIGNED, BT_UNSIGNED)
94 DEF_FUNCTION_TYPE_0 (BT_FN_FLOAT, BT_FLOAT)
95 DEF_FUNCTION_TYPE_0 (BT_FN_DOUBLE, BT_DOUBLE)
96 /* For "long double" we use LONGDOUBLE (not LONG_DOUBLE) to
97    distinguish it from two types in sequence, "long" followed by
98    "double".  */
99 DEF_FUNCTION_TYPE_0 (BT_FN_LONGDOUBLE, BT_LONGDOUBLE)
100
101 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONG, BT_LONG, BT_LONG)
102 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGLONG, BT_LONGLONG, BT_LONGLONG)
103 DEF_FUNCTION_TYPE_1 (BT_FN_INTMAX_INTMAX, BT_INTMAX, BT_INTMAX)
104 DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_FLOAT, BT_FLOAT, BT_FLOAT)
105 DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_DOUBLE, BT_DOUBLE, BT_DOUBLE)
106 DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_LONGDOUBLE, 
107                      BT_LONGDOUBLE, BT_LONGDOUBLE)
108 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT, 
109                      BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
110 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE, 
111                      BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
112 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, 
113                      BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
114 DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_COMPLEX_FLOAT, 
115                      BT_FLOAT, BT_COMPLEX_FLOAT)
116 DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_COMPLEX_DOUBLE,
117                      BT_DOUBLE, BT_COMPLEX_DOUBLE)
118 DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_COMPLEX_LONGDOUBLE,
119                      BT_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
120 DEF_FUNCTION_TYPE_1 (BT_FN_PTR_UNSIGNED, BT_PTR, BT_UNSIGNED)
121 DEF_FUNCTION_TYPE_1 (BT_FN_PTR_SIZE, BT_PTR, BT_SIZE)
122 DEF_FUNCTION_TYPE_1 (BT_FN_INT_INT, BT_INT, BT_INT)
123 DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONG, BT_INT, BT_LONG)
124 DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGLONG, BT_INT, BT_LONGLONG)
125 DEF_FUNCTION_TYPE_1 (BT_FN_INT_PTR, BT_INT, BT_PTR)
126 DEF_FUNCTION_TYPE_1 (BT_FN_INT_FLOAT, BT_INT, BT_FLOAT)
127 DEF_FUNCTION_TYPE_1 (BT_FN_INT_DOUBLE, BT_INT, BT_DOUBLE)
128 DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
129 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_FLOAT, BT_LONG, BT_FLOAT)
130 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_DOUBLE, BT_LONG, BT_DOUBLE)
131 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONGDOUBLE, BT_LONG, BT_LONGDOUBLE)
132 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_FLOAT, BT_LONGLONG, BT_FLOAT)
133 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_DOUBLE, BT_LONGLONG, BT_DOUBLE)
134 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGDOUBLE, BT_LONGLONG, BT_LONGDOUBLE)
135 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTR, BT_VOID, BT_PTR)
136 DEF_FUNCTION_TYPE_1 (BT_FN_SIZE_CONST_STRING, BT_SIZE, BT_CONST_STRING)
137 DEF_FUNCTION_TYPE_1 (BT_FN_INT_CONST_STRING, BT_INT, BT_CONST_STRING)
138 DEF_FUNCTION_TYPE_1 (BT_FN_PTR_PTR, BT_PTR, BT_PTR)
139 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VALIST_REF, BT_VOID, BT_VALIST_REF)
140 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_INT, BT_VOID, BT_INT)
141 DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_CONST_STRING, BT_FLOAT, BT_CONST_STRING)
142 DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_CONST_STRING, BT_DOUBLE, BT_CONST_STRING)
143 DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_CONST_STRING,
144                      BT_LONGDOUBLE, BT_CONST_STRING)
145 DEF_FUNCTION_TYPE_1 (BT_FN_STRING_CONST_STRING, BT_STRING, BT_CONST_STRING)
146 DEF_FUNCTION_TYPE_1 (BT_FN_WORD_PTR, BT_WORD, BT_PTR)
147
148 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_INT, BT_VOID, BT_PTR, BT_INT)
149 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_STRING_CONST_STRING, 
150                      BT_STRING, BT_STRING, BT_CONST_STRING)
151 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_CONST_STRING,
152                      BT_INT, BT_CONST_STRING, BT_CONST_STRING)
153 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_CONST_STRING,
154                      BT_STRING, BT_CONST_STRING, BT_CONST_STRING)
155 DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_STRING_CONST_STRING,
156                      BT_SIZE, BT_CONST_STRING, BT_CONST_STRING)
157 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_INT,
158                      BT_STRING, BT_CONST_STRING, BT_INT)
159 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_PTR,
160                      BT_INT, BT_CONST_STRING, BT_PTR)
161 DEF_FUNCTION_TYPE_2 (BT_FN_INT_INT_PTR,
162                      BT_INT, BT_INT, BT_PTR)
163 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTRMODE_PTR,
164                      BT_VOID, BT_PTRMODE, BT_PTR)
165 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VALIST_REF_VALIST_ARG, 
166                      BT_VOID, BT_VALIST_REF, BT_VALIST_ARG)
167 DEF_FUNCTION_TYPE_2 (BT_FN_LONG_LONG_LONG,
168                      BT_LONG, BT_LONG, BT_LONG)
169 DEF_FUNCTION_TYPE_2 (BT_FN_INT_PTR_CONST_STRING,
170                      BT_INT, BT_PTR, BT_CONST_STRING)
171 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_SIZE,
172                      BT_VOID, BT_PTR, BT_SIZE)
173 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOAT,
174                      BT_FLOAT, BT_FLOAT, BT_FLOAT)
175 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLE,
176                      BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
177 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
178                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
179 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOATPTR,
180                      BT_FLOAT, BT_FLOAT, BT_FLOAT_PTR)
181 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLEPTR,
182                      BT_DOUBLE, BT_DOUBLE, BT_DOUBLE_PTR)
183 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLEPTR,
184                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR)
185 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONGDOUBLE,
186                      BT_FLOAT, BT_FLOAT, BT_LONGDOUBLE)
187 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONGDOUBLE,
188                      BT_DOUBLE, BT_DOUBLE, BT_LONGDOUBLE)
189 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INT,
190                      BT_FLOAT, BT_FLOAT, BT_INT)
191 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INT,
192                      BT_DOUBLE, BT_DOUBLE, BT_INT)
193 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INT,
194                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT)
195 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INTPTR,
196                      BT_FLOAT, BT_FLOAT, BT_INT_PTR)
197 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INTPTR,
198                      BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
199 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR,
200                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
201 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_INT_FLOAT,
202                      BT_FLOAT, BT_INT, BT_FLOAT)
203 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_INT_DOUBLE,
204                      BT_DOUBLE, BT_INT, BT_DOUBLE)
205 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_INT_LONGDOUBLE,
206                      BT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
207 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONG,
208                      BT_FLOAT, BT_FLOAT, BT_LONG)
209 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONG,
210                      BT_DOUBLE, BT_DOUBLE, BT_LONG)
211 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONG,
212                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONG)
213 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_VALIST_ARG,
214                      BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
215 DEF_FUNCTION_TYPE_2 (BT_FN_PTR_SIZE_SIZE,
216                      BT_PTR, BT_SIZE, BT_SIZE)
217 DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT, 
218                      BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
219 DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE, 
220                      BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
221 DEF_FUNCTION_TYPE_2 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, 
222                      BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
223
224 DEF_FUNCTION_TYPE_3 (BT_FN_STRING_STRING_CONST_STRING_SIZE,
225                      BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE)
226 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_SIZE,
227                      BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_SIZE)
228 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_CONST_PTR_SIZE,
229                      BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE)
230 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_PTR_CONST_PTR_SIZE,
231                      BT_INT, BT_CONST_PTR, BT_CONST_PTR, BT_SIZE)
232 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_INT_SIZE,
233                      BT_PTR, BT_PTR, BT_INT, BT_SIZE)
234 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_INT_INT,
235                      BT_VOID, BT_PTR, BT_INT, BT_INT)
236 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_CONST_PTR_PTR_SIZE,
237                      BT_VOID, BT_CONST_PTR, BT_PTR, BT_SIZE)
238 DEF_FUNCTION_TYPE_3 (BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
239                      BT_INT, BT_STRING, BT_CONST_STRING, BT_VALIST_ARG)
240 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
241                      BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_VALIST_ARG)
242 DEF_FUNCTION_TYPE_3 (BT_FN_INT_PTR_CONST_STRING_VALIST_ARG,
243                      BT_INT, BT_PTR, BT_CONST_STRING, BT_VALIST_ARG)
244 DEF_FUNCTION_TYPE_3 (BT_FN_STRING_CONST_STRING_CONST_STRING_INT,
245                      BT_STRING, BT_CONST_STRING, BT_CONST_STRING, BT_INT)
246 DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_FLOAT,
247                      BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_FLOAT)
248 DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_DOUBLE,
249                      BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
250 DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
251                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
252 DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_INTPTR,
253                      BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_INT_PTR)
254 DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR,
255                      BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
256 DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR,
257                      BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
258 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR,
259                      BT_VOID, BT_FLOAT, BT_FLOAT_PTR, BT_FLOAT_PTR)
260 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR,
261                      BT_VOID, BT_DOUBLE, BT_DOUBLE_PTR, BT_DOUBLE_PTR)
262 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR,
263                      BT_VOID, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR, BT_LONGDOUBLE_PTR)
264
265 DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR,
266                      BT_SIZE, BT_CONST_PTR, BT_SIZE, BT_SIZE, BT_PTR)
267 DEF_FUNCTION_TYPE_4 (BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
268                 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_VALIST_ARG)
269 DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR,
270                 BT_SIZE, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_CONST_PTR)
271
272 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_VOID_VAR, BT_VOID)
273 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_INT_VAR, BT_INT)
274 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_PTR_VAR, BT_PTR)
275
276 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_VALIST_REF_VAR, 
277                          BT_VOID, BT_VALIST_REF)
278 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_CONST_PTR_VAR,
279                          BT_VOID, BT_CONST_PTR)
280 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_INT_CONST_STRING_VAR,
281                          BT_INT, BT_CONST_STRING)
282
283 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_PTR_CONST_STRING_VAR,
284                          BT_INT, BT_PTR, BT_CONST_STRING)
285 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_STRING_CONST_STRING_VAR,
286                          BT_INT, BT_STRING, BT_CONST_STRING)
287 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
288                          BT_INT, BT_CONST_STRING, BT_CONST_STRING)
289
290 DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_STRING_SIZE_CONST_STRING_VAR,
291                          BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING)
292 DEF_FUNCTION_TYPE_VAR_3 (BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR,
293                          BT_SSIZE, BT_STRING, BT_SIZE, BT_CONST_STRING)
294
295 DEF_POINTER_TYPE (BT_PTR_FN_VOID_VAR, BT_FN_VOID_VAR)
296 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE,
297                      BT_PTR, BT_PTR_FN_VOID_VAR, BT_PTR, BT_SIZE)