#ifndef DEFINES_XADMASTER_H
#define DEFINES_XADMASTER_H

/*
    *** Automatically generated from '/home/aros/ABIv0/Build/20120820/AROS/contrib/pack/libxad/portable/xadmaster.conf'. Edits will be lost. ***
    Copyright © 1995-2012, The AROS Development Team. All rights reserved.
*/

/*
    Desc: Defines for xadmaster
*/

#include <aros/libcall.h>
#include <exec/types.h>
#include <aros/preprocessor/variadic/cast2iptr.hpp>

__BEGIN_DECLS


#define __xadAllocObjectA_WB(__xadMasterBase, __arg1, __arg2) \
        AROS_LC2(xadPTR, xadAllocObjectA, \
                  AROS_LCA(xadUINT32,(__arg1),D0), \
                  AROS_LCA(const struct TagItem *,(__arg2),A0), \
        struct xadMasterBase *, (__xadMasterBase), 5, xadmaster)

#define xadAllocObjectA(arg1, arg2) \
    __xadAllocObjectA_WB(xadMasterBase, (arg1), (arg2))

#if !defined(NO_INLINE_STDARG) && !defined(XADMASTER_NO_INLINE_STDARG)
#define xadAllocObject(arg1, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    xadAllocObjectA((arg1), (const struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __xadFreeObjectA_WB(__xadMasterBase, __arg1, __arg2) \
        AROS_LC2NR(void, xadFreeObjectA, \
                  AROS_LCA(xadPTR,(__arg1),A0), \
                  AROS_LCA(const struct TagItem *,(__arg2),A1), \
        struct xadMasterBase *, (__xadMasterBase), 6, xadmaster)

#define xadFreeObjectA(arg1, arg2) \
    __xadFreeObjectA_WB(xadMasterBase, (arg1), (arg2))

#if !defined(NO_INLINE_STDARG) && !defined(XADMASTER_NO_INLINE_STDARG)
#define xadFreeObject(arg1, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    xadFreeObjectA((arg1), (const struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __xadRecogFileA_WB(__xadMasterBase, __arg1, __arg2, __arg3) \
        AROS_LC3(struct xadClient *, xadRecogFileA, \
                  AROS_LCA(xadSize,(__arg1),D0), \
                  AROS_LCA(const void *,(__arg2),A0), \
                  AROS_LCA(const struct TagItem *,(__arg3),A1), \
        struct xadMasterBase *, (__xadMasterBase), 7, xadmaster)

#define xadRecogFileA(arg1, arg2, arg3) \
    __xadRecogFileA_WB(xadMasterBase, (arg1), (arg2), (arg3))

#if !defined(NO_INLINE_STDARG) && !defined(XADMASTER_NO_INLINE_STDARG)
#define xadRecogFile(arg1, arg2, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    xadRecogFileA((arg1), (arg2), (const struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __xadGetInfoA_WB(__xadMasterBase, __arg1, __arg2) \
        AROS_LC2(xadERROR, xadGetInfoA, \
                  AROS_LCA(struct xadArchiveInfo *,(__arg1),A0), \
                  AROS_LCA(const struct TagItem *,(__arg2),A1), \
        struct xadMasterBase *, (__xadMasterBase), 8, xadmaster)

#define xadGetInfoA(arg1, arg2) \
    __xadGetInfoA_WB(xadMasterBase, (arg1), (arg2))

#if !defined(NO_INLINE_STDARG) && !defined(XADMASTER_NO_INLINE_STDARG)
#define xadGetInfo(arg1, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    xadGetInfoA((arg1), (const struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __xadFreeInfo_WB(__xadMasterBase, __arg1) \
        AROS_LC1NR(void, xadFreeInfo, \
                  AROS_LCA(struct xadArchiveInfo *,(__arg1),A0), \
        struct xadMasterBase *, (__xadMasterBase), 9, xadmaster)

#define xadFreeInfo(arg1) \
    __xadFreeInfo_WB(xadMasterBase, (arg1))

#define __xadFileUnArcA_WB(__xadMasterBase, __arg1, __arg2) \
        AROS_LC2(xadERROR, xadFileUnArcA, \
                  AROS_LCA(struct xadArchiveInfo *,(__arg1),A0), \
                  AROS_LCA(const struct TagItem *,(__arg2),A1), \
        struct xadMasterBase *, (__xadMasterBase), 10, xadmaster)

#define xadFileUnArcA(arg1, arg2) \
    __xadFileUnArcA_WB(xadMasterBase, (arg1), (arg2))

