r6454@lvps87-230-33-50: verhaegs | 2007-12-18 22:53:32 +0100
[cake.git] / compiler / arossupport / include / libcall.h
blob5b62b30b12f1906cfa075a35eb9759d2babfc1c4
1 /*
2 Copyright © 1995-2007, The AROS Development Team. All rights reserved.
3 $Id$
4 */
6 #ifndef AROS_LIBCALL_H
7 #define AROS_LIBCALL_H
9 /******************************************************************************
11 MODUL
12 $Id$
14 DESCRIPTION
15 Some macros to build functions with registerized parameters on the
16 different compilers around. Usage:
18 AROS_LH<n><f>(type, name, type1, name1, reg1, ...)
20 \* Function starts here. *\
23 <n> - Number of arguments of the function (not including the
24 library base).
26 <f> - 'I' means: Function ignores library base.
27 This is useful to get rid of warnings about unused arguments.
29 type - Returntype of the function.
31 name - Name of the function. A underscore '_' is prepended so that
32 following functions jump over the base vector and don't call
33 the function directly.
35 type<i>, name<i>, reg<i> - Type, name and register for the
36 arguments. Register names are written uppercase because they
37 are preprocessor symbols.
39 Example: Define a Exec compatible RemHead function.
41 AROS_LH1I(struct Node *, RemHead,
42 struct List *, list, A0,
43 struct ExecBase, SysBase, 43, Exec)
45 // Hier *keine* ";" !!
46 AROS_LIBFUNC_INIT
48 struct Node *node;
50 node=list->lh_Head;
51 if(node->ln_Succ==NULL)
52 return NULL;
53 Remove(node);
54 return node;
56 // NACH return !!
57 AROS_LIBFUNC_EXIT
60 ******************************************************************************/
62 /* System-Specific things */
63 #ifndef AROS_SYSTEM_H
64 # include <aros/system.h>
65 #endif
67 #ifndef __typedef_VOID_FUNC
68 #define __typedef_VOID_FUNC
69 typedef void (*VOID_FUNC)();
70 #endif
71 #ifndef __typedef_LONG_FUNC
72 #define __typedef_LONG_FUNC
73 typedef int (*LONG_FUNC)();
74 #endif
75 #ifndef __typedef_ULONG_FUNC
76 #define __typedef_ULONG_FUNC
77 typedef unsigned int (*ULONG_FUNC)();
78 #endif
80 /* Declare all macros which the systems' libcall didn't */
81 #ifndef __AROS_SLIB_ENTRY
82 # define __AROS_SLIB_ENTRY(n,s) s ## _ ## n
83 #endif
84 #ifndef AROS_SLIB_ENTRY
86 This is to allow the C preprocessor to expand n and s before they are
87 maybe concatenated (the CPP first evaluates a ## b and the tries
88 to expand ab instead of expanding a and b and then concatenating the
89 results
91 # define AROS_SLIB_ENTRY(n,s) __AROS_SLIB_ENTRY(n,s)
92 #endif
94 #if !(UseRegisterArgs && defined(AROS_COMPILER_NO_REGARGS)) && !defined(__AROS_CPU_SPECIFIC_LIBCALLS)
95 /* Library functions which need the libbase */
96 #define AROS_LHQUAD1(t,n,a1,bt,bn,o,s) \
97 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
98 __AROS_LHAQUAD(a1),\
99 __AROS_LH_BASE(bt,bn)) {
100 #define AROS_LHQUAD2(t,n,a1,a2,bt,bn,o,s) \
101 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
102 __AROS_LHAQUAD(a1),\
103 __AROS_LHAQUAD(a2),\
104 __AROS_LH_BASE(bt,bn)) {
106 #define AROS_LH0(t,n,bt,bn,o,s) \
107 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
108 __AROS_LH_BASE(bt,bn)) {
109 #define AROS_LH1(t,n,a1,bt,bn,o,s) \
110 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
111 __AROS_LHA(a1),\
112 __AROS_LH_BASE(bt,bn)) {
113 #define AROS_LH2(t,n,a1,a2,bt,bn,o,s) \
114 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
115 __AROS_LHA(a1),\
116 __AROS_LHA(a2),\
117 __AROS_LH_BASE(bt,bn)) {
118 #define AROS_LH3(t,n,a1,a2,a3,bt,bn,o,s) \
119 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
120 __AROS_LHA(a1),\
121 __AROS_LHA(a2),\
122 __AROS_LHA(a3),\
123 __AROS_LH_BASE(bt,bn)) {
124 #define AROS_LH4(t,n,a1,a2,a3,a4,bt,bn,o,s) \
125 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
126 __AROS_LHA(a1),\
127 __AROS_LHA(a2),\
128 __AROS_LHA(a3),\
129 __AROS_LHA(a4),\
130 __AROS_LH_BASE(bt,bn)) {
131 #define AROS_LH5(t,n,a1,a2,a3,a4,a5,bt,bn,o,s) \
132 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
133 __AROS_LHA(a1),\
134 __AROS_LHA(a2),\
135 __AROS_LHA(a3),\
136 __AROS_LHA(a4),\
137 __AROS_LHA(a5),\
138 __AROS_LH_BASE(bt,bn)) {
139 #define AROS_LH6(t,n,a1,a2,a3,a4,a5,a6,bt,bn,o,s) \
140 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
141 __AROS_LHA(a1),\
142 __AROS_LHA(a2),\
143 __AROS_LHA(a3),\
144 __AROS_LHA(a4),\
145 __AROS_LHA(a5),\
146 __AROS_LHA(a6),\
147 __AROS_LH_BASE(bt,bn)) {
148 #define AROS_LH7(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s) \
149 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
150 __AROS_LHA(a1),\
151 __AROS_LHA(a2),\
152 __AROS_LHA(a3),\
153 __AROS_LHA(a4),\
154 __AROS_LHA(a5),\
155 __AROS_LHA(a6),\
156 __AROS_LHA(a7),\
157 __AROS_LH_BASE(bt,bn)) {
158 #define AROS_LH8(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s) \
159 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
160 __AROS_LHA(a1),\
161 __AROS_LHA(a2),\
162 __AROS_LHA(a3),\
163 __AROS_LHA(a4),\
164 __AROS_LHA(a5),\
165 __AROS_LHA(a6),\
166 __AROS_LHA(a7),\
167 __AROS_LHA(a8),\
168 __AROS_LH_BASE(bt,bn)) {
169 #define AROS_LH9(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
170 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
171 __AROS_LHA(a1),\
172 __AROS_LHA(a2),\
173 __AROS_LHA(a3),\
174 __AROS_LHA(a4),\
175 __AROS_LHA(a5),\
176 __AROS_LHA(a6),\
177 __AROS_LHA(a7),\
178 __AROS_LHA(a8),\
179 __AROS_LHA(a9),\
180 __AROS_LH_BASE(bt,bn)) {
181 #define AROS_LH10(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s) \
182 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
183 __AROS_LHA(a1),\
184 __AROS_LHA(a2),\
185 __AROS_LHA(a3),\
186 __AROS_LHA(a4),\
187 __AROS_LHA(a5),\
188 __AROS_LHA(a6),\
189 __AROS_LHA(a7),\
190 __AROS_LHA(a8),\
191 __AROS_LHA(a9),\
192 __AROS_LHA(a10),\
193 __AROS_LH_BASE(bt,bn)) {
194 #define AROS_LH11(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn,o,s) \
195 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
196 __AROS_LHA(a1),\
197 __AROS_LHA(a2),\
198 __AROS_LHA(a3),\
199 __AROS_LHA(a4),\
200 __AROS_LHA(a5),\
201 __AROS_LHA(a6),\
202 __AROS_LHA(a7),\
203 __AROS_LHA(a8),\
204 __AROS_LHA(a9),\
205 __AROS_LHA(a10),\
206 __AROS_LHA(a11),\
207 __AROS_LH_BASE(bt,bn)) {
208 #define AROS_LH12(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn,o,s) \
209 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
210 __AROS_LHA(a1),\
211 __AROS_LHA(a2),\
212 __AROS_LHA(a3),\
213 __AROS_LHA(a4),\
214 __AROS_LHA(a5),\
215 __AROS_LHA(a6),\
216 __AROS_LHA(a7),\
217 __AROS_LHA(a8),\
218 __AROS_LHA(a9),\
219 __AROS_LHA(a10),\
220 __AROS_LHA(a11),\
221 __AROS_LHA(a12),\
222 __AROS_LH_BASE(bt,bn)) {
223 #define AROS_LH13(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn,o,s) \
224 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
225 __AROS_LHA(a1),\
226 __AROS_LHA(a2),\
227 __AROS_LHA(a3),\
228 __AROS_LHA(a4),\
229 __AROS_LHA(a5),\
230 __AROS_LHA(a6),\
231 __AROS_LHA(a7),\
232 __AROS_LHA(a8),\
233 __AROS_LHA(a9),\
234 __AROS_LHA(a10),\
235 __AROS_LHA(a11),\
236 __AROS_LHA(a12),\
237 __AROS_LHA(a13),\
238 __AROS_LH_BASE(bt,bn)) {
239 #define AROS_LH14(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,bt,bn,o,s) \
240 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
241 __AROS_LHA(a1),\
242 __AROS_LHA(a2),\
243 __AROS_LHA(a3),\
244 __AROS_LHA(a4),\
245 __AROS_LHA(a5),\
246 __AROS_LHA(a6),\
247 __AROS_LHA(a7),\
248 __AROS_LHA(a8),\
249 __AROS_LHA(a9),\
250 __AROS_LHA(a10),\
251 __AROS_LHA(a11),\
252 __AROS_LHA(a12),\
253 __AROS_LHA(a13),\
254 __AROS_LHA(a14),\
255 __AROS_LH_BASE(bt,bn)) {
256 #define AROS_LH15(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,bt,bn,o,s) \
257 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
258 __AROS_LHA(a1),\
259 __AROS_LHA(a2),\
260 __AROS_LHA(a3),\
261 __AROS_LHA(a4),\
262 __AROS_LHA(a5),\
263 __AROS_LHA(a6),\
264 __AROS_LHA(a7),\
265 __AROS_LHA(a8),\
266 __AROS_LHA(a9),\
267 __AROS_LHA(a10),\
268 __AROS_LHA(a11),\
269 __AROS_LHA(a12),\
270 __AROS_LHA(a13),\
271 __AROS_LHA(a14),\
272 __AROS_LHA(a15),\
273 __AROS_LH_BASE(bt,bn)) {
275 /* Library functions which don't need the libbase */
276 #define AROS_LH0I(t,n,bt,bn,o,s) \
277 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(void) {
278 #define AROS_LH1I(t,n,a1,bt,bn,o,s) \
279 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
280 __AROS_LHA(a1)\
282 #define AROS_LH2I(t,n,a1,a2,bt,bn,o,s) \
283 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
284 __AROS_LHA(a1),\
285 __AROS_LHA(a2)\
287 #define AROS_LH3I(t,n,a1,a2,a3,bt,bn,o,s) \
288 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
289 __AROS_LHA(a1),\
290 __AROS_LHA(a2),\
291 __AROS_LHA(a3)\
293 #define AROS_LH4I(t,n,a1,a2,a3,a4,bt,bn,o,s) \
294 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
295 __AROS_LHA(a1),\
296 __AROS_LHA(a2),\
297 __AROS_LHA(a3),\
298 __AROS_LHA(a4)\
300 #define AROS_LH5I(t,n,a1,a2,a3,a4,a5,bt,bn,o,s) \
301 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
302 __AROS_LHA(a1),\
303 __AROS_LHA(a2),\
304 __AROS_LHA(a3),\
305 __AROS_LHA(a4),\
306 __AROS_LHA(a5)\
308 #define AROS_LH6I(t,n,a1,a2,a3,a4,a5,a6,bt,bn,o,s) \
309 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
310 __AROS_LHA(a1),\
311 __AROS_LHA(a2),\
312 __AROS_LHA(a3),\
313 __AROS_LHA(a4),\
314 __AROS_LHA(a5),\
315 __AROS_LHA(a6)\
317 #define AROS_LH7I(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s) \
318 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
319 __AROS_LHA(a1),\
320 __AROS_LHA(a2),\
321 __AROS_LHA(a3),\
322 __AROS_LHA(a4),\
323 __AROS_LHA(a5),\
324 __AROS_LHA(a6),\
325 __AROS_LHA(a7)\
327 #define AROS_LH8I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s) \
328 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
329 __AROS_LHA(a1),\
330 __AROS_LHA(a2),\
331 __AROS_LHA(a3),\
332 __AROS_LHA(a4),\
333 __AROS_LHA(a5),\
334 __AROS_LHA(a6),\
335 __AROS_LHA(a7),\
336 __AROS_LHA(a8)\
338 #define AROS_LH9I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
339 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
340 __AROS_LHA(a1),\
341 __AROS_LHA(a2),\
342 __AROS_LHA(a3),\
343 __AROS_LHA(a4),\
344 __AROS_LHA(a5),\
345 __AROS_LHA(a6),\
346 __AROS_LHA(a7),\
347 __AROS_LHA(a8),\
348 __AROS_LHA(a9)\
350 #define AROS_LH10I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s) \
351 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
352 __AROS_LHA(a1),\
353 __AROS_LHA(a2),\
354 __AROS_LHA(a3),\
355 __AROS_LHA(a4),\
356 __AROS_LHA(a5),\
357 __AROS_LHA(a6),\
358 __AROS_LHA(a7),\
359 __AROS_LHA(a8),\
360 __AROS_LHA(a9),\
361 __AROS_LHA(a10)\
363 #define AROS_LH11I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn,o,s) \
364 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
365 __AROS_LHA(a1),\
366 __AROS_LHA(a2),\
367 __AROS_LHA(a3),\
368 __AROS_LHA(a4),\
369 __AROS_LHA(a5),\
370 __AROS_LHA(a6),\
371 __AROS_LHA(a7),\
372 __AROS_LHA(a8),\
373 __AROS_LHA(a9),\
374 __AROS_LHA(a10),\
375 __AROS_LHA(a11)\
377 #define AROS_LH12I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn,o,s) \
378 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
379 __AROS_LHA(a1),\
380 __AROS_LHA(a2),\
381 __AROS_LHA(a3),\
382 __AROS_LHA(a4),\
383 __AROS_LHA(a5),\
384 __AROS_LHA(a6),\
385 __AROS_LHA(a7),\
386 __AROS_LHA(a8),\
387 __AROS_LHA(a9),\
388 __AROS_LHA(a10),\
389 __AROS_LHA(a11),\
390 __AROS_LHA(a12)\
392 #define AROS_LH13I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn,o,s) \
393 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
394 __AROS_LHA(a1),\
395 __AROS_LHA(a2),\
396 __AROS_LHA(a3),\
397 __AROS_LHA(a4),\
398 __AROS_LHA(a5),\
399 __AROS_LHA(a6),\
400 __AROS_LHA(a7),\
401 __AROS_LHA(a8),\
402 __AROS_LHA(a9),\
403 __AROS_LHA(a10),\
404 __AROS_LHA(a11),\
405 __AROS_LHA(a12),\
406 __AROS_LHA(a13)\
408 #define AROS_LH14I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,bt,bn,o,s) \
409 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
410 __AROS_LHA(a1),\
411 __AROS_LHA(a2),\
412 __AROS_LHA(a3),\
413 __AROS_LHA(a4),\
414 __AROS_LHA(a5),\
415 __AROS_LHA(a6),\
416 __AROS_LHA(a7),\
417 __AROS_LHA(a8),\
418 __AROS_LHA(a9),\
419 __AROS_LHA(a10),\
420 __AROS_LHA(a11),\
421 __AROS_LHA(a12),\
422 __AROS_LHA(a13),\
423 __AROS_LHA(a14)\
425 #define AROS_LH15I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,bt,bn,o,s) \
426 __AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
427 __AROS_LHA(a1),\
428 __AROS_LHA(a2),\
429 __AROS_LHA(a3),\
430 __AROS_LHA(a4),\
431 __AROS_LHA(a5),\
432 __AROS_LHA(a6),\
433 __AROS_LHA(a7),\
434 __AROS_LHA(a8),\
435 __AROS_LHA(a9),\
436 __AROS_LHA(a10),\
437 __AROS_LHA(a11),\
438 __AROS_LHA(a12),\
439 __AROS_LHA(a13),\
440 __AROS_LHA(a14),\
441 __AROS_LHA(a15)\
444 /* Call a library function which requires the libbase */
445 #define AROS_LCQUAD1(t,n,a1,bt,bn,o,s) \
446 (((__AROS_LC_PREFIX t(*)(\
447 __AROS_LPAQUAD(a1),\
448 __AROS_LP_BASE(bt,bn)))__AROS_GETVECADDR(bn,o))(\
449 __AROS_LCAQUAD(a1),\
450 __AROS_LC_BASE(bt,bn)))
451 #define AROS_LCQUAD2(t,n,a1,a2,bt,bn,o,s) \
452 (((__AROS_LC_PREFIX t(*)(\
453 __AROS_LPAQUAD(a1),\
454 __AROS_LPAQUAD(a2),\
455 __AROS_LP_BASE(bt,bn)))__AROS_GETVECADDR(bn,o))(\
456 __AROS_LCAQUAD(a1),\
457 __AROS_LCAQUAD(a2),\
458 __AROS_LC_BASE(bt,bn)))
460 #define AROS_LC0(t,n,bt,bn,o,s) \
461 (((__AROS_LC_PREFIX t(*)(\
462 __AROS_LP_BASE(bt,bn)))__AROS_GETVECADDR(bn,o))(\
463 __AROS_LC_BASE(bt,bn)))
464 #define AROS_LC1(t,n,a1,bt,bn,o,s) \
465 (((__AROS_LC_PREFIX t(*)(\
466 __AROS_LPA(a1),\
467 __AROS_LP_BASE(bt,bn)))__AROS_GETVECADDR(bn,o))(\
468 __AROS_LCA(a1),\
469 __AROS_LC_BASE(bt,bn)))
470 #define AROS_LC2(t,n,a1,a2,bt,bn,o,s) \
471 (((__AROS_LC_PREFIX t(*)(\
472 __AROS_LPA(a1),\
473 __AROS_LPA(a2),\
474 __AROS_LP_BASE(bt,bn)))__AROS_GETVECADDR(bn,o))(\
475 __AROS_LCA(a1),\
476 __AROS_LCA(a2),\
477 __AROS_LC_BASE(bt,bn)))
478 #define AROS_LC3(t,n,a1,a2,a3,bt,bn,o,s) \
479 (((__AROS_LC_PREFIX t(*)(\
480 __AROS_LPA(a1),\
481 __AROS_LPA(a2),\
482 __AROS_LPA(a3),\
483 __AROS_LP_BASE(bt,bn)))__AROS_GETVECADDR(bn,o))(\
484 __AROS_LCA(a1),\
485 __AROS_LCA(a2),\
486 __AROS_LCA(a3),\
487 __AROS_LC_BASE(bt,bn)))
488 #define AROS_LC4(t,n,a1,a2,a3,a4,bt,bn,o,s) \
489 (((__AROS_LC_PREFIX t(*)(\
490 __AROS_LPA(a1),\
491 __AROS_LPA(a2),\
492 __AROS_LPA(a3),\
493 __AROS_LPA(a4),\
494 __AROS_LP_BASE(bt,bn)))__AROS_GETVECADDR(bn,o))(\
495 __AROS_LCA(a1),\
496 __AROS_LCA(a2),\
497 __AROS_LCA(a3),\
498 __AROS_LCA(a4),\
499 __AROS_LC_BASE(bt,bn)))
500 #define AROS_LC5(t,n,a1,a2,a3,a4,a5,bt,bn,o,s) \
501 (((__AROS_LC_PREFIX t(*)(\
502 __AROS_LPA(a1),\
503 __AROS_LPA(a2),\
504 __AROS_LPA(a3),\
505 __AROS_LPA(a4),\
506 __AROS_LPA(a5),\
507 __AROS_LP_BASE(bt,bn)))__AROS_GETVECADDR(bn,o))(\
508 __AROS_LCA(a1),\
509 __AROS_LCA(a2),\
510 __AROS_LCA(a3),\
511 __AROS_LCA(a4),\
512 __AROS_LCA(a5),\
513 __AROS_LC_BASE(bt,bn)))
514 #define AROS_LC6(t,n,a1,a2,a3,a4,a5,a6,bt,bn,o,s) \
515 (((__AROS_LC_PREFIX t(*)(\
516 __AROS_LPA(a1),\
517 __AROS_LPA(a2),\
518 __AROS_LPA(a3),\
519 __AROS_LPA(a4),\
520 __AROS_LPA(a5),\
521 __AROS_LPA(a6),\
522 __AROS_LP_BASE(bt,bn)))__AROS_GETVECADDR(bn,o))(\
523 __AROS_LCA(a1),\
524 __AROS_LCA(a2),\
525 __AROS_LCA(a3),\
526 __AROS_LCA(a4),\
527 __AROS_LCA(a5),\
528 __AROS_LCA(a6),\
529 __AROS_LC_BASE(bt,bn)))
530 #define AROS_LC7(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s) \
531 (((__AROS_LC_PREFIX t(*)(\
532 __AROS_LPA(a1),\
533 __AROS_LPA(a2),\
534 __AROS_LPA(a3),\
535 __AROS_LPA(a4),\
536 __AROS_LPA(a5),\
537 __AROS_LPA(a6),\
538 __AROS_LPA(a7),\
539 __AROS_LP_BASE(bt,bn)))__AROS_GETVECADDR(bn,o))(\
540 __AROS_LCA(a1),\
541 __AROS_LCA(a2),\
542 __AROS_LCA(a3),\
543 __AROS_LCA(a4),\
544 __AROS_LCA(a5),\
545 __AROS_LCA(a6),\
546 __AROS_LCA(a7),\
547 __AROS_LC_BASE(bt,bn)))
548 #define AROS_LC8(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s) \
549 (((__AROS_LC_PREFIX t(*)(\
550 __AROS_LPA(a1),\
551 __AROS_LPA(a2),\
552 __AROS_LPA(a3),\
553 __AROS_LPA(a4),\
554 __AROS_LPA(a5),\
555 __AROS_LPA(a6),\
556 __AROS_LPA(a7),\
557 __AROS_LPA(a8),\
558 __AROS_LP_BASE(bt,bn)))__AROS_GETVECADDR(bn,o))(\
559 __AROS_LCA(a1),\
560 __AROS_LCA(a2),\
561 __AROS_LCA(a3),\
562 __AROS_LCA(a4),\
563 __AROS_LCA(a5),\
564 __AROS_LCA(a6),\
565 __AROS_LCA(a7),\
566 __AROS_LCA(a8),\
567 __AROS_LC_BASE(bt,bn)))
568 #define AROS_LC9(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
569 (((__AROS_LC_PREFIX t(*)(\
570 __AROS_LPA(a1),\
571 __AROS_LPA(a2),\
572 __AROS_LPA(a3),\
573 __AROS_LPA(a4),\
574 __AROS_LPA(a5),\
575 __AROS_LPA(a6),\
576 __AROS_LPA(a7),\
577 __AROS_LPA(a8),\
578 __AROS_LPA(a9),\
579 __AROS_LP_BASE(bt,bn)))__AROS_GETVECADDR(bn,o))(\
580 __AROS_LCA(a1),\
581 __AROS_LCA(a2),\
582 __AROS_LCA(a3),\
583 __AROS_LCA(a4),\
584 __AROS_LCA(a5),\
585 __AROS_LCA(a6),\
586 __AROS_LCA(a7),\
587 __AROS_LCA(a8),\
588 __AROS_LCA(a9),\
589 __AROS_LC_BASE(bt,bn)))
590 #define AROS_LC10(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s) \
591 (((__AROS_LC_PREFIX t(*)(\
592 __AROS_LPA(a1),\
593 __AROS_LPA(a2),\
594 __AROS_LPA(a3),\
595 __AROS_LPA(a4),\
596 __AROS_LPA(a5),\
597 __AROS_LPA(a6),\
598 __AROS_LPA(a7),\
599 __AROS_LPA(a8),\
600 __AROS_LPA(a9),\
601 __AROS_LPA(a10),\
602 __AROS_LP_BASE(bt,bn)))__AROS_GETVECADDR(bn,o))(\
603 __AROS_LCA(a1),\
604 __AROS_LCA(a2),\
605 __AROS_LCA(a3),\
606 __AROS_LCA(a4),\
607 __AROS_LCA(a5),\
608 __AROS_LCA(a6),\
609 __AROS_LCA(a7),\
610 __AROS_LCA(a8),\
611 __AROS_LCA(a9),\
612 __AROS_LCA(a10),\
613 __AROS_LC_BASE(bt,bn)))
614 #define AROS_LC11(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn,o,s) \
615 (((__AROS_LC_PREFIX t(*)(\
616 __AROS_LPA(a1),\
617 __AROS_LPA(a2),\
618 __AROS_LPA(a3),\
619 __AROS_LPA(a4),\
620 __AROS_LPA(a5),\
621 __AROS_LPA(a6),\
622 __AROS_LPA(a7),\
623 __AROS_LPA(a8),\
624 __AROS_LPA(a9),\
625 __AROS_LPA(a10),\
626 __AROS_LPA(a11),\
627 __AROS_LP_BASE(bt,bn)))__AROS_GETVECADDR(bn,o))(\
628 __AROS_LCA(a1),\
629 __AROS_LCA(a2),\
630 __AROS_LCA(a3),\
631 __AROS_LCA(a4),\
632 __AROS_LCA(a5),\
633 __AROS_LCA(a6),\
634 __AROS_LCA(a7),\
635 __AROS_LCA(a8),\
636 __AROS_LCA(a9),\
637 __AROS_LCA(a10),\
638 __AROS_LCA(a11),\
639 __AROS_LC_BASE(bt,bn)))
640 #define AROS_LC12(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn,o,s) \
641 (((__AROS_LC_PREFIX t(*)(\
642 __AROS_LPA(a1),\
643 __AROS_LPA(a2),\
644 __AROS_LPA(a3),\
645 __AROS_LPA(a4),\
646 __AROS_LPA(a5),\
647 __AROS_LPA(a6),\
648 __AROS_LPA(a7),\
649 __AROS_LPA(a8),\
650 __AROS_LPA(a9),\
651 __AROS_LPA(a10),\
652 __AROS_LPA(a11),\
653 __AROS_LPA(a12),\
654 __AROS_LP_BASE(bt,bn)))__AROS_GETVECADDR(bn,o))(\
655 __AROS_LCA(a1),\
656 __AROS_LCA(a2),\
657 __AROS_LCA(a3),\
658 __AROS_LCA(a4),\
659 __AROS_LCA(a5),\
660 __AROS_LCA(a6),\
661 __AROS_LCA(a7),\
662 __AROS_LCA(a8),\
663 __AROS_LCA(a9),\
664 __AROS_LCA(a10),\
665 __AROS_LCA(a11),\
666 __AROS_LCA(a12),\
667 __AROS_LC_BASE(bt,bn)))
668 #define AROS_LC13(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn,o,s) \
669 (((__AROS_LC_PREFIX t(*)(\
670 __AROS_LPA(a1),\
671 __AROS_LPA(a2),\
672 __AROS_LPA(a3),\
673 __AROS_LPA(a4),\
674 __AROS_LPA(a5),\
675 __AROS_LPA(a6),\
676 __AROS_LPA(a7),\
677 __AROS_LPA(a8),\
678 __AROS_LPA(a9),\
679 __AROS_LPA(a10),\
680 __AROS_LPA(a11),\
681 __AROS_LPA(a12),\
682 __AROS_LPA(a13),\
683 __AROS_LP_BASE(bt,bn)))__AROS_GETVECADDR(bn,o))(\
684 __AROS_LCA(a1),\
685 __AROS_LCA(a2),\
686 __AROS_LCA(a3),\
687 __AROS_LCA(a4),\
688 __AROS_LCA(a5),\
689 __AROS_LCA(a6),\
690 __AROS_LCA(a7),\
691 __AROS_LCA(a8),\
692 __AROS_LCA(a9),\
693 __AROS_LCA(a10),\
694 __AROS_LCA(a11),\
695 __AROS_LCA(a12),\
696 __AROS_LCA(a13),\
697 __AROS_LC_BASE(bt,bn)))
698 #define AROS_LC14(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,bt,bn,o,s) \
699 (((__AROS_LC_PREFIX t(*)(\
700 __AROS_LPA(a1),\
701 __AROS_LPA(a2),\
702 __AROS_LPA(a3),\
703 __AROS_LPA(a4),\
704 __AROS_LPA(a5),\
705 __AROS_LPA(a6),\
706 __AROS_LPA(a7),\
707 __AROS_LPA(a8),\
708 __AROS_LPA(a9),\
709 __AROS_LPA(a10),\
710 __AROS_LPA(a11),\
711 __AROS_LPA(a12),\
712 __AROS_LPA(a13),\
713 __AROS_LPA(a14),\
714 __AROS_LP_BASE(bt,bn)))__AROS_GETVECADDR(bn,o))(\
715 __AROS_LCA(a1),\
716 __AROS_LCA(a2),\
717 __AROS_LCA(a3),\
718 __AROS_LCA(a4),\
719 __AROS_LCA(a5),\
720 __AROS_LCA(a6),\
721 __AROS_LCA(a7),\
722 __AROS_LCA(a8),\
723 __AROS_LCA(a9),\
724 __AROS_LCA(a10),\
725 __AROS_LCA(a11),\
726 __AROS_LCA(a12),\
727 __AROS_LCA(a13),\
728 __AROS_LCA(a14),\
729 __AROS_LC_BASE(bt,bn)))
730 #define AROS_LC15(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,bt,bn,o,s) \
731 (((__AROS_LC_PREFIX t(*)(\
732 __AROS_LPA(a1),\
733 __AROS_LPA(a2),\
734 __AROS_LPA(a3),\
735 __AROS_LPA(a4),\
736 __AROS_LPA(a5),\
737 __AROS_LPA(a6),\
738 __AROS_LPA(a7),\
739 __AROS_LPA(a8),\
740 __AROS_LPA(a9),\
741 __AROS_LPA(a10),\
742 __AROS_LPA(a11),\
743 __AROS_LPA(a12),\
744 __AROS_LPA(a13),\
745 __AROS_LPA(a14),\
746 __AROS_LPA(a15),\
747 __AROS_LP_BASE(bt,bn)))__AROS_GETVECADDR(bn,o))(\
748 __AROS_LCA(a1),\
749 __AROS_LCA(a2),\
750 __AROS_LCA(a3),\
751 __AROS_LCA(a4),\
752 __AROS_LCA(a5),\
753 __AROS_LCA(a6),\
754 __AROS_LCA(a7),\
755 __AROS_LCA(a8),\
756 __AROS_LCA(a9),\
757 __AROS_LCA(a10),\
758 __AROS_LCA(a11),\
759 __AROS_LCA(a12),\
760 __AROS_LCA(a13),\
761 __AROS_LCA(a14),\
762 __AROS_LCA(a15),\
763 __AROS_LC_BASE(bt,bn)))
765 /* Macros for calling library functions without a return value. These macros should
766 * always be used when a library function has no return value but can also be used
767 * when the return value is not used
769 #define AROS_LC0NR AROS_LC0
770 #define AROS_LC1NR AROS_LC1
771 #define AROS_LC2NR AROS_LC2
772 #define AROS_LC3NR AROS_LC3
773 #define AROS_LC4NR AROS_LC4
774 #define AROS_LC5NR AROS_LC5
775 #define AROS_LC6NR AROS_LC6
776 #define AROS_LC7NR AROS_LC7
777 #define AROS_LC8NR AROS_LC8
778 #define AROS_LC9NR AROS_LC9
779 #define AROS_LC10NR AROS_LC10
780 #define AROS_LC11NR AROS_LC11
781 #define AROS_LC12NR AROS_LC12
782 #define AROS_LC13NR AROS_LC13
783 #define AROS_LC14NR AROS_LC14
784 #define AROS_LC15NR AROS_LC15
787 /* Special calls: Call a library function without the name just by the ADDRESS */
788 #ifndef AROS_CALL0
789 #define AROS_CALL0(returntype,address,basetype,basename) \
790 (((__AROS_LC_PREFIX returntype(*)(__AROS_LP_BASE(basetype,basename)))\
791 (void *)(address))(basename))
792 #define AROS_CALL0NR AROS_CALL0
793 #endif
795 #ifndef AROS_CALL1
796 #define AROS_CALL1(t,a,a1,bt,bn) \
797 (((__AROS_LC_PREFIX t(*)(\
798 __AROS_LPA(a1),\
799 __AROS_LP_BASE(bt,bn)))\
800 (void *)(a))(\
801 __AROS_LCA(a1),\
802 bn))
803 #define AROS_CALL1NR AROS_CALL1
804 #endif
806 #ifndef AROS_CALL2
807 #define AROS_CALL2(t,a,a1,a2,bt,bn) \
808 (((__AROS_LC_PREFIX t(*)(\
809 __AROS_LPA(a1),\
810 __AROS_LPA(a2),\
811 __AROS_LP_BASE(bt,bn)))\
812 (void *)(a))(\
813 __AROS_LCA(a1),\
814 __AROS_LCA(a2),\
815 bn))
816 #define AROS_CALL2NR AROS_CALL2
817 #endif
819 #ifndef AROS_CALL3
820 #define AROS_CALL3(t,a,a1,a2,a3,bt,bn) \
821 (((__AROS_LC_PREFIX t(*)(\
822 __AROS_LPA(a1),\
823 __AROS_LPA(a2),\
824 __AROS_LPA(a3),\
825 __AROS_LP_BASE(bt,bn)))\
826 (void *)(a))(\
827 __AROS_LCA(a1),\
828 __AROS_LCA(a2),\
829 __AROS_LCA(a3),\
830 bn))
831 #define AROS_CALL3NR AROS_CALL3
832 #endif
834 #ifndef AROS_CALL4
835 #define AROS_CALL4(t,a,a1,a2,a3,a4,bt,bn) \
836 (((__AROS_LC_PREFIX t(*)(\
837 __AROS_LPA(a1),\
838 __AROS_LPA(a2),\
839 __AROS_LPA(a3),\
840 __AROS_LPA(a4),\
841 __AROS_LP_BASE(bt,bn)))\
842 (void *)(a))(\
843 __AROS_LCA(a1),\
844 __AROS_LCA(a2),\
845 __AROS_LCA(a3),\
846 __AROS_LCA(a4),\
847 bn))
848 #define AROS_CALL4NR AROS_CALL4
849 #endif
851 #ifndef AROS_CALL5
852 #define AROS_CALL5(t,a,a1,a2,a3,a4,a5,bt,bn) \
853 (((__AROS_LC_PREFIX t(*)(\
854 __AROS_LPA(a1),\
855 __AROS_LPA(a2),\
856 __AROS_LPA(a3),\
857 __AROS_LPA(a4),\
858 __AROS_LPA(a5),\
859 __AROS_LP_BASE(bt,bn)))\
860 (void *)(a))(\
861 __AROS_LCA(a1),\
862 __AROS_LCA(a2),\
863 __AROS_LCA(a3),\
864 __AROS_LCA(a4),\
865 __AROS_LCA(a5),\
866 bn))
867 #define AROS_CALL5NR AROS_CALL5
868 #endif
870 #ifndef AROS_CALL6
871 #define AROS_CALL6(t,a,a1,a2,a3,a4,a5,a6,bt,bn) \
872 (((__AROS_LC_PREFIX t(*)(\
873 __AROS_LPA(a1),\
874 __AROS_LPA(a2),\
875 __AROS_LPA(a3),\
876 __AROS_LPA(a4),\
877 __AROS_LPA(a5),\
878 __AROS_LPA(a6),\
879 __AROS_LP_BASE(bt,bn)))\
880 (void *)(a))(\
881 __AROS_LCA(a1),\
882 __AROS_LCA(a2),\
883 __AROS_LCA(a3),\
884 __AROS_LCA(a4),\
885 __AROS_LCA(a5),\
886 __AROS_LCA(a6),\
887 bn))
888 #define AROS_CALL6NR AROS_CALL6
889 #endif
891 #ifndef AROS_CALL7
892 #define AROS_CALL7(t,a,a1,a2,a3,a4,a5,a6,a7,bt,bn) \
893 (((__AROS_LC_PREFIX t(*)(\
894 __AROS_LPA(a1),\
895 __AROS_LPA(a2),\
896 __AROS_LPA(a3),\
897 __AROS_LPA(a4),\
898 __AROS_LPA(a5),\
899 __AROS_LPA(a6),\
900 __AROS_LPA(a7),\
901 __AROS_LP_BASE(bt,bn)))\
902 (void *)(a))(\
903 __AROS_LCA(a1),\
904 __AROS_LCA(a2),\
905 __AROS_LCA(a3),\
906 __AROS_LCA(a4),\
907 __AROS_LCA(a5),\
908 __AROS_LCA(a6),\
909 __AROS_LCA(a7),\
910 bn))
911 #define AROS_CALL7NR AROS_CALL7
912 #endif
914 #ifndef AROS_CALL8
915 #define AROS_CALL8(t,a,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn) \
916 (((__AROS_LC_PREFIX t(*)(\
917 __AROS_LPA(a1),\
918 __AROS_LPA(a2),\
919 __AROS_LPA(a3),\
920 __AROS_LPA(a4),\
921 __AROS_LPA(a5),\
922 __AROS_LPA(a6),\
923 __AROS_LPA(a7),\
924 __AROS_LPA(a8),\
925 __AROS_LP_BASE(bt,bn)))\
926 (void *)(a))(\
927 __AROS_LCA(a1),\
928 __AROS_LCA(a2),\
929 __AROS_LCA(a3),\
930 __AROS_LCA(a4),\
931 __AROS_LCA(a5),\
932 __AROS_LCA(a6),\
933 __AROS_LCA(a7),\
934 __AROS_LCA(a8),\
935 bn))
936 #define AROS_CALL8NR AROS_CALL8
937 #endif
939 #ifndef AROS_CALL9
940 #define AROS_CALL9(t,a,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn) \
941 (((__AROS_LC_PREFIX t(*)(\
942 __AROS_LPA(a1),\
943 __AROS_LPA(a2),\
944 __AROS_LPA(a3),\
945 __AROS_LPA(a4),\
946 __AROS_LPA(a5),\
947 __AROS_LPA(a6),\
948 __AROS_LPA(a7),\
949 __AROS_LPA(a8),\
950 __AROS_LPA(a9),\
951 __AROS_LP_BASE(bt,bn)))\
952 (void *)(a))(\
953 __AROS_LCA(a1),\
954 __AROS_LCA(a2),\
955 __AROS_LCA(a3),\
956 __AROS_LCA(a4),\
957 __AROS_LCA(a5),\
958 __AROS_LCA(a6),\
959 __AROS_LCA(a7),\
960 __AROS_LCA(a8),\
961 __AROS_LCA(a9),\
962 bn))
963 #define AROS_CALL9NR AROS_CALL9
964 #endif
966 #ifndef AROS_CALL10
967 #define AROS_CALL10(t,a,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn) \
968 (((__AROS_LC_PREFIX t(*)(\
969 __AROS_LPA(a1),\
970 __AROS_LPA(a2),\
971 __AROS_LPA(a3),\
972 __AROS_LPA(a4),\
973 __AROS_LPA(a5),\
974 __AROS_LPA(a6),\
975 __AROS_LPA(a7),\
976 __AROS_LPA(a8),\
977 __AROS_LPA(a9),\
978 __AROS_LPA(a10),\
979 __AROS_LP_BASE(bt,bn)))\
980 (void *)(a))(\
981 __AROS_LCA(a1),\
982 __AROS_LCA(a2),\
983 __AROS_LCA(a3),\
984 __AROS_LCA(a4),\
985 __AROS_LCA(a5),\
986 __AROS_LCA(a6),\
987 __AROS_LCA(a7),\
988 __AROS_LCA(a8),\
989 __AROS_LCA(a9),\
990 __AROS_LCA(a10),\
991 bn))
992 #define AROS_CALL10NR AROS_CALL10
993 #endif
995 /* Special calls: Call a library function without the name just by the OFFSET */
997 #ifndef AROS_LVO_CALL0
998 #define AROS_LVO_CALL0(returntype,basetype,basename,offset,system) \
999 AROS_CALL0(returntype,__AROS_GETVECADDR(basename,offset),basetype,basename)
1000 #endif
1002 #ifndef AROS_LVO_CALL0NR
1003 #define AROS_LVO_CALL0NR(returntype,basetype,basename,offset,system) \
1004 AROS_CALL0NR(returntype,__AROS_GETVECADDR(basename,offset),basetype,basename)
1005 #endif
1007 #ifndef AROS_LVO_CALL1
1008 #define AROS_LVO_CALL1(t,a1,bt,bn,o,s) \
1009 AROS_CALL1(t,__AROS_GETVECADDR(bn,o),AROS_LCA(a1),bt,bn)
1010 #endif
1012 #ifndef AROS_LVO_CALL1NR
1013 #define AROS_LVO_CALL1NR(t,a1,bt,bn,o,s) \
1014 AROS_CALL1NR(t,__AROS_GETVECADDR(bn,o),AROS_LCA(a1),bt,bn)
1015 #endif
1017 #ifndef AROS_LVO_CALL2
1018 #define AROS_LVO_CALL2(t,a1,a2,bt,bn,o,s) \
1019 AROS_CALL2(t,__AROS_GETVECADDR(bn,o),AROS_LCA(a1),AROS_LCA(a2),bt,bn)
1020 #endif
1022 #ifndef AROS_LVO_CALL2NR
1023 #define AROS_LVO_CALL2NR(t,a1,a2,bt,bn,o,s) \
1024 AROS_CALL2NR(t,AROS_LCA(a1),AROS_LCA(a2),bt,bn)
1025 #endif
1027 #ifndef AROS_LVO_CALL3
1028 #define AROS_LVO_CALL3(t,a1,a2,a3,bt,bn,o,s) \
1029 AROS_CALL3(t,__AROS_GETVECADDR(bn,o),AROS_LCA(a1),AROS_LCA(a2),AROS_LCA(a3),bt,bn)
1030 #endif
1032 #ifndef AROS_LVO_CALL3NR
1033 #define AROS_LVO_CALL3NR(t,a1,a2,a3,bt,bn,o,s) \
1034 AROS_CALL3NR(t,__AROS_GETVECADDR(bn,o),AROS_LCA(a1),AROS_LCA(a2),AROS_LCA(a3),bt,bn)
1035 #endif
1037 #ifndef AROS_LVO_CALL4
1038 #define AROS_LVO_CALL4(t,a1,a2,a3,a4,bt,bn,o,s) \
1039 AROS_CALL4(t,__AROS_GETVECADDR(bn,o),AROS_LCA(a1),AROS_LCA(a2),AROS_LCA(a3),AROS_LCA(a4),bt,bn)
1040 #endif
1042 #ifndef AROS_LVO_CALL4NR
1043 #define AROS_LVO_CALL4NR(t,a1,a2,a3,a4,bt,bn,o,s) \
1044 AROS_CALL4NR(t,__AROS_GETVECADDR(bn,o),AROS_LCA(a1),AROS_LCA(a2),AROS_LCA(a3),AROS_LCA(a4),bt,bn)
1045 #endif
1047 #ifndef AROS_LVO_CALL5
1048 #define AROS_LVO_CALL5(t,a1,a2,a3,a4,a5,bt,bn,o,s) \
1049 AROS_CALL5(t,__AROS_GETVECADDR(bn,o),AROS_LCA(a1),AROS_LCA(a2),AROS_LCA(a3),AROS_LCA(a4),AROS_LCA(a5),bt,bn)
1050 #endif
1052 #ifndef AROS_LVO_CALL5NR
1053 #define AROS_LVO_CALL5NR(t,a1,a2,a3,a4,a5,bt,bn,o,s) \
1054 AROS_CALL5NR(t,__AROS_GETVECADDR(bn,o),AROS_LCA(a1),AROS_LCA(a2),AROS_LCA(a3),AROS_LCA(a4),AROS_LCS(a5),bt,bn)
1055 #endif
1057 #ifndef AROS_LVO_CALL6
1058 #define AROS_LVO_CALL6(t,a1,a2,a3,a4,a5,a6,bt,bn,o,s) \
1059 AROS_CALL6(t,__AROS_GETVECADDR(bn,o),AROS_LCA(a1),AROS_LCA(a2),AROS_LCA(a3),AROS_LCA(a4),AROS_LCA(a5),AROS_LCA(a6),bt,bn)
1060 #endif
1062 #ifndef AROS_LVO_CALL6NR
1063 #define AROS_LVO_CALL6NR(t,a1,a2,a3,a4,a5,a6,bt,bn,o,s) \
1064 AROS_CALL6NR(t,__AROS_GETVECADDR(bn,o),AROS_LCA(a1),AROS_LCA(a2),AROS_LCA(a3),AROS_LCA(a4),AROS_LCS(a5),AROS_LCA(a6),bt,bn)
1065 #endif
1067 #ifndef AROS_LVO_CALL7
1068 #define AROS_LVO_CALL7(t,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s) \
1069 AROS_CALL7(t,__AROS_GETVECADDR(bn,o),AROS_LCA(a1),AROS_LCA(a2),AROS_LCA(a3),AROS_LCA(a4),AROS_LCA(a5),AROS_LCA(a6),AROS_LCA(a7),bt,bn)
1070 #endif
1072 #ifndef AROS_LVO_CALL7NR
1073 #define AROS_LVO_CALL7NR(t,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s) \
1074 AROS_CALL7NR(t,__AROS_GETVECADDR(bn,o),AROS_LCA(a1),AROS_LCA(a2),AROS_LCA(a3),AROS_LCA(a4),AROS_LCS(a5),AROS_LCA(a6),AROS_LCA(a7),bt,bn)
1075 #endif
1077 #ifndef AROS_LVO_CALL8
1078 #define AROS_LVO_CALL8(t,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s) \
1079 AROS_CALL8(t,__AROS_GETVECADDR(bn,o),AROS_LCA(a1),AROS_LCA(a2),AROS_LCA(a3),AROS_LCA(a4),AROS_LCA(a5),AROS_LCA(a6),AROS_LCA(a7),AROS_LCA(a8),bt,bn)
1080 #endif
1082 #ifndef AROS_LVO_CALL8NR
1083 #define AROS_LVO_CALL8NR(t,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s) \
1084 AROS_CALL8NR(t,__AROS_GETVECADDR(bn,o),AROS_LCA(a1),AROS_LCA(a2),AROS_LCA(a3),AROS_LCA(a4),AROS_LCS(a5),AROS_LCA(a6),AROS_LCA(a7),AROS_LCA(a8),bt,bn)
1085 #endif
1087 #ifndef AROS_LVO_CALL9
1088 #define AROS_LVO_CALL9(t,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
1089 AROS_CALL9(t,__AROS_GETVECADDR(bn,o),AROS_LCA(a1),AROS_LCA(a2),AROS_LCA(a3),AROS_LCA(a4),AROS_LCA(a5),AROS_LCA(a6),AROS_LCA(a7),AROS_LCA(a8),AROS_LCA(a9),bt,bn)
1090 #endif
1092 #ifndef AROS_LVO_CALL9NR
1093 #define AROS_LVO_CALL9NR(t,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
1094 AROS_CALL9NR(t,__AROS_GETVECADDR(bn,o),AROS_LCA(a1),AROS_LCA(a2),AROS_LCA(a3),AROS_LCA(a4),AROS_LCS(a5),AROS_LCA(a6),AROS_LCA(a7),AROS_LCA(a8),AROS_LCA(a9),bt,bn)
1095 #endif
1097 #ifndef AROS_LVO_CALL10
1098 #define AROS_LVO_CALL10(t,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s) \
1099 AROS_CALL10(t,__AROS_GETVECADDR(bn,o),AROS_LCA(a1),AROS_LCA(a2),AROS_LCA(a3),AROS_LCA(a4),AROS_LCA(a5),AROS_LCA(a6),AROS_LCA(a7),AROS_LCA(a8),AROS_LCA(a9),AROS_LCA(a10),bt,bn)
1100 #endif
1102 #ifndef AROS_LVO_CALL10NR
1103 #define AROS_LVO_CALL10NR(t,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
1104 AROS_CALL10NR(void,__AROS_GETVECADDR(bn,o),AROS_LCA(a1),AROS_LCA(a2),AROS_LCA(a3),AROS_LCA(a4),AROS_LCS(a5),AROS_LCA(a6),AROS_LCA(a7),AROS_LCA(a8),AROS_LCA(a9),AROS_LCA(a10),bt,bn)
1105 #endif
1106 #endif /* !(UseRegisterArgs && defined(AROS_COMPILER_NO_REGARGS)) && !defined(__AROS_CPU_SPECIFIC_LIBCALLS) */
1108 #ifdef __AROS_USE_MACROS_FOR_LIBCALL
1109 # define AROS_LPQUAD1(t,n,a1,bt,bn,o,s)
1110 # define AROS_LPQUAD2(t,n,a1,a2,bt,bn,o,s)
1112 # define AROS_LP0(t,n,bt,bn,o,s)
1113 # define AROS_LP1(t,n,a1,bt,bn,o,s)
1114 # define AROS_LP2(t,n,a1,a2,bt,bn,o,s)
1115 # define AROS_LP3(t,n,a1,a2,a3,bt,bn,o,s)
1116 # define AROS_LP4(t,n,a1,a2,a3,a4,bt,bn,o,s)
1117 # define AROS_LP5(t,n,a1,a2,a3,a4,a5,bt,bn,o,s)
1118 # define AROS_LP6(t,n,a1,a2,a3,a4,a5,a6,bt,bn,o,s)
1119 # define AROS_LP7(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s)
1120 # define AROS_LP8(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s)
1121 # define AROS_LP9(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s)
1122 # define AROS_LP10(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s)
1123 # define AROS_LP11(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn,o,s)
1124 # define AROS_LP12(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn,o,s)
1125 # define AROS_LP13(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn,o,s)
1126 # define AROS_LP14(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,bt,bn,o,s)
1127 # define AROS_LP15(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,bt,bn,o,s)
1128 #else
1129 /* Prototypes for library functions which need the libbase */
1130 # define AROS_LPQUAD1(t,n,a1,bt,bn,o,s) \
1131 __AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1,__AROS_LP_BASE(bt,bn))
1132 # define AROS_LPQUAD2(t,n,a1,a2,bt,bn,o,s) \
1133 __AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1,a2,__AROS_LP_BASE(bt,bn))
1135 # define AROS_LP0(t,n,bt,bn,o,s) \
1136 __AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (__AROS_LP_BASE(bt,bn))
1137 # define AROS_LP1(t,n,a1,bt,bn,o,s) \
1138 __AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1,__AROS_LP_BASE(bt,bn))
1139 # define AROS_LP2(t,n,a1,a2,bt,bn,o,s) \
1140 __AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1,a2,__AROS_LP_BASE(bt,bn))
1141 # define AROS_LP3(t,n,a1,a2,a3,bt,bn,o,s) \
1142 __AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1,a2,a3,__AROS_LP_BASE(bt,bn))
1143 # define AROS_LP4(t,n,a1,a2,a3,a4,bt,bn,o,s) \
1144 __AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1,a2,a3,a4,__AROS_LP_BASE(bt,bn))
1145 # define AROS_LP5(t,n,a1,a2,a3,a4,a5,bt,bn,o,s) \
1146 __AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1, a2,a3,a4,a5,__AROS_LP_BASE(bt,bn))
1147 # define AROS_LP6(t,n,a1,a2,a3,a4,a5,a6,bt,bn,o,s) \
1148 __AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1, a2,a3,a4,a5,a6,__AROS_LP_BASE(bt,bn))
1149 # define AROS_LP7(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s) \
1150 __AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1, a2,a3,a4,a5,a6,a7,__AROS_LP_BASE(bt,bn))
1151 # define AROS_LP8(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s) \
1152 __AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1, a2,a3,a4,a5,a6,a7,a8,__AROS_LP_BASE(bt,bn))
1153 # define AROS_LP9(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
1154 __AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1, a2,a3,a4,a5,a6,a7,a8,a9,__AROS_LP_BASE(bt,bn))
1155 # define AROS_LP10(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s) \
1156 __AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1, a2,a3,a4,a5,a6,a7,a8,a9,a10,__AROS_LP_BASE(bt,bn))
1157 # define AROS_LP11(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn,o,s) \
1158 __AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1, a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,__AROS_LP_BASE(bt,bn))
1159 # define AROS_LP12(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn,o,s) \
1160 __AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1, a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,__AROS_LP_BASE(bt,bn))
1161 # define AROS_LP13(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn,o,s) \
1162 __AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1, a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,__AROS_LP_BASE(bt,bn))
1163 # define AROS_LP14(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,bt,bn,o,s) \
1164 __AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1, a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,__AROS_LP_BASE(bt,bn))
1165 # define AROS_LP15(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,bt,bn,o,s) \
1166 __AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1, a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,__AROS_LP_BASE(bt,bn))
1167 #endif
1169 #ifndef __AROS_CPU_SPECIFIC_LIBCALLS
1171 /* Declarations for library functions which need the libbase */
1172 # define AROS_LDQUAD1(t,n,a1,bt,bn,o,s) \
1173 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1174 __AROS_LDAQUAD(a1), __AROS_LD_BASE(bt,bn))
1175 # define AROS_LDQUAD2(t,n,a1,a2,bt,bn,o,s) \
1176 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1177 __AROS_LDAQUAD(a1), \
1178 __AROS_LDAQUAD(a2),__AROS_LD_BASE(bt,bn))
1180 # define AROS_LD0(t,n,bt,bn,o,s) \
1181 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) (__AROS_LD_BASE(bt,bn))
1182 # define AROS_LD1(t,n,a1,bt,bn,o,s) \
1183 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1184 __AROS_LDA(a1),__AROS_LD_BASE(bt,bn))
1185 # define AROS_LD2(t,n,a1,a2,bt,bn,o,s) \
1186 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1187 __AROS_LDA(a1), \
1188 __AROS_LDA(a2),__AROS_LD_BASE(bt,bn))
1189 # define AROS_LD3(t,n,a1,a2,a3,bt,bn,o,s) \
1190 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1191 __AROS_LDA(a1), \
1192 __AROS_LDA(a2), \
1193 __AROS_LDA(a3), __AROS_LD_BASE(bt,bn))
1194 # define AROS_LD4(t,n,a1,a2,a3,a4,bt,bn,o,s) \
1195 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1196 __AROS_LDA(a1), \
1197 __AROS_LDA(a2), \
1198 __AROS_LDA(a3), \
1199 __AROS_LDA(a4), __AROS_LD_BASE(bt,bn))
1200 # define AROS_LD5(t,n,a1,a2,a3,a4,a5,bt,bn,o,s) \
1201 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1202 __AROS_LDA(a1), \
1203 __AROS_LDA(a2), \
1204 __AROS_LDA(a3), \
1205 __AROS_LDA(a4), \
1206 __AROS_LDA(a5), __AROS_LD_BASE(bt,bn))
1207 # define AROS_LD6(t,n,a1,a2,a3,a4,a5,a6,bt,bn,o,s) \
1208 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1209 __AROS_LDA(a1), \
1210 __AROS_LDA(a2), \
1211 __AROS_LDA(a3), \
1212 __AROS_LDA(a4), \
1213 __AROS_LDA(a5), \
1214 __AROS_LDA(a6), __AROS_LD_BASE(bt,bn))
1215 # define AROS_LD7(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s) \
1216 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1217 __AROS_LDA(a1), \
1218 __AROS_LDA(a2), \
1219 __AROS_LDA(a3), \
1220 __AROS_LDA(a4), \
1221 __AROS_LDA(a5), \
1222 __AROS_LDA(a6), \
1223 __AROS_LDA(a7), __AROS_LD_BASE(bt,bn))
1224 # define AROS_LD8(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s) \
1225 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1226 __AROS_LDA(a1), \
1227 __AROS_LDA(a2), \
1228 __AROS_LDA(a3), \
1229 __AROS_LDA(a4), \
1230 __AROS_LDA(a5), \
1231 __AROS_LDA(a6), \
1232 __AROS_LDA(a7), \
1233 __AROS_LDA(a8), __AROS_LD_BASE(bt,bn))
1234 # define AROS_LD9(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
1235 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1236 __AROS_LDA(a1), \
1237 __AROS_LDA(a2), \
1238 __AROS_LDA(a3), \
1239 __AROS_LDA(a4), \
1240 __AROS_LDA(a5), \
1241 __AROS_LDA(a6), \
1242 __AROS_LDA(a7), \
1243 __AROS_LDA(a8), \
1244 __AROS_LDA(a9), __AROS_LD_BASE(bt,bn))
1245 # define AROS_LD10(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s) \
1246 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1247 __AROS_LDA(a1), \
1248 __AROS_LDA(a2), \
1249 __AROS_LDA(a3), \
1250 __AROS_LDA(a4), \
1251 __AROS_LDA(a5), \
1252 __AROS_LDA(a6), \
1253 __AROS_LDA(a7), \
1254 __AROS_LDA(a8), \
1255 __AROS_LDA(a9), \
1256 __AROS_LDA(a10), __AROS_LD_BASE(bt,bn))
1257 # define AROS_LD11(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn,o,s) \
1258 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1259 __AROS_LDA(a1), \
1260 __AROS_LDA(a2), \
1261 __AROS_LDA(a3), \
1262 __AROS_LDA(a4), \
1263 __AROS_LDA(a5), \
1264 __AROS_LDA(a6), \
1265 __AROS_LDA(a7), \
1266 __AROS_LDA(a8), \
1267 __AROS_LDA(a9), \
1268 __AROS_LDA(a10), \
1269 __AROS_LDA(a11), __AROS_LD_BASE(bt,bn))
1270 # define AROS_LD12(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn,o,s) \
1271 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1272 __AROS_LDA(a1), \
1273 __AROS_LDA(a2), \
1274 __AROS_LDA(a3), \
1275 __AROS_LDA(a4), \
1276 __AROS_LDA(a5), \
1277 __AROS_LDA(a6), \
1278 __AROS_LDA(a7), \
1279 __AROS_LDA(a8), \
1280 __AROS_LDA(a9), \
1281 __AROS_LDA(a10), \
1282 __AROS_LDA(a11), \
1283 __AROS_LDA(a12), __AROS_LD_BASE(bt,bn))
1284 # define AROS_LD13(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn,o,s) \
1285 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1286 __AROS_LDA(a1), \
1287 __AROS_LDA(a2), \
1288 __AROS_LDA(a3), \
1289 __AROS_LDA(a4), \
1290 __AROS_LDA(a5), \
1291 __AROS_LDA(a6), \
1292 __AROS_LDA(a7), \
1293 __AROS_LDA(a8), \
1294 __AROS_LDA(a9), \
1295 __AROS_LDA(a10), \
1296 __AROS_LDA(a11), \
1297 __AROS_LDA(a12), \
1298 __AROS_LDA(a13), __AROS_LD_BASE(bt,bn))
1299 # define AROS_LD14(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,bt,bn,o,s) \
1300 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1301 __AROS_LDA(a1), \
1302 __AROS_LDA(a2), \
1303 __AROS_LDA(a3), \
1304 __AROS_LDA(a4), \
1305 __AROS_LDA(a5), \
1306 __AROS_LDA(a6), \
1307 __AROS_LDA(a7), \
1308 __AROS_LDA(a8), \
1309 __AROS_LDA(a9), \
1310 __AROS_LDA(a10), \
1311 __AROS_LDA(a11), \
1312 __AROS_LDA(a12), \
1313 __AROS_LDA(a13), \
1314 __AROS_LDA(a14), __AROS_LD_BASE(bt,bn))
1315 # define AROS_LD15(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,bt,bn,o,s) \
1316 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1317 __AROS_LDA(a1), \
1318 __AROS_LDA(a2), \
1319 __AROS_LDA(a3), \
1320 __AROS_LDA(a4), \
1321 __AROS_LDA(a5), \
1322 __AROS_LDA(a6), \
1323 __AROS_LDA(a7), \
1324 __AROS_LDA(a8), \
1325 __AROS_LDA(a9), \
1326 __AROS_LDA(a10), \
1327 __AROS_LDA(a11), \
1328 __AROS_LDA(a12), \
1329 __AROS_LDA(a13), \
1330 __AROS_LDA(a14), \
1331 __AROS_LDA(a15), __AROS_LD_BASE(bt,bn))
1333 /* Declarations for library functions which don't need the libbase */
1334 # define AROS_LD0I(t,n,bt,bn,o,s) \
1335 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) (void)
1336 # define AROS_LD1I(t,n,a1,bt,bn,o,s) \
1337 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1338 __AROS_LDA(a1))
1339 # define AROS_LD2I(t,n,a1,a2,bt,bn,o,s) \
1340 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1341 __AROS_LDA(a1), \
1342 __AROS_LDA(a2))
1343 # define AROS_LD3I(t,n,a1,a2,a3,bt,bn,o,s) \
1344 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1345 __AROS_LDA(a1), \
1346 __AROS_LDA(a2), \
1347 __AROS_LDA(a3))
1348 # define AROS_LD4I(t,n,a1,a2,a3,a4,bt,bn,o,s) \
1349 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1350 __AROS_LDA(a1), \
1351 __AROS_LDA(a2), \
1352 __AROS_LDA(a3), \
1353 __AROS_LDA(a4))
1354 # define AROS_LD5I(t,n,a1,a2,a3,a4,a5,bt,bn,o,s) \
1355 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1356 __AROS_LDA(a1), \
1357 __AROS_LDA(a2), \
1358 __AROS_LDA(a3), \
1359 __AROS_LDA(a4), \
1360 __AROS_LDA(a5))
1361 # define AROS_LD6I(t,n,a1,a2,a3,a4,a5,a6,bt,bn,o,s) \
1362 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1363 __AROS_LDA(a1), \
1364 __AROS_LDA(a2), \
1365 __AROS_LDA(a3), \
1366 __AROS_LDA(a4), \
1367 __AROS_LDA(a5), \
1368 __AROS_LDA(a6))
1369 # define AROS_LD7I(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s) \
1370 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1371 __AROS_LDA(a1), \
1372 __AROS_LDA(a2), \
1373 __AROS_LDA(a3), \
1374 __AROS_LDA(a4), \
1375 __AROS_LDA(a5), \
1376 __AROS_LDA(a6), \
1377 __AROS_LDA(a7))
1378 # define AROS_LD8I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s) \
1379 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1380 __AROS_LDA(a1), \
1381 __AROS_LDA(a2), \
1382 __AROS_LDA(a3), \
1383 __AROS_LDA(a4), \
1384 __AROS_LDA(a5), \
1385 __AROS_LDA(a6), \
1386 __AROS_LDA(a7), \
1387 __AROS_LDA(a8))
1388 # define AROS_LD9I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
1389 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1390 __AROS_LDA(a1), \
1391 __AROS_LDA(a2), \
1392 __AROS_LDA(a3), \
1393 __AROS_LDA(a4), \
1394 __AROS_LDA(a5), \
1395 __AROS_LDA(a6), \
1396 __AROS_LDA(a7), \
1397 __AROS_LDA(a8), \
1398 __AROS_LDA(a9))
1399 # define AROS_LD10I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s) \
1400 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1401 __AROS_LDA(a1), \
1402 __AROS_LDA(a2), \
1403 __AROS_LDA(a3), \
1404 __AROS_LDA(a4), \
1405 __AROS_LDA(a5), \
1406 __AROS_LDA(a6), \
1407 __AROS_LDA(a7), \
1408 __AROS_LDA(a8), \
1409 __AROS_LDA(a9), \
1410 __AROS_LDA(a10))
1411 # define AROS_LD11I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn,o,s) \
1412 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1413 __AROS_LDA(a1), \
1414 __AROS_LDA(a2), \
1415 __AROS_LDA(a3), \
1416 __AROS_LDA(a4), \
1417 __AROS_LDA(a5), \
1418 __AROS_LDA(a6), \
1419 __AROS_LDA(a7), \
1420 __AROS_LDA(a8), \
1421 __AROS_LDA(a9), \
1422 __AROS_LDA(a10), \
1423 __AROS_LDA(a11))
1424 # define AROS_LD12I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn,o,s) \
1425 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1426 __AROS_LDA(a1), \
1427 __AROS_LDA(a2), \
1428 __AROS_LDA(a3), \
1429 __AROS_LDA(a4), \
1430 __AROS_LDA(a5), \
1431 __AROS_LDA(a6), \
1432 __AROS_LDA(a7), \
1433 __AROS_LDA(a8), \
1434 __AROS_LDA(a9), \
1435 __AROS_LDA(a10), \
1436 __AROS_LDA(a11), \
1437 __AROS_LDA(a12))
1438 # define AROS_LD13I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn,o,s) \
1439 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1440 __AROS_LDA(a1), \
1441 __AROS_LDA(a2), \
1442 __AROS_LDA(a3), \
1443 __AROS_LDA(a4), \
1444 __AROS_LDA(a5), \
1445 __AROS_LDA(a6), \
1446 __AROS_LDA(a7), \
1447 __AROS_LDA(a8), \
1448 __AROS_LDA(a9), \
1449 __AROS_LDA(a10), \
1450 __AROS_LDA(a11), \
1451 __AROS_LDA(a12), \
1452 __AROS_LDA(a13))
1453 # define AROS_LD14I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,bt,bn,o,s) \
1454 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1455 __AROS_LDA(a1), \
1456 __AROS_LDA(a2), \
1457 __AROS_LDA(a3), \
1458 __AROS_LDA(a4), \
1459 __AROS_LDA(a5), \
1460 __AROS_LDA(a6), \
1461 __AROS_LDA(a7), \
1462 __AROS_LDA(a8), \
1463 __AROS_LDA(a9), \
1464 __AROS_LDA(a10), \
1465 __AROS_LDA(a11), \
1466 __AROS_LDA(a12), \
1467 __AROS_LDA(a13), \
1468 __AROS_LDA(a14))
1469 # define AROS_LD15I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,bt,bn,o,s) \
1470 __AROS_LD_PREFIX t AROS_SLIB_ENTRY(n,s) ( \
1471 __AROS_LDA(a1), \
1472 __AROS_LDA(a2), \
1473 __AROS_LDA(a3), \
1474 __AROS_LDA(a4), \
1475 __AROS_LDA(a5), \
1476 __AROS_LDA(a6), \
1477 __AROS_LDA(a7), \
1478 __AROS_LDA(a8), \
1479 __AROS_LDA(a9), \
1480 __AROS_LDA(a10), \
1481 __AROS_LDA(a11), \
1482 __AROS_LDA(a12), \
1483 __AROS_LDA(a13), \
1484 __AROS_LDA(a14), \
1485 __AROS_LDA(a15))
1486 #endif /* !__AROS_CPU_SPECIFIC_LIBCALLS */
1488 #define AROS_LHA(type,name,reg) type,name,reg
1489 #define AROS_LPA(type,name,reg) type,name,reg
1490 #define AROS_LCA(type,name,reg) type,name,reg
1491 #define AROS_LDA(type,name,reg) type,name,reg
1493 #define AROS_LHAQUAD(type,name,reg1,reg2) type,name,reg1,reg2
1494 #define AROS_LPAQUAD(type,name,reg1,reg2) type,name,reg1,reg2
1495 #define AROS_LCAQUAD(type,name,reg1,reg2) type,name,reg1,reg2
1496 #define AROS_LDAQUAD(type,name,reg1,reg2) type,name,reg1,reg2
1498 #ifndef AROS_LIBFUNC_INIT
1499 # define AROS_LIBFUNC_INIT {
1500 #endif
1501 #ifndef AROS_LIBFUNC_EXIT
1502 # define AROS_LIBFUNC_EXIT }}
1503 #endif
1505 /* Tagging of private functions, so that they can be distinguished from
1506 official ones. But they have to compile the same way, so: */
1507 #define AROS_PLH0 AROS_LH0
1508 #define AROS_PLH1 AROS_LH1
1509 #define AROS_PLH2 AROS_LH2
1510 #define AROS_PLH3 AROS_LH3
1511 #define AROS_PLH4 AROS_LH4
1512 #define AROS_PLH5 AROS_LH5
1513 #define AROS_PLH6 AROS_LH6
1514 #define AROS_PLH7 AROS_LH7
1515 #define AROS_PLH8 AROS_LH8
1516 #define AROS_PLH9 AROS_LH9
1517 #define AROS_PLH10 AROS_LH10
1518 #define AROS_PLH11 AROS_LH11
1519 #define AROS_PLH12 AROS_LH12
1520 #define AROS_PLH13 AROS_LH13
1521 #define AROS_PLH14 AROS_LH14
1522 #define AROS_PLH15 AROS_LH15
1524 /* NT stands for No Tags, which means that the functions which are defined with these headers
1525 are not subject to tagcall generation by the script used to generate include files */
1526 #define AROS_NTLH0 AROS_LH0
1527 #define AROS_NTLH1 AROS_LH1
1528 #define AROS_NTLH2 AROS_LH2
1529 #define AROS_NTLH3 AROS_LH3
1530 #define AROS_NTLH4 AROS_LH4
1531 #define AROS_NTLH5 AROS_LH5
1532 #define AROS_NTLH6 AROS_LH6
1533 #define AROS_NTLH7 AROS_LH7
1534 #define AROS_NTLH8 AROS_LH8
1535 #define AROS_NTLH9 AROS_LH9
1536 #define AROS_NTLH10 AROS_LH10
1537 #define AROS_NTLH11 AROS_LH11
1538 #define AROS_NTLH12 AROS_LH12
1539 #define AROS_NTLH13 AROS_LH13
1540 #define AROS_NTLH14 AROS_LH14
1541 #define AROS_NTLH15 AROS_LH15
1543 /******************************************************************************
1544 ***** ENDE aros/libcall.h
1545 ******************************************************************************/
1547 #endif /* AROS_LIBCALL_H */