1 #ifndef _INLINE_XPKMASTER_H
    2 #define _INLINE_XPKMASTER_H
    3 
    4 #ifndef __PPCINLINE_MACROS_H
    5 #include <ppcinline/macros.h>
    6 #endif
    7 
    8 #ifndef XPKMASTER_BASE_NAME
    9 #define XPKMASTER_BASE_NAME XpkBase
   10 #endif
   11 
   12 #define XpkExamine(fib, tags) \
   13 	LP2(0x24, LONG, XpkExamine, struct XpkFib *, fib, a0, struct TagItem *, tags, a1, \
   14 	, XPKMASTER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   15 
   16 #ifndef NO_PPCINLINE_STDARG
   17 #define XpkExamineTags(fib, tags...) \
   18 	({ULONG _tags[] = { tags }; XpkExamine((fib), (struct TagItem *)_tags);})
   19 #endif
   20 
   21 #define XpkPack(tags) \
   22 	LP1(0x2A, LONG, XpkPack, struct TagItem *, tags, a0, \
   23 	, XPKMASTER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   24 
   25 #ifndef NO_PPCINLINE_STDARG
   26 #define XpkPackTags(tags...) \
   27 	({ULONG _tags[] = { tags }; XpkPack((struct TagItem *)_tags);})
   28 #endif
   29 
   30 #define XpkUnpack(tags) \
   31 	LP1(0x30, LONG, XpkUnpack, struct TagItem *, tags, a0, \
   32 	, XPKMASTER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   33 
   34 #ifndef NO_PPCINLINE_STDARG
   35 #define XpkUnpackTags(tags...) \
   36 	({ULONG _tags[] = { tags }; XpkUnpack((struct TagItem *)_tags);})
   37 #endif
   38 
   39 #define XpkOpen(xbuf, tags) \
   40 	LP2(0x36, LONG, XpkOpen, struct XpkFib **, xbuf, a0, struct TagItem *, tags, a1, \
   41 	, XPKMASTER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   42 
   43 #ifndef NO_PPCINLINE_STDARG
   44 #define XpkOpenTags(xbuf, tags...) \
   45 	({ULONG _tags[] = { tags }; XpkOpen((xbuf), (struct TagItem *)_tags);})
   46 #endif
   47 
   48 #define XpkRead(xbuf, buf, len) \
   49 	LP3(0x3C, LONG, XpkRead, struct XpkFib *, xbuf, a0, STRPTR, buf, a1, ULONG, len, d0, \
   50 	, XPKMASTER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   51 
   52 #define XpkWrite(xbuf, buf, len) \
   53 	LP3(0x42, LONG, XpkWrite, struct XpkFib *, xbuf, a0, STRPTR, buf, a1, LONG, len, d0, \
   54 	, XPKMASTER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   55 
   56 #define XpkSeek(xbuf, len, mode) \
   57 	LP3(0x48, LONG, XpkSeek, struct XpkFib *, xbuf, a0, LONG, len, d0, ULONG, mode, d1, \
   58 	, XPKMASTER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   59 
   60 #define XpkClose(xbuf) \
   61 	LP1(0x4E, LONG, XpkClose, struct XpkFib *, xbuf, a0, \
   62 	, XPKMASTER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   63 
   64 #define XpkQuery(tags) \
   65 	LP1(0x54, LONG, XpkQuery, struct TagItem *, tags, a0, \
   66 	, XPKMASTER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   67 
   68 #ifndef NO_PPCINLINE_STDARG
   69 #define XpkQueryTags(tags...) \
   70 	({ULONG _tags[] = { tags }; XpkQuery((struct TagItem *)_tags);})
   71 #endif
   72 
   73 #define XpkAllocObject(type, tags) \
   74 	LP2(0x5A, APTR, XpkAllocObject, ULONG, type, d0, struct TagItem *, tags, a0, \
   75 	, XPKMASTER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   76 
   77 #ifndef NO_PPCINLINE_STDARG
   78 #define XpkAllocObjectTags(type, tags...) \
   79 	({ULONG _tags[] = { tags }; XpkAllocObject((type), (struct TagItem *)_tags);})
   80 #endif
   81 
   82 #define XpkFreeObject(type, object) \
   83 	LP2NR(0x60, XpkFreeObject, ULONG, type, d0, APTR, object, a0, \
   84 	, XPKMASTER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   85 
   86 #define XpkPrintFault(code, header) \
   87 	LP2(0x66, BOOL, XpkPrintFault, LONG, code, d0, STRPTR, header, a0, \
   88 	, XPKMASTER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   89 
   90 #define XpkFault(code, header, buffer, size) \
   91 	LP4(0x6C, ULONG, XpkFault, LONG, code, d0, STRPTR, header, a0, STRPTR, buffer, a1, ULONG, size, d1, \
   92 	, XPKMASTER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   93 
   94 #define XpkPassRequest(tags) \
   95 	LP1(0x72, LONG, XpkPassRequest, struct TagItem *, tags, a0, \
   96 	, XPKMASTER_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)
   97 
   98 #ifndef NO_PPCINLINE_STDARG
   99 #define XpkPassRequestTags(tags...) \
  100 	({ULONG _tags[] = { tags }; XpkPassRequest((struct TagItem *)_tags);})
  101 #endif
  102 
  103 #endif /*  _INLINE_XPKMASTER_H  */