#if !defined(NO_INLINE_STDARG) && !defined(XADMASTER_NO_INLINE_STDARG)
#define xadFileUnArc(arg1, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    xadFileUnArcA((arg1), (const struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __xadDiskUnArcA_WB(__xadMasterBase, __arg1, __arg2) \
        AROS_LC2(xadERROR, xadDiskUnArcA, \
                  AROS_LCA(struct xadArchiveInfo *,(__arg1),A0), \
                  AROS_LCA(const struct TagItem *,(__arg2),A1), \
        struct xadMasterBase *, (__xadMasterBase), 11, xadmaster)

#define xadDiskUnArcA(arg1, arg2) \
    __xadDiskUnArcA_WB(xadMasterBase, (arg1), (arg2))

#if !defined(NO_INLINE_STDARG) && !defined(XADMASTER_NO_INLINE_STDARG)
#define xadDiskUnArc(arg1, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    xadDiskUnArcA((arg1), (const struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __xadGetErrorText_WB(__xadMasterBase, __arg1) \
        AROS_LC1(xadSTRPTR, xadGetErrorText, \
                  AROS_LCA(xadERROR,(__arg1),D0), \
        struct xadMasterBase *, (__xadMasterBase), 12, xadmaster)

#define xadGetErrorText(arg1) \
    __xadGetErrorText_WB(xadMasterBase, (arg1))

#define __xadGetClientInfo_WB(__xadMasterBase) \
        AROS_LC0(struct xadClient *, xadGetClientInfo, \
        struct xadMasterBase *, (__xadMasterBase), 13, xadmaster)

#define xadGetClientInfo() \
    __xadGetClientInfo_WB(xadMasterBase)

#define __xadHookAccess_WB(__xadMasterBase, __arg1, __arg2, __arg3, __arg4) \
        AROS_LC4(xadERROR, xadHookAccess, \
                  AROS_LCA(xadUINT32,(__arg1),D0), \
                  AROS_LCA(xadSignSize,(__arg2),D1), \
                  AROS_LCA(xadPTR,(__arg3),A0), \
                  AROS_LCA(struct xadArchiveInfo *,(__arg4),A1), \
        struct xadMasterBase *, (__xadMasterBase), 14, xadmaster)

#define xadHookAccess(arg1, arg2, arg3, arg4) \
    __xadHookAccess_WB(xadMasterBase, (arg1), (arg2), (arg3), (arg4))

#define __xadConvertDatesA_WB(__xadMasterBase, __arg1) \
        AROS_LC1(xadERROR, xadConvertDatesA, \
                  AROS_LCA(const struct TagItem *,(__arg1),A0), \
        struct xadMasterBase *, (__xadMasterBase), 15, xadmaster)

#define xadConvertDatesA(arg1) \
    __xadConvertDatesA_WB(xadMasterBase, (arg1))

#if !defined(NO_INLINE_STDARG) && !defined(XADMASTER_NO_INLINE_STDARG)
#define xadConvertDates(...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    xadConvertDatesA((const struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __xadCalcCRC16_WB(__xadMasterBase, __arg1, __arg2, __arg3, __arg4) \
        AROS_LC4(xadUINT16, xadCalcCRC16, \
                  AROS_LCA(xadUINT32,(__arg1),D0), \
                  AROS_LCA(xadUINT32,(__arg2),D1), \
                  AROS_LCA(xadSize,(__arg3),D2), \
                  AROS_LCA(const xadUINT8 *,(__arg4),A0), \
        struct xadMasterBase *, (__xadMasterBase), 16, xadmaster)

#define xadCalcCRC16(arg1, arg2, arg3, arg4) \
    __xadCalcCRC16_WB(xadMasterBase, (arg1), (arg2), (arg3), (arg4))

#define __xadCalcCRC32_WB(__xadMasterBase, __arg1, __arg2, __arg3, __arg4) \
        AROS_LC4(xadUINT32, xadCalcCRC32, \
                  AROS_LCA(xadUINT32,(__arg1),D0), \
                  AROS_LCA(xadUINT32,(__arg2),D1), \
                  AROS_LCA(xadSize,(__arg3),D2), \
                  AROS_LCA(const xadUINT8 *,(__arg4),A0), \
        struct xadMasterBase *, (__xadMasterBase), 17, xadmaster)

#define xadCalcCRC32(arg1, arg2, arg3, arg4) \
    __xadCalcCRC32_WB(xadMasterBase, (arg1), (arg2), (arg3), (arg4))

#define __xadAllocVec_WB(__xadMasterBase, __arg1, __arg2) \
        AROS_LC2(xadPTR, xadAllocVec, \
                  AROS_LCA(xadSize,(__arg1),D0), \
                  AROS_LCA(xadUINT32,(__arg2),D1), \
        struct xadMasterBase *, (__xadMasterBase), 18, xadmaster)

#define xadAllocVec(arg1, arg2) \
    __xadAllocVec_WB(xadMasterBase, (arg1), (arg2))

