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