#ifndef AROS_ABSCALL_H
#define AROS_ABSCALL_H
/* (C) 1995, 96 AROS - The Amiga Replacement OS */

/******************************************************************************

    MODUL
	$Id$

    DESCRIPTION
	Some macros to build functions with registerized parameters on the
	different compilers around. Usage:

	__AROS_AC<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: Call a Exec compatible RemHead function.

	__AROS_AC1(struct Node *, myRemHead,
	    __AROS_ACA(struct List *, list, A0));

******************************************************************************/

/* Choose correct config file */
#if defined(__SASC)
#   include <aros/config/sasc/abscall.h>
#elif defined(__GNUC__) && defined(mc68000)
#   include <aros/config/gnuc/abscall_m68k.h>
#else
#   include <aros/config/other/abscall.h>
#endif

/******************************************************************************
*****  ENDE aros/abscall.h
******************************************************************************/

#endif /* AROS_ABSCALL_H */