#define __xadCopyMem_WB(__xadMasterBase, __arg1, __arg2, __arg3) \
        AROS_LC3NR(void, xadCopyMem, \
                  AROS_LCA(const void *,(__arg1),A0), \
                  AROS_LCA(xadPTR,(__arg2),A1), \
                  AROS_LCA(xadSize,(__arg3),D0), \
        struct xadMasterBase *, (__xadMasterBase), 19, xadmaster)

#define xadCopyMem(arg1, arg2, arg3) \
    __xadCopyMem_WB(xadMasterBase, (arg1), (arg2), (arg3))

#define __xadHookTagAccessA_WB(__xadMasterBase, __arg1, __arg2, __arg3, __arg4, __arg5) \
        AROS_LC5(xadERROR, xadHookTagAccessA, \
                  AROS_LCA(xadUINT32,(__arg1),D0), \
                  AROS_LCA(xadSignSize,(__arg2),D1), \
                  AROS_LCA(xadPTR,(__arg3),A0), \
                  AROS_LCA(struct xadArchiveInfo *,(__arg4),A1), \
                  AROS_LCA(const struct TagItem *,(__arg5),A2), \
        struct xadMasterBase *, (__xadMasterBase), 20, xadmaster)

#define xadHookTagAccessA(arg1, arg2, arg3, arg4, arg5) \
    __xadHookTagAccessA_WB(xadMasterBase, (arg1), (arg2), (arg3), (arg4), (arg5))

#if !defined(NO_INLINE_STDARG) && !defined(XADMASTER_NO_INLINE_STDARG)
#define xadHookTagAccess(arg1, arg2, arg3, arg4, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    xadHookTagAccessA((arg1), (arg2), (arg3), (arg4), (const struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __xadConvertProtectionA_WB(__xadMasterBase, __arg1) \
        AROS_LC1(xadERROR, xadConvertProtectionA, \
                  AROS_LCA(const struct TagItem *,(__arg1),A0), \
        struct xadMasterBase *, (__xadMasterBase), 21, xadmaster)

#define xadConvertProtectionA(arg1) \
    __xadConvertProtectionA_WB(xadMasterBase, (arg1))

#if !defined(NO_INLINE_STDARG) && !defined(XADMASTER_NO_INLINE_STDARG)
#define xadConvertProtection(...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    xadConvertProtectionA((const struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __xadGetDiskInfoA_WB(__xadMasterBase, __arg1, __arg2) \
        AROS_LC2(xadERROR, xadGetDiskInfoA, \
                  AROS_LCA(struct xadArchiveInfo *,(__arg1),A0), \
                  AROS_LCA(const struct TagItem *,(__arg2),A1), \
        struct xadMasterBase *, (__xadMasterBase), 22, xadmaster)

#define xadGetDiskInfoA(arg1, arg2) \
    __xadGetDiskInfoA_WB(xadMasterBase, (arg1), (arg2))

#if !defined(NO_INLINE_STDARG) && !defined(XADMASTER_NO_INLINE_STDARG)
#define xadGetDiskInfo(arg1, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    xadGetDiskInfoA((arg1), (const struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __xadGetHookAccessA_WB(__xadMasterBase, __arg1, __arg2) \
        AROS_LC2(xadERROR, xadGetHookAccessA, \
                  AROS_LCA(struct xadArchiveInfo *,(__arg1),A0), \
                  AROS_LCA(const struct TagItem *,(__arg2),A1), \
        struct xadMasterBase *, (__xadMasterBase), 23, xadmaster)

#define xadGetHookAccessA(arg1, arg2) \
    __xadGetHookAccessA_WB(xadMasterBase, (arg1), (arg2))

#if !defined(NO_INLINE_STDARG) && !defined(XADMASTER_NO_INLINE_STDARG)
#define xadGetHookAccess(arg1, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    xadGetHookAccessA((arg1), (const struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __xadFreeHookAccessA_WB(__xadMasterBase, __arg1, __arg2) \
        AROS_LC2NR(void, xadFreeHookAccessA, \
                  AROS_LCA(struct xadArchiveInfo *,(__arg1),A0), \
                  AROS_LCA(const struct TagItem *,(__arg2),A1), \
        struct xadMasterBase *, (__xadMasterBase), 24, xadmaster)

#define xadFreeHookAccessA(arg1, arg2) \
    __xadFreeHookAccessA_WB(xadMasterBase, (arg1), (arg2))

