1 /* Copyright (C
) 2001, 2002, 2003 Free Software Foundation
, Inc.
3 This file is part of GCC.
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
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
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
20 /* This header provides a declaritive way of describing the types that
21 are used when declaring builtin functions.
23 Before including this header
, you must define the following macros
:
25 DEF_PRIMITIVE_TYPE (ENUM
, TYPE)
27 The ENUM is an identifier indicating which type is being defined.
28 TYPE is an expression for a `tree
' that represents the type.
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)
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.
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)
45 Similar, but for function types that take variable arguments.
48 DEF_FUNCTION_TYPE_1 (BT_INT_DOUBLE, BT_INT, BT_DOUBLE)
50 describes the type `int ()(double)', using the enumeral
51 BT_INT_DOUBLE
, whereas
:
53 DEF_FUNCTION_TYPE_VAR_1 (BT_INT_DOUBLE_VAR
, BT_INT
, BT_DOUBLE
)
55 describes the type `
int ()(double
, ...
)'.
57 DEF_POINTER_TYPE (ENUM, TYPE)
59 This macro describes a pointer type. ENUM is as above; TYPE is
60 the type pointed to. */
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_FLOAT, float_type_node)
68 DEF_PRIMITIVE_TYPE (BT_INTMAX, intmax_type_node)
69 DEF_PRIMITIVE_TYPE (BT_DOUBLE, double_type_node)
70 DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE, long_double_type_node)
71 DEF_PRIMITIVE_TYPE (BT_COMPLEX_FLOAT, complex_float_type_node)
72 DEF_PRIMITIVE_TYPE (BT_COMPLEX_DOUBLE, complex_double_type_node)
73 DEF_PRIMITIVE_TYPE (BT_COMPLEX_LONGDOUBLE, complex_long_double_type_node)
75 DEF_PRIMITIVE_TYPE (BT_PTR, ptr_type_node)
76 DEF_PRIMITIVE_TYPE (BT_CONST_PTR, const_ptr_type_node)
77 DEF_PRIMITIVE_TYPE (BT_PTRMODE, (*lang_hooks.types.type_for_mode)(ptr_mode, 0))
78 DEF_PRIMITIVE_TYPE (BT_INT_PTR, integer_ptr_type_node)
79 DEF_PRIMITIVE_TYPE (BT_FLOAT_PTR, float_ptr_type_node)
80 DEF_PRIMITIVE_TYPE (BT_DOUBLE_PTR, double_ptr_type_node)
81 DEF_PRIMITIVE_TYPE (BT_LONGDOUBLE_PTR, long_double_ptr_type_node)
82 DEF_PRIMITIVE_TYPE (BT_SIZE, size_type_node)
83 DEF_PRIMITIVE_TYPE (BT_SSIZE, signed_size_type_node)
84 DEF_PRIMITIVE_TYPE (BT_STRING, string_type_node)
85 DEF_PRIMITIVE_TYPE (BT_CONST_STRING, const_string_type_node)
87 DEF_PRIMITIVE_TYPE (BT_VALIST_REF, va_list_ref_type_node)
88 DEF_PRIMITIVE_TYPE (BT_VALIST_ARG, va_list_arg_type_node)
90 DEF_FUNCTION_TYPE_0 (BT_FN_VOID, BT_VOID)
91 DEF_FUNCTION_TYPE_0 (BT_FN_PTR, BT_PTR)
92 DEF_FUNCTION_TYPE_0 (BT_FN_UNSIGNED, BT_UNSIGNED)
93 DEF_FUNCTION_TYPE_0 (BT_FN_FLOAT, BT_FLOAT)
94 DEF_FUNCTION_TYPE_0 (BT_FN_DOUBLE, BT_DOUBLE)
95 /* For "long double" we use LONGDOUBLE (not LONG_DOUBLE) to
96 distinguish it from two types in sequence, "long" followed by
98 DEF_FUNCTION_TYPE_0 (BT_FN_LONGDOUBLE, BT_LONGDOUBLE)
100 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONG, BT_LONG, BT_LONG)
101 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGLONG, BT_LONGLONG, BT_LONGLONG)
102 DEF_FUNCTION_TYPE_1 (BT_FN_INTMAX_INTMAX, BT_INTMAX, BT_INTMAX)
103 DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_FLOAT, BT_FLOAT, BT_FLOAT)
104 DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_DOUBLE, BT_DOUBLE, BT_DOUBLE)
105 DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_LONGDOUBLE,
106 BT_LONGDOUBLE, BT_LONGDOUBLE)
107 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT,
108 BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)
109 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
110 BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE)
111 DEF_FUNCTION_TYPE_1 (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE,
112 BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
113 DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_COMPLEX_FLOAT,
114 BT_FLOAT, BT_COMPLEX_FLOAT)
115 DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_COMPLEX_DOUBLE,
116 BT_DOUBLE, BT_COMPLEX_DOUBLE)
117 DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_COMPLEX_LONGDOUBLE,
118 BT_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE)
119 DEF_FUNCTION_TYPE_1 (BT_FN_PTR_UNSIGNED, BT_PTR, BT_UNSIGNED)
120 DEF_FUNCTION_TYPE_1 (BT_FN_PTR_SIZE, BT_PTR, BT_SIZE)
121 DEF_FUNCTION_TYPE_1 (BT_FN_INT_INT, BT_INT, BT_INT)
122 DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONG, BT_INT, BT_LONG)
123 DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGLONG, BT_INT, BT_LONGLONG)
124 DEF_FUNCTION_TYPE_1 (BT_FN_INT_PTR, BT_INT, BT_PTR)
125 DEF_FUNCTION_TYPE_1 (BT_FN_INT_FLOAT, BT_INT, BT_FLOAT)
126 DEF_FUNCTION_TYPE_1 (BT_FN_INT_DOUBLE, BT_INT, BT_DOUBLE)
127 DEF_FUNCTION_TYPE_1 (BT_FN_INT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
128 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_FLOAT, BT_LONG, BT_FLOAT)
129 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_DOUBLE, BT_LONG, BT_DOUBLE)
130 DEF_FUNCTION_TYPE_1 (BT_FN_LONG_LONGDOUBLE, BT_LONG, BT_LONGDOUBLE)
131 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_FLOAT, BT_LONGLONG, BT_FLOAT)
132 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_DOUBLE, BT_LONGLONG, BT_DOUBLE)
133 DEF_FUNCTION_TYPE_1 (BT_FN_LONGLONG_LONGDOUBLE, BT_LONGLONG, BT_LONGDOUBLE)
134 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_PTR, BT_VOID, BT_PTR)
135 DEF_FUNCTION_TYPE_1 (BT_FN_SIZE_CONST_STRING, BT_SIZE, BT_CONST_STRING)
136 DEF_FUNCTION_TYPE_1 (BT_FN_INT_CONST_STRING, BT_INT, BT_CONST_STRING)
137 DEF_FUNCTION_TYPE_1 (BT_FN_PTR_PTR, BT_PTR, BT_PTR)
138 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_VALIST_REF, BT_VOID, BT_VALIST_REF)
139 DEF_FUNCTION_TYPE_1 (BT_FN_VOID_INT, BT_VOID, BT_INT)
140 DEF_FUNCTION_TYPE_1 (BT_FN_FLOAT_CONST_STRING, BT_FLOAT, BT_CONST_STRING)
141 DEF_FUNCTION_TYPE_1 (BT_FN_DOUBLE_CONST_STRING, BT_DOUBLE, BT_CONST_STRING)
142 DEF_FUNCTION_TYPE_1 (BT_FN_LONGDOUBLE_CONST_STRING,
143 BT_LONGDOUBLE, BT_CONST_STRING)
144 DEF_FUNCTION_TYPE_1 (BT_FN_STRING_CONST_STRING, BT_STRING, BT_CONST_STRING)
146 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_INT, BT_VOID, BT_PTR, BT_INT)
147 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_STRING_CONST_STRING,
148 BT_STRING, BT_STRING, BT_CONST_STRING)
149 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_CONST_STRING,
150 BT_INT, BT_CONST_STRING, BT_CONST_STRING)
151 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_CONST_STRING,
152 BT_STRING, BT_CONST_STRING, BT_CONST_STRING)
153 DEF_FUNCTION_TYPE_2 (BT_FN_SIZE_CONST_STRING_CONST_STRING,
154 BT_SIZE, BT_CONST_STRING, BT_CONST_STRING)
155 DEF_FUNCTION_TYPE_2 (BT_FN_STRING_CONST_STRING_INT,
156 BT_STRING, BT_CONST_STRING, BT_INT)
157 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_PTR,
158 BT_INT, BT_CONST_STRING, BT_PTR)
159 DEF_FUNCTION_TYPE_2 (BT_FN_INT_INT_PTR,
160 BT_INT, BT_INT, BT_PTR)
161 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTRMODE_PTR,
162 BT_VOID, BT_PTRMODE, BT_PTR)
163 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_VALIST_REF_VALIST_ARG,
164 BT_VOID, BT_VALIST_REF, BT_VALIST_ARG)
165 DEF_FUNCTION_TYPE_2 (BT_FN_LONG_LONG_LONG,
166 BT_LONG, BT_LONG, BT_LONG)
167 DEF_FUNCTION_TYPE_2 (BT_FN_INT_PTR_CONST_STRING,
168 BT_INT, BT_PTR, BT_CONST_STRING)
169 DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_SIZE,
170 BT_VOID, BT_PTR, BT_SIZE)
171 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOAT,
172 BT_FLOAT, BT_FLOAT, BT_FLOAT)
173 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLE,
174 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
175 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
176 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
177 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_FLOATPTR,
178 BT_FLOAT, BT_FLOAT, BT_FLOAT_PTR)
179 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_DOUBLEPTR,
180 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE_PTR)
181 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLEPTR,
182 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR)
183 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONGDOUBLE,
184 BT_FLOAT, BT_FLOAT, BT_LONGDOUBLE)
185 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONGDOUBLE,
186 BT_DOUBLE, BT_DOUBLE, BT_LONGDOUBLE)
187 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INT,
188 BT_FLOAT, BT_FLOAT, BT_INT)
189 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INT,
190 BT_DOUBLE, BT_DOUBLE, BT_INT)
191 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INT,
192 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT)
193 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_INTPTR,
194 BT_FLOAT, BT_FLOAT, BT_INT_PTR)
195 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_INTPTR,
196 BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
197 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR,
198 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
199 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_INT_FLOAT,
200 BT_FLOAT, BT_INT, BT_FLOAT)
201 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_INT_DOUBLE,
202 BT_DOUBLE, BT_INT, BT_DOUBLE)
203 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_INT_LONGDOUBLE,
204 BT_LONGDOUBLE, BT_INT, BT_LONGDOUBLE)
205 DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_FLOAT_LONG,
206 BT_FLOAT, BT_FLOAT, BT_LONG)
207 DEF_FUNCTION_TYPE_2 (BT_FN_DOUBLE_DOUBLE_LONG,
208 BT_DOUBLE, BT_DOUBLE, BT_LONG)
209 DEF_FUNCTION_TYPE_2 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONG,
210 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONG)
211 DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_VALIST_ARG,
212 BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
213 DEF_FUNCTION_TYPE_2 (BT_FN_PTR_SIZE_SIZE,
214 BT_PTR, BT_SIZE, BT_SIZE)
216 DEF_FUNCTION_TYPE_3 (BT_FN_STRING_STRING_CONST_STRING_SIZE,
217 BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE)
218 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_SIZE,
219 BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_SIZE)
220 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_CONST_PTR_SIZE,
221 BT_PTR, BT_PTR, BT_CONST_PTR, BT_SIZE)
222 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_PTR_CONST_PTR_SIZE,
223 BT_INT, BT_CONST_PTR, BT_CONST_PTR, BT_SIZE)
224 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_INT_SIZE,
225 BT_PTR, BT_PTR, BT_INT, BT_SIZE)
226 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_INT_INT,
227 BT_VOID, BT_PTR, BT_INT, BT_INT)
228 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_CONST_PTR_PTR_SIZE,
229 BT_VOID, BT_CONST_PTR, BT_PTR, BT_SIZE)
230 DEF_FUNCTION_TYPE_3 (BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
231 BT_INT, BT_STRING, BT_CONST_STRING, BT_VALIST_ARG)
232 DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
233 BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_VALIST_ARG)
234 DEF_FUNCTION_TYPE_3 (BT_FN_INT_PTR_CONST_STRING_VALIST_ARG,
235 BT_INT, BT_PTR, BT_CONST_STRING, BT_VALIST_ARG)
236 DEF_FUNCTION_TYPE_3 (BT_FN_STRING_CONST_STRING_CONST_STRING_INT,
237 BT_STRING, BT_CONST_STRING, BT_CONST_STRING, BT_INT)
238 DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_FLOAT,
239 BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_FLOAT)
240 DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_DOUBLE,
241 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_DOUBLE)
242 DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE,
243 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE)
244 DEF_FUNCTION_TYPE_3 (BT_FN_FLOAT_FLOAT_FLOAT_INTPTR,
245 BT_FLOAT, BT_FLOAT, BT_FLOAT, BT_INT_PTR)
246 DEF_FUNCTION_TYPE_3 (BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR,
247 BT_DOUBLE, BT_DOUBLE, BT_DOUBLE, BT_INT_PTR)
248 DEF_FUNCTION_TYPE_3 (BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR,
249 BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INT_PTR)
250 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR,
251 BT_VOID, BT_FLOAT, BT_FLOAT_PTR, BT_FLOAT_PTR)
252 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR,
253 BT_VOID, BT_DOUBLE, BT_DOUBLE_PTR, BT_DOUBLE_PTR)
254 DEF_FUNCTION_TYPE_3 (BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR,
255 BT_VOID, BT_LONGDOUBLE, BT_LONGDOUBLE_PTR, BT_LONGDOUBLE_PTR)
257 DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR,
258 BT_SIZE, BT_CONST_PTR, BT_SIZE, BT_SIZE, BT_PTR)
259 DEF_FUNCTION_TYPE_4 (BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
260 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_VALIST_ARG)
261 DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR,
262 BT_SIZE, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_CONST_PTR)
264 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_VOID_VAR, BT_VOID)
265 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_INT_VAR, BT_INT)
266 DEF_FUNCTION_TYPE_VAR_0 (BT_FN_PTR_VAR, BT_PTR)
268 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_VALIST_REF_VAR,
269 BT_VOID, BT_VALIST_REF)
270 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_VOID_CONST_PTR_VAR,
271 BT_VOID, BT_CONST_PTR)
272 DEF_FUNCTION_TYPE_VAR_1 (BT_FN_INT_CONST_STRING_VAR,
273 BT_INT, BT_CONST_STRING)
275 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_PTR_CONST_STRING_VAR,
276 BT_INT, BT_PTR, BT_CONST_STRING)
277 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_STRING_CONST_STRING_VAR,
278 BT_INT, BT_STRING, BT_CONST_STRING)
279 DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
280 BT_INT, BT_CONST_STRING, BT_CONST_STRING)
282 DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_STRING_SIZE_CONST_STRING_VAR,
283 BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING)
284 DEF_FUNCTION_TYPE_VAR_3 (BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR,
285 BT_SSIZE, BT_STRING, BT_SIZE, BT_CONST_STRING)
287 DEF_POINTER_TYPE (BT_PTR_FN_VOID_VAR, BT_FN_VOID_VAR)
288 DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE,
289 BT_PTR, BT_PTR_FN_VOID_VAR, BT_PTR, BT_SIZE)