home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 18
/
aminetcdnumber181997.iso
/
Aminet
/
misc
/
emu
/
AROS_m68k_bin.lha
/
AROS
/
include
/
aros
/
libcall.h
< prev
next >
Wrap
C/C++ Source or Header
|
1997-02-08
|
37KB
|
1,312 lines
#ifndef AROS_LIBCALL_H
#define AROS_LIBCALL_H
/* (C) 1995 AROS - The Amiga Replacement OS */
/******************************************************************************
MODUL
$Id: libcall.h,v 1.2 1997/01/10 04:10:56 ldp Exp $
DESCRIPTION
Some macros to build functions with registerized parameters on the
different compilers around. Usage:
AROS_LH<n><f>(type, name, type1, name1, reg1, ...)
{
\* Function starts here. *\
}
<n> - Number of arguments of the function (not including the
library base).
<f> - 'I' means: Function ignores library base.
This is useful to get rid of warnings about unused arguments.
type - Returntype of the function.
name - Name of the function. A underscore '_' is prepended so that
following functions jump over the base vector and don't call
the function directly.
type<i>, name<i>, reg<i> - Type, name and register for the
arguments. Register names are written uppercase because they
are preprocessor symbols.
Example: Define a Exec compatible RemHead function.
AROS_LH1I(struct Node *, RemHead,
struct List *, list, A0,
struct ExecBase, SysBase, 43, Exec)
{
// Hier *keine* ";" !!
AROS_LIBFUNC_INIT
// Das ist eigentlich nicht notwendig, da die Funktion
// SysBase nicht verwendet, aber ist ja nur ein Demo :-)
AROS_LIBBASE_EXT_DECL(struct ExecBase, SysBase)
struct Node *node;
node=list->lh_Head;
if(node->ln_Succ==NULL)
return NULL;
Remove(node);
return node;
// NACH return !!
AROS_LIBFUNC_EXIT
}
******************************************************************************/
/* System-Specific things */
#ifndef AROS_SYSTEM_H
# include <aros/system.h>
#endif
#ifndef __typedef_VOID_FUNC
#define __typedef_VOID_FUNC
typedef void (*VOID_FUNC)();
#endif
#ifndef __typedef_LONG_FUNC
#define __typedef_LONG_FUNC
typedef long (*LONG_FUNC)();
#endif
#ifndef __typedef_ULONG_FUNC
#define __typedef_ULONG_FUNC
typedef unsigned long (*ULONG_FUNC)();
#endif
/* Declare all macros which the systems' libcall didn't */
#ifndef AROS_SLIB_ENTRY
# define AROS_SLIB_ENTRY(n,s) s ## _ ## n
#endif
/* Library functions which need the libbase */
#define AROS_LH0(t,n,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
__AROS_LH_BASE(bt,bn))
#define AROS_LH1(t,n,a1,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
__AROS_LHA(a1),\
__AROS_LH_BASE(bt,bn))
#define AROS_LH2(t,n,a1,a2,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
__AROS_LHA(a1),\
__AROS_LHA(a2),\
__AROS_LH_BASE(bt,bn))
#define AROS_LH3(t,n,a1,a2,a3,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
__AROS_LHA(a1),\
__AROS_LHA(a2),\
__AROS_LHA(a3),\
__AROS_LH_BASE(bt,bn))
#define AROS_LH4(t,n,a1,a2,a3,a4,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
__AROS_LHA(a1),\
__AROS_LHA(a2),\
__AROS_LHA(a3),\
__AROS_LHA(a4),\
__AROS_LH_BASE(bt,bn))
#define AROS_LH5(t,n,a1,a2,a3,a4,a5,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
__AROS_LHA(a1),\
__AROS_LHA(a2),\
__AROS_LHA(a3),\
__AROS_LHA(a4),\
__AROS_LHA(a5),\
__AROS_LH_BASE(bt,bn))
#define AROS_LH6(t,n,a1,a2,a3,a4,a5,a6,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
__AROS_LHA(a1),\
__AROS_LHA(a2),\
__AROS_LHA(a3),\
__AROS_LHA(a4),\
__AROS_LHA(a5),\
__AROS_LHA(a6),\
__AROS_LH_BASE(bt,bn))
#define AROS_LH7(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
__AROS_LHA(a1),\
__AROS_LHA(a2),\
__AROS_LHA(a3),\
__AROS_LHA(a4),\
__AROS_LHA(a5),\
__AROS_LHA(a6),\
__AROS_LHA(a7),\
__AROS_LH_BASE(bt,bn))
#define AROS_LH8(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
__AROS_LHA(a1),\
__AROS_LHA(a2),\
__AROS_LHA(a3),\
__AROS_LHA(a4),\
__AROS_LHA(a5),\
__AROS_LHA(a6),\
__AROS_LHA(a7),\
__AROS_LHA(a8),\
__AROS_LH_BASE(bt,bn))
#define AROS_LH9(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
__AROS_LHA(a1),\
__AROS_LHA(a2),\
__AROS_LHA(a3),\
__AROS_LHA(a4),\
__AROS_LHA(a5),\
__AROS_LHA(a6),\
__AROS_LHA(a7),\
__AROS_LHA(a8),\
__AROS_LHA(a9),\
__AROS_LH_BASE(bt,bn))
#define AROS_LH10(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
__AROS_LHA(a1),\
__AROS_LHA(a2),\
__AROS_LHA(a3),\
__AROS_LHA(a4),\
__AROS_LHA(a5),\
__AROS_LHA(a6),\
__AROS_LHA(a7),\
__AROS_LHA(a8),\
__AROS_LHA(a9),\
__AROS_LHA(a10),\
__AROS_LH_BASE(bt,bn))
#define AROS_LH11(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
__AROS_LHA(a1),\
__AROS_LHA(a2),\
__AROS_LHA(a3),\
__AROS_LHA(a4),\
__AROS_LHA(a5),\
__AROS_LHA(a6),\
__AROS_LHA(a7),\
__AROS_LHA(a8),\
__AROS_LHA(a9),\
__AROS_LHA(a10),\
__AROS_LHA(a11),\
__AROS_LH_BASE(bt,bn))
#define AROS_LH12(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
__AROS_LHA(a1),\
__AROS_LHA(a2),\
__AROS_LHA(a3),\
__AROS_LHA(a4),\
__AROS_LHA(a5),\
__AROS_LHA(a6),\
__AROS_LHA(a7),\
__AROS_LHA(a8),\
__AROS_LHA(a9),\
__AROS_LHA(a10),\
__AROS_LHA(a11),\
__AROS_LHA(a12),\
__AROS_LH_BASE(bt,bn))
#define AROS_LH13(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
__AROS_LHA(a1),\
__AROS_LHA(a2),\
__AROS_LHA(a3),\
__AROS_LHA(a4),\
__AROS_LHA(a5),\
__AROS_LHA(a6),\
__AROS_LHA(a7),\
__AROS_LHA(a8),\
__AROS_LHA(a9),\
__AROS_LHA(a10),\
__AROS_LHA(a11),\
__AROS_LHA(a12),\
__AROS_LHA(a13),\
__AROS_LH_BASE(bt,bn))
#define AROS_LH14(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
__AROS_LHA(a1),\
__AROS_LHA(a2),\
__AROS_LHA(a3),\
__AROS_LHA(a4),\
__AROS_LHA(a5),\
__AROS_LHA(a6),\
__AROS_LHA(a7),\
__AROS_LHA(a8),\
__AROS_LHA(a9),\
__AROS_LHA(a10),\
__AROS_LHA(a11),\
__AROS_LHA(a12),\
__AROS_LHA(a13),\
__AROS_LHA(a14),\
__AROS_LH_BASE(bt,bn))
#define AROS_LH15(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
__AROS_LHA(a1),\
__AROS_LHA(a2),\
__AROS_LHA(a3),\
__AROS_LHA(a4),\
__AROS_LHA(a5),\
__AROS_LHA(a6),\
__AROS_LHA(a7),\
__AROS_LHA(a8),\
__AROS_LHA(a9),\
__AROS_LHA(a10),\
__AROS_LHA(a11),\
__AROS_LHA(a12),\
__AROS_LHA(a13),\
__AROS_LHA(a14),\
__AROS_LHA(a15),\
__AROS_LH_BASE(bt,bn))
/* Library functions which don't need the libbase */
#define AROS_LH0I(t,n,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(void)
#define AROS_LH1I(t,n,a1,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
__AROS_LHA(a1)\
)
#define AROS_LH2I(t,n,a1,a2,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
__AROS_LHA(a1),\
__AROS_LHA(a2)\
)
#define AROS_LH3I(t,n,a1,a2,a3,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
__AROS_LHA(a1),\
__AROS_LHA(a2),\
__AROS_LHA(a3)\
)
#define AROS_LH4I(t,n,a1,a2,a3,a4,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
__AROS_LHA(a1),\
__AROS_LHA(a2),\
__AROS_LHA(a3),\
__AROS_LHA(a4)\
)
#define AROS_LH5I(t,n,a1,a2,a3,a4,a5,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
__AROS_LHA(a1),\
__AROS_LHA(a2),\
__AROS_LHA(a3),\
__AROS_LHA(a4),\
__AROS_LHA(a5)\
)
#define AROS_LH6I(t,n,a1,a2,a3,a4,a5,a6,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
__AROS_LHA(a1),\
__AROS_LHA(a2),\
__AROS_LHA(a3),\
__AROS_LHA(a4),\
__AROS_LHA(a5),\
__AROS_LHA(a6)\
)
#define AROS_LH7I(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
__AROS_LHA(a1),\
__AROS_LHA(a2),\
__AROS_LHA(a3),\
__AROS_LHA(a4),\
__AROS_LHA(a5),\
__AROS_LHA(a6),\
__AROS_LHA(a7)\
)
#define AROS_LH8I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
__AROS_LHA(a1),\
__AROS_LHA(a2),\
__AROS_LHA(a3),\
__AROS_LHA(a4),\
__AROS_LHA(a5),\
__AROS_LHA(a6),\
__AROS_LHA(a7),\
__AROS_LHA(a8)\
)
#define AROS_LH9I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
__AROS_LHA(a1),\
__AROS_LHA(a2),\
__AROS_LHA(a3),\
__AROS_LHA(a4),\
__AROS_LHA(a5),\
__AROS_LHA(a6),\
__AROS_LHA(a7),\
__AROS_LHA(a8),\
__AROS_LHA(a9)\
)
#define AROS_LH10I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
__AROS_LHA(a1),\
__AROS_LHA(a2),\
__AROS_LHA(a3),\
__AROS_LHA(a4),\
__AROS_LHA(a5),\
__AROS_LHA(a6),\
__AROS_LHA(a7),\
__AROS_LHA(a8),\
__AROS_LHA(a9),\
__AROS_LHA(a10)\
)
#define AROS_LH11I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
__AROS_LHA(a1),\
__AROS_LHA(a2),\
__AROS_LHA(a3),\
__AROS_LHA(a4),\
__AROS_LHA(a5),\
__AROS_LHA(a6),\
__AROS_LHA(a7),\
__AROS_LHA(a8),\
__AROS_LHA(a9),\
__AROS_LHA(a10),\
__AROS_LHA(a11)\
)
#define AROS_LH12I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
__AROS_LHA(a1),\
__AROS_LHA(a2),\
__AROS_LHA(a3),\
__AROS_LHA(a4),\
__AROS_LHA(a5),\
__AROS_LHA(a6),\
__AROS_LHA(a7),\
__AROS_LHA(a8),\
__AROS_LHA(a9),\
__AROS_LHA(a10),\
__AROS_LHA(a11),\
__AROS_LHA(a12)\
)
#define AROS_LH13I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
__AROS_LHA(a1),\
__AROS_LHA(a2),\
__AROS_LHA(a3),\
__AROS_LHA(a4),\
__AROS_LHA(a5),\
__AROS_LHA(a6),\
__AROS_LHA(a7),\
__AROS_LHA(a8),\
__AROS_LHA(a9),\
__AROS_LHA(a10),\
__AROS_LHA(a11),\
__AROS_LHA(a12),\
__AROS_LHA(a13)\
)
#define AROS_LH14I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
__AROS_LHA(a1),\
__AROS_LHA(a2),\
__AROS_LHA(a3),\
__AROS_LHA(a4),\
__AROS_LHA(a5),\
__AROS_LHA(a6),\
__AROS_LHA(a7),\
__AROS_LHA(a8),\
__AROS_LHA(a9),\
__AROS_LHA(a10),\
__AROS_LHA(a11),\
__AROS_LHA(a12),\
__AROS_LHA(a13),\
__AROS_LHA(a14)\
)
#define AROS_LH15I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,bt,bn,o,s) \
__AROS_LH_PREFIX t AROS_SLIB_ENTRY(n,s)(\
__AROS_LHA(a1),\
__AROS_LHA(a2),\
__AROS_LHA(a3),\
__AROS_LHA(a4),\
__AROS_LHA(a5),\
__AROS_LHA(a6),\
__AROS_LHA(a7),\
__AROS_LHA(a8),\
__AROS_LHA(a9),\
__AROS_LHA(a10),\
__AROS_LHA(a11),\
__AROS_LHA(a12),\
__AROS_LHA(a13),\
__AROS_LHA(a14),\
__AROS_LHA(a15)\
)
/* Call a library function which requires the libbase */
#define AROS_LC0(t,n,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__AROS_LP_BASE(bt,bn)))__AROS_GETVECADDR(bn,o))(\
__AROS_LC_BASE(bt,bn)))
#define AROS_LC1(t,n,a1,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__AROS_LPA(a1),\
__AROS_LP_BASE(bt,bn)))__AROS_GETVECADDR(bn,o))(\
__AROS_LCA(a1),\
__AROS_LC_BASE(bt,bn)))
#define AROS_LC2(t,n,a1,a2,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__AROS_LPA(a1),\
__AROS_LPA(a2),\
__AROS_LP_BASE(bt,bn)))__AROS_GETVECADDR(bn,o))(\
__AROS_LCA(a1),\
__AROS_LCA(a2),\
__AROS_LC_BASE(bt,bn)))
#define AROS_LC3(t,n,a1,a2,a3,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__AROS_LPA(a1),\
__AROS_LPA(a2),\
__AROS_LPA(a3),\
__AROS_LP_BASE(bt,bn)))__AROS_GETVECADDR(bn,o))(\
__AROS_LCA(a1),\
__AROS_LCA(a2),\
__AROS_LCA(a3),\
__AROS_LC_BASE(bt,bn)))
#define AROS_LC4(t,n,a1,a2,a3,a4,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__AROS_LPA(a1),\
__AROS_LPA(a2),\
__AROS_LPA(a3),\
__AROS_LPA(a4),\
__AROS_LP_BASE(bt,bn)))__AROS_GETVECADDR(bn,o))(\
__AROS_LCA(a1),\
__AROS_LCA(a2),\
__AROS_LCA(a3),\
__AROS_LCA(a4),\
__AROS_LC_BASE(bt,bn)))
#define AROS_LC5(t,n,a1,a2,a3,a4,a5,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__AROS_LPA(a1),\
__AROS_LPA(a2),\
__AROS_LPA(a3),\
__AROS_LPA(a4),\
__AROS_LPA(a5),\
__AROS_LP_BASE(bt,bn)))__AROS_GETVECADDR(bn,o))(\
__AROS_LCA(a1),\
__AROS_LCA(a2),\
__AROS_LCA(a3),\
__AROS_LCA(a4),\
__AROS_LCA(a5),\
__AROS_LC_BASE(bt,bn)))
#define AROS_LC6(t,n,a1,a2,a3,a4,a5,a6,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__AROS_LPA(a1),\
__AROS_LPA(a2),\
__AROS_LPA(a3),\
__AROS_LPA(a4),\
__AROS_LPA(a5),\
__AROS_LPA(a6),\
__AROS_LP_BASE(bt,bn)))__AROS_GETVECADDR(bn,o))(\
__AROS_LCA(a1),\
__AROS_LCA(a2),\
__AROS_LCA(a3),\
__AROS_LCA(a4),\
__AROS_LCA(a5),\
__AROS_LCA(a6),\
__AROS_LC_BASE(bt,bn)))
#define AROS_LC7(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__AROS_LPA(a1),\
__AROS_LPA(a2),\
__AROS_LPA(a3),\
__AROS_LPA(a4),\
__AROS_LPA(a5),\
__AROS_LPA(a6),\
__AROS_LPA(a7),\
__AROS_LP_BASE(bt,bn)))__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_LC_BASE(bt,bn)))
#define AROS_LC8(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__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_LP_BASE(bt,bn)))__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_LC_BASE(bt,bn)))
#define AROS_LC9(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__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_LP_BASE(bt,bn)))__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_LC_BASE(bt,bn)))
#define AROS_LC10(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__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_LP_BASE(bt,bn)))__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),\
__AROS_LC_BASE(bt,bn)))
#define AROS_LC11(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__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_LP_BASE(bt,bn)))__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),\
__AROS_LCA(a11),\
__AROS_LC_BASE(bt,bn)))
#define AROS_LC12(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__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_LP_BASE(bt,bn)))__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),\
__AROS_LCA(a11),\
__AROS_LCA(a12),\
__AROS_LC_BASE(bt,bn)))
#define AROS_LC13(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__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_LP_BASE(bt,bn)))__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),\
__AROS_LCA(a11),\
__AROS_LCA(a12),\
__AROS_LCA(a13),\
__AROS_LC_BASE(bt,bn)))
#define AROS_LC14(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__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_LP_BASE(bt,bn)))__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),\
__AROS_LCA(a11),\
__AROS_LCA(a12),\
__AROS_LCA(a13),\
__AROS_LCA(a14),\
__AROS_LC_BASE(bt,bn)))
#define AROS_LC15(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__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),\
__AROS_LP_BASE(bt,bn)))__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),\
__AROS_LCA(a11),\
__AROS_LCA(a12),\
__AROS_LCA(a13),\
__AROS_LCA(a14),\
__AROS_LCA(a15),\
__AROS_LC_BASE(bt,bn)))
/* Call a library function which doesn't require the libbase */
#define AROS_LC0I(t,n,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
))__AROS_GETVECADDR(bn,o))(\
))
#define AROS_LC1I(t,n,a1,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__AROS_LPA(a1)\
))__AROS_GETVECADDR(bn,o))(\
__AROS_LCA(a1)\
))
#define AROS_LC2I(t,n,a1,a2,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__AROS_LPA(a1),\
__AROS_LPA(a2)\
))__AROS_GETVECADDR(bn,o))(\
__AROS_LCA(a1),\
__AROS_LCA(a2)\
))
#define AROS_LC3I(t,n,a1,a2,a3,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__AROS_LPA(a1),\
__AROS_LPA(a2),\
__AROS_LPA(a3)\
))__AROS_GETVECADDR(bn,o))(\
__AROS_LCA(a1),\
__AROS_LCA(a2),\
__AROS_LCA(a3)\
))
#define AROS_LC4I(t,n,a1,a2,a3,a4,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__AROS_LPA(a1),\
__AROS_LPA(a2),\
__AROS_LPA(a3),\
__AROS_LPA(a4)\
))__AROS_GETVECADDR(bn,o))(\
__AROS_LCA(a1),\
__AROS_LCA(a2),\
__AROS_LCA(a3),\
__AROS_LCA(a4)\
))
#define AROS_LC5I(t,n,a1,a2,a3,a4,a5,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__AROS_LPA(a1),\
__AROS_LPA(a2),\
__AROS_LPA(a3),\
__AROS_LPA(a4),\
__AROS_LPA(a5)\
))__AROS_GETVECADDR(bn,o))(\
__AROS_LCA(a1),\
__AROS_LCA(a2),\
__AROS_LCA(a3),\
__AROS_LCA(a4),\
__AROS_LCA(a5)\
))
#define AROS_LC6I(t,n,a1,a2,a3,a4,a5,a6,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__AROS_LPA(a1),\
__AROS_LPA(a2),\
__AROS_LPA(a3),\
__AROS_LPA(a4),\
__AROS_LPA(a5),\
__AROS_LPA(a6)\
))__AROS_GETVECADDR(bn,o))(\
__AROS_LCA(a1),\
__AROS_LCA(a2),\
__AROS_LCA(a3),\
__AROS_LCA(a4),\
__AROS_LCA(a5),\
__AROS_LCA(a6)\
))
#define AROS_LC7I(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__AROS_LPA(a1),\
__AROS_LPA(a2),\
__AROS_LPA(a3),\
__AROS_LPA(a4),\
__AROS_LPA(a5),\
__AROS_LPA(a6),\
__AROS_LPA(a7)\
))__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)\
))
#define AROS_LC8I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__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_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)\
))
#define AROS_LC9I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__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_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)\
))
#define AROS_LC10I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__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_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)\
))
#define AROS_LC11I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__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_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),\
__AROS_LCA(a11)\
))
#define AROS_LC12I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__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_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),\
__AROS_LCA(a11),\
__AROS_LCA(a12)\
))
#define AROS_LC13I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__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_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),\
__AROS_LCA(a11),\
__AROS_LCA(a12),\
__AROS_LCA(a13)\
))
#define AROS_LC14I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__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_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),\
__AROS_LCA(a11),\
__AROS_LCA(a12),\
__AROS_LCA(a13),\
__AROS_LCA(a14)\
))
#define AROS_LC15I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__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)\
))__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),\
__AROS_LCA(a11),\
__AROS_LCA(a12),\
__AROS_LCA(a13),\
__AROS_LCA(a14),\
__AROS_LCA(a15)\
))
/* Special calls: Call a library function without the name just by the offset */
#ifndef AROS_LVO_CALL0
#define AROS_LVO_CALL0(returntype,basetype,basename,offset,system) \
(((__AROS_LC_PREFIX returntype(*)(__AROS_LP_BASE(basetype,basename)))\
__AROS_GETVECADDR(basename,offset))(basename))
#endif
#ifndef AROS_LVO_CALL0NR
#define AROS_LVO_CALL0NR(basetype,basename,offset,system) \
(((__AROS_LC_PREFIX void(*)(__AROS_LP_BASE(basetype,basename)))\
__AROS_GETVECADDR(basename,offset))(basename))
#endif
#ifndef AROS_LVO_CALL1
#define AROS_LVO_CALL1(t,a1,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__AROS_LPA(a1),\
__AROS_LP_BASE(bt,bn)))\
__AROS_GETVECADDR(bn,o))(\
__AROS_LCA(a1),\
bn))
#endif
#ifndef AROS_LVO_CALL1NR
#define AROS_LVO_CALL1NR(a1,bt,bn,o,s) \
(((__AROS_LC_PREFIX void(*)(\
__AROS_LPA(a1),\
__AROS_LP_BASE(bt,bn)))\
__AROS_GETVECADDR(bn,o))(\
__AROS_LCA(a1),\
bn))
#endif
#ifndef AROS_LVO_CALL2
#define AROS_LVO_CALL2(t,a1,a2,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__AROS_LPA(a1),\
__AROS_LPA(a2),\
__AROS_LP_BASE(bt,bn)))\
__AROS_GETVECADDR(bn,o))(\
__AROS_LCA(a1),\
__AROS_LCA(a2),\
bn))
#endif
#ifndef AROS_LVO_CALL2NR
#define AROS_LVO_CALL2NR(a1,a2,bt,bn,o,s) \
(((__AROS_LC_PREFIX void(*)(\
__AROS_LPA(a1),\
__AROS_LPA(a2),\
__AROS_LP_BASE(bt,bn)))\
__AROS_GETVECADDR(bn,o))(\
__AROS_LCA(a1),\
__AROS_LCA(a2),\
bn))
#endif
#ifndef AROS_LVO_CALL3
#define AROS_LVO_CALL3(t,a1,a2,a3,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__AROS_LPA(a1),\
__AROS_LPA(a2),\
__AROS_LPA(a3),\
__AROS_LP_BASE(bt,bn)))\
__AROS_GETVECADDR(bn,o))(\
__AROS_LCA(a1),\
__AROS_LCA(a2),\
__AROS_LCA(a3),\
bn))
#endif
#ifndef AROS_LVO_CALL3NR
#define AROS_LVO_CALL3NR(a1,a2,a3,bt,bn,o,s) \
(((__AROS_LC_PREFIX void(*)(\
__AROS_LPA(a1),\
__AROS_LPA(a2),\
__AROS_LPA(a3),\
__AROS_LP_BASE(bt,bn)))\
__AROS_GETVECADDR(bn,o))(\
__AROS_LCA(a1),\
__AROS_LCA(a2),\
__AROS_LCA(a3),\
bn))
#endif
#ifndef AROS_LVO_CALL4
#define AROS_LVO_CALL4(t,a1,a2,a3,a4,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__AROS_LPA(a1),\
__AROS_LPA(a2),\
__AROS_LPA(a3),\
__AROS_LPA(a4),\
__AROS_LP_BASE(bt,bn)))\
__AROS_GETVECADDR(bn,o))(\
__AROS_LCA(a1),\
__AROS_LCA(a2),\
__AROS_LCA(a3),\
__AROS_LCA(a4),\
bn))
#endif
#ifndef AROS_LVO_CALL4NR
#define AROS_LVO_CALL4NR(a1,a2,a3,a4,bt,bn,o,s) \
(((__AROS_LC_PREFIX void(*)(\
__AROS_LPA(a1),\
__AROS_LPA(a2),\
__AROS_LPA(a3),\
__AROS_LPA(a4),\
__AROS_LP_BASE(bt,bn)))\
__AROS_GETVECADDR(bn,o))(\
__AROS_LCA(a1),\
__AROS_LCA(a2),\
__AROS_LCA(a3),\
__AROS_LCA(a4),\
bn))
#endif
#ifndef AROS_LVO_CALL5
#define AROS_LVO_CALL5(t,a1,a2,a3,a4,a5,bt,bn,o,s) \
(((__AROS_LC_PREFIX t(*)(\
__AROS_LPA(a1),\
__AROS_LPA(a2),\
__AROS_LPA(a3),\
__AROS_LPA(a4),\
__AROS_LPA(a5),\
__AROS_LP_BASE(bt,bn)))\
__AROS_GETVECADDR(bn,o))(\
__AROS_LCA(a1),\
__AROS_LCA(a2),\
__AROS_LCA(a3),\
__AROS_LCA(a4),\
__AROS_LCA(a5),\
bn))
#endif
#ifndef AROS_LVO_CALL5NR
#define AROS_LVO_CALL5NR(a1,a2,a3,a4,a5,bt,bn,o,s) \
(((__AROS_LC_PREFIX void(*)(\
__AROS_LPA(a1),\
__AROS_LPA(a2),\
__AROS_LPA(a3),\
__AROS_LPA(a4),\
__AROS_LPA(a5),\
__AROS_LP_BASE(bt,bn)))\
__AROS_GETVECADDR(bn,o))(\
__AROS_LCA(a1),\
__AROS_LCA(a2),\
__AROS_LCA(a3),\
__AROS_LCA(a4),\
__AROS_LCA(a5),\
bn))
#endif
#ifdef __AROS_USE_MACROS_FOR_LIBCALL
# define AROS_LP0(t,n,bt,bn,o,s)
# define AROS_LP1(t,n,a1,bt,bn,o,s)
# define AROS_LP2(t,n,a1,a2,bt,bn,o,s)
# define AROS_LP3(t,n,a1,a2,a3,bt,bn,o,s)
# define AROS_LP4(t,n,a1,a2,a3,a4,bt,bn,o,s)
# define AROS_LP5(t,n,a1,a2,a3,a4,a5,bt,bn,o,s)
# define AROS_LP6(t,n,a1,a2,a3,a4,a5,a6,bt,bn,o,s)
# define AROS_LP7(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s)
# define AROS_LP8(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s)
# define AROS_LP9(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s)
# define AROS_LP10(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s)
# define AROS_LP11(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn,o,s)
# define AROS_LP12(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn,o,s)
# define AROS_LP13(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn,o,s)
# define AROS_LP14(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,bt,bn,o,s)
# define AROS_LP15(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,bt,bn,o,s)
# define AROS_LP0I(t,n,bt,bn,o,s)
# define AROS_LP1I(t,n,a1,bt,bn,o,s)
# define AROS_LP2I(t,n,a1,a2,bt,bn,o,s)
# define AROS_LP3I(t,n,a1,a2,a3,bt,bn,o,s)
# define AROS_LP4I(t,n,a1,a2,a3,a4,bt,bn,o,s)
# define AROS_LP5I(t,n,a1,a2,a3,a4,a5,bt,bn,o,s)
# define AROS_LP6I(t,n,a1,a2,a3,a4,a5,a6,bt,bn,o,s)
# define AROS_LP7I(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s)
# define AROS_LP8I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s)
# define AROS_LP9I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s)
# define AROS_LP10I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s)
# define AROS_LP11I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn,o,s)
# define AROS_LP12I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn,o,s)
# define AROS_LP13I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn,o,s)
# define AROS_LP14I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,bt,bn,o,s)
# define AROS_LP15I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,bt,bn,o,s)
#else
/* Prototypes for library functions which need the libbase */
# define AROS_LP0(t,n,bt,bn,o,s) \
__AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (__AROS_LP_BASE(bt,bn))
# define AROS_LP1(t,n,a1,bt,bn,o,s) \
__AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1,__AROS_LP_BASE(bt,bn))
# define AROS_LP2(t,n,a1,a2,bt,bn,o,s) \
__AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1,a2,__AROS_LP_BASE(bt,bn))
# define AROS_LP3(t,n,a1,a2,a3,bt,bn,o,s) \
__AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1,a2,a3,__AROS_LP_BASE(bt,bn))
# define AROS_LP4(t,n,a1,a2,a3,a4,bt,bn,o,s) \
__AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1,a2,a3,a4,__AROS_LP_BASE(bt,bn))
# define AROS_LP5(t,n,a1,a2,a3,a4,a5,bt,bn,o,s) \
__AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1, a2,a3,a4,a5,__AROS_LP_BASE(bt,bn))
# define AROS_LP6(t,n,a1,a2,a3,a4,a5,a6,bt,bn,o,s) \
__AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1, a2,a3,a4,a5,a6,__AROS_LP_BASE(bt,bn))
# define AROS_LP7(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s) \
__AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1, a2,a3,a4,a5,a6,a7,__AROS_LP_BASE(bt,bn))
# define AROS_LP8(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s) \
__AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1, a2,a3,a4,a5,a6,a7,a8,__AROS_LP_BASE(bt,bn))
# define AROS_LP9(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
__AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1, a2,a3,a4,a5,a6,a7,a8,a9,__AROS_LP_BASE(bt,bn))
# define AROS_LP10(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s) \
__AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1, a2,a3,a4,a5,a6,a7,a8,a9,a10,__AROS_LP_BASE(bt,bn))
# define AROS_LP11(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn,o,s) \
__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))
# define AROS_LP12(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn,o,s) \
__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))
# define AROS_LP13(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn,o,s) \
__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))
# define AROS_LP14(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,bt,bn,o,s) \
__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))
# define AROS_LP15(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,bt,bn,o,s) \
__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))
/* Prototypes for library functions which don't need the libbase */
# define AROS_LP0I(t,n,bt,bn,o,s) \
__AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (void)
# define AROS_LP1I(t,n,a1,bt,bn,o,s) \
__AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1)
# define AROS_LP2I(t,n,a1,a2,bt,bn,o,s) \
__AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1,a2)
# define AROS_LP3I(t,n,a1,a2,a3,bt,bn,o,s) \
__AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1,a2,a3)
# define AROS_LP4I(t,n,a1,a2,a3,a4,bt,bn,o,s) \
__AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1,a2,a3,a4)
# define AROS_LP5I(t,n,a1,a2,a3,a4,a5,bt,bn,o,s) \
__AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1, a2,a3,a4,a5)
# define AROS_LP6I(t,n,a1,a2,a3,a4,a5,a6,bt,bn,o,s) \
__AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1, a2,a3,a4,a5,a6)
# define AROS_LP7I(t,n,a1,a2,a3,a4,a5,a6,a7,bt,bn,o,s) \
__AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1, a2,a3,a4,a5,a6,a7)
# define AROS_LP8I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,bt,bn,o,s) \
__AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1, a2,a3,a4,a5,a6,a7,a8)
# define AROS_LP9I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,bt,bn,o,s) \
__AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1, a2,a3,a4,a5,a6,a7,a8,a9)
# define AROS_LP10I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,bt,bn,o,s) \
__AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1, a2,a3,a4,a5,a6,a7,a8,a9,a10)
# define AROS_LP11I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,bt,bn,o,s) \
__AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1, a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)
# define AROS_LP12I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,bt,bn,o,s) \
__AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1, a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)
# define AROS_LP13I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,bt,bn,o,s) \
__AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1, a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)
# define AROS_LP14I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,bt,bn,o,s) \
__AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1, a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)
# define AROS_LP15I(t,n,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,bt,bn,o,s) \
__AROS_LP_PREFIX t AROS_SLIB_ENTRY(n,s) (a1, a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)
#endif
#define AROS_LHA(type,name,reg) type,name,reg
#define AROS_LPA(type,name,reg) type,name,reg
#define AROS_LCA(type,name,reg) type,name,reg
#ifndef AROS_LIBFUNC_INIT
# define AROS_LIBFUNC_INIT {
#endif
#ifndef AROS_LIBFUNC_EXIT
# define AROS_LIBFUNC_EXIT }
#endif
#ifndef AROS_LIBBASE_EXT_DECL
# define AROS_LIBBASE_EXT_DECL(a,b)
#endif
/******************************************************************************
***** ENDE aros/libcall.h
******************************************************************************/
#endif /* AROS_LIBCALL_H */