#if !defined(NO_INLINE_STDARG) && !defined(XADMASTER_NO_INLINE_STDARG)
#define xadFreeHookAccess(arg1, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    xadFreeHookAccessA((arg1), (const struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __xadAddFileEntryA_WB(__xadMasterBase, __arg1, __arg2, __arg3) \
        AROS_LC3(xadERROR, xadAddFileEntryA, \
                  AROS_LCA(struct xadFileInfo *,(__arg1),A0), \
                  AROS_LCA(struct xadArchiveInfo *,(__arg2),A1), \
                  AROS_LCA(const struct TagItem *,(__arg3),A2), \
        struct xadMasterBase *, (__xadMasterBase), 25, xadmaster)

#define xadAddFileEntryA(arg1, arg2, arg3) \
    __xadAddFileEntryA_WB(xadMasterBase, (arg1), (arg2), (arg3))

#if !defined(NO_INLINE_STDARG) && !defined(XADMASTER_NO_INLINE_STDARG)
#define xadAddFileEntry(arg1, arg2, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    xadAddFileEntryA((arg1), (arg2), (const struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __xadAddDiskEntryA_WB(__xadMasterBase, __arg1, __arg2, __arg3) \
        AROS_LC3(xadERROR, xadAddDiskEntryA, \
                  AROS_LCA(struct xadDiskInfo *,(__arg1),A0), \
                  AROS_LCA(struct xadArchiveInfo *,(__arg2),A1), \
                  AROS_LCA(const struct TagItem *,(__arg3),A2), \
        struct xadMasterBase *, (__xadMasterBase), 26, xadmaster)

#define xadAddDiskEntryA(arg1, arg2, arg3) \
    __xadAddDiskEntryA_WB(xadMasterBase, (arg1), (arg2), (arg3))

#if !defined(NO_INLINE_STDARG) && !defined(XADMASTER_NO_INLINE_STDARG)
#define xadAddDiskEntry(arg1, arg2, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    xadAddDiskEntryA((arg1), (arg2), (const struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __xadGetFilenameA_WB(__xadMasterBase, __arg1, __arg2, __arg3, __arg4, __arg5) \
        AROS_LC5(xadERROR, xadGetFilenameA, \
                  AROS_LCA(xadUINT32,(__arg1),D0), \
                  AROS_LCA(xadSTRPTR,(__arg2),A0), \
                  AROS_LCA(const xadSTRING *,(__arg3),A1), \
                  AROS_LCA(const xadSTRING *,(__arg4),A2), \
                  AROS_LCA(const struct TagItem *,(__arg5),A3), \
        struct xadMasterBase *, (__xadMasterBase), 27, xadmaster)

#define xadGetFilenameA(arg1, arg2, arg3, arg4, arg5) \
    __xadGetFilenameA_WB(xadMasterBase, (arg1), (arg2), (arg3), (arg4), (arg5))

#if !defined(NO_INLINE_STDARG) && !defined(XADMASTER_NO_INLINE_STDARG)
#define xadGetFilename(arg1, arg2, arg3, arg4, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    xadGetFilenameA((arg1), (arg2), (arg3), (arg4), (const struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __xadConvertNameA_WB(__xadMasterBase, __arg1, __arg2) \
        AROS_LC2(xadSTRPTR, xadConvertNameA, \
                  AROS_LCA(xadUINT32,(__arg1),D0), \
                  AROS_LCA(const struct TagItem *,(__arg2),A0), \
        struct xadMasterBase *, (__xadMasterBase), 28, xadmaster)

#define xadConvertNameA(arg1, arg2) \
    __xadConvertNameA_WB(xadMasterBase, (arg1), (arg2))

#if !defined(NO_INLINE_STDARG) && !defined(XADMASTER_NO_INLINE_STDARG)
#define xadConvertName(arg1, ...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    xadConvertNameA((arg1), (const struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __xadGetDefaultNameA_WB(__xadMasterBase, __arg1) \
        AROS_LC1(xadSTRPTR, xadGetDefaultNameA, \
                  AROS_LCA(const struct TagItem *,(__arg1),A0), \
        struct xadMasterBase *, (__xadMasterBase), 29, xadmaster)

#define xadGetDefaultNameA(arg1) \
    __xadGetDefaultNameA_WB(xadMasterBase, (arg1))

#if !defined(NO_INLINE_STDARG) && !defined(XADMASTER_NO_INLINE_STDARG)
#define xadGetDefaultName(...) \
({ \
    IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
    xadGetDefaultNameA((const struct TagItem *)__args); \
})
#endif /* !NO_INLINE_STDARG */

#define __xadGetSystemInfo_WB(__xadMasterBase) \
        AROS_LC0(const struct xadSystemInfo *, xadGetSystemInfo, \
        struct xadMasterBase *, (__xadMasterBase), 30, xadmaster)

#define xadGetSystemInfo() \
    __xadGetSystemInfo_WB(xadMasterBase)

__END_DECLS

#endif /* DEFINES_XADMASTER_H*/
