home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga MA Magazine 1998 #6
/
amigamamagazinepolishissue1998.iso
/
packery
/
xpk_develop
/
include
/
c
/
inline
/
xpksub.h
< prev
Wrap
C/C++ Source or Header
|
1996-10-19
|
2KB
|
100 lines
#ifndef _INLINE_XPKSUB_H
#define _INLINE_XPKSUB_H
#include <sys/cdefs.h>
#include <inline/stubs.h>
__BEGIN_DECLS
#ifndef BASE_EXT_DECL
#define BASE_EXT_DECL extern struct Library* XpkSubBase;
#endif
#ifndef BASE_PAR_DECL
#define BASE_PAR_DECL
#define BASE_PAR_DECL0 void
#endif
#ifndef BASE_NAME
#define BASE_NAME XpkSubBase
#endif
#include <xpk/xpksub.h>
static __inline
XpksPackChunk (BASE_PAR_DECL struct XpkSubParams *xpar)
{
BASE_EXT_DECL
register _res __asm("d0");
register struct XpkSubBase* a6 __asm("a6") = BASE_NAME;
register struct XpkSubParams * a0 __asm("a0") = xpar;
__asm __volatile ("jsr a6@(-0x24)"
: "=r" (_res)
: "r" (a6), "r" (a0)
: "a0","a1","d0","d1");
*(char *)a0 = *(char *)a0;
return _res;
}
static __inline
XpksPackFree (BASE_PAR_DECL struct XpkSubParams * xpar)
{
BASE_EXT_DECL
register _res __asm("d0");
register struct XpkSubBase* a6 __asm("a6") = BASE_NAME;
register struct XpkSubParams * a0 __asm("a0") = xpar;
__asm __volatile ("jsr a6@(-0x2a)"
: "=r" (_res)
: "r" (a6), "r" (a0)
: "a0","a1","d0","d1");
*(char *)a0 = *(char *)a0;
return _res;
}
static __inline
XpksPackReset (BASE_PAR_DECL struct XpkSubParams * xpar)
{
BASE_EXT_DECL
register _res __asm("d0");
register struct XpkSubBase* a6 __asm("a6") = BASE_NAME;
register struct XpkSubParams * a0 __asm("a0") = xpar;
__asm __volatile ("jsr a6@(-0x30)"
: "=r" (_res)
: "r" (a6), "r" (a0)
: "a0","a1","d0","d1");
*(char *)a0 = *(char *)a0;
return _res;
}
static __inline
XpksUnpackChunk (BASE_PAR_DEC struct XpkSubParams * xpar)
{
BASE_EXT_DECL
register __asm _res __asm("d0");
register struct XpkSubBase* a6 __asm("a6") = BASE_NAME;
register struct XpkSubParams * a0 __asm("a0") = xpar;
__asm __volatile ("jsr a6@(-0x36)"
: "=r" (_res)
: "r" (a6), "r" (a0)
: "a0","a1","d0","d1");
*(char *)a0 = *(char *)a0;
return _res;
}
static __inline
XpksUnpackFree (BASE_PAR_DECL struct XpkSubParams * xpar)
{
BASE_EXT_DECL
register _res __asm("d0");
register struct XpkSubBase* a6 __asm("a6") = BASE_NAME;
register struct XpkSubParams * a0 __asm("a0") = xpar;
__asm __volatile ("jsr a6@(-0x42)"
: "=r" (_res)
: "r" (a6), "r" (a0)
: "a0","a1","d0","d1");
*(char *)a0 = *(char *)a0;
return _res;
}
#undef BASE_EXT_DECL
#undef BASE_PAR_DECL
#undef BASE_PAR_DECL0
#undef BASE_NAME
__END_DECLS
#endif /* _INLINE_XPKSUB_H */