#ifndef CLIB_XADMASTER_PROTOS_H
#define CLIB_XADMASTER_PROTOS_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.
*/

#include <aros/libcall.h>


#include <libraries/xadmaster.h>
#include <utility/tagitem.h>

__BEGIN_DECLS

xadPTR xadAllocObject(xadUINT32 type, const struct TagItem * tag1, ...) __stackparm;
void xadFreeObject(xadPTR object, const struct TagItem * tag1, ...) __stackparm;
struct xadClient *xadRecogFile(xadSize size, const void *memory, const struct TagItem * tag1, ...) __stackparm;
xadERROR xadGetInfo(struct xadArchiveInfo *ai, const struct TagItem * tag1, ...) __stackparm;
xadERROR xadFileUnArc(struct xadArchiveInfo *ai, const struct TagItem * tag1, ...) __stackparm;
xadERROR xadDiskUnArc(struct xadArchiveInfo *ai, const struct TagItem * tag1, ...) __stackparm;
xadERROR xadConvertDates(const struct TagItem * tag1, ...) __stackparm;
xadERROR xadHookTagAccess(xadUINT32 command, xadSignSize data, xadPTR buffer, struct xadArchiveInfo *ai, const struct TagItem * tag1, ...) __stackparm;
xadERROR xadConvertProtection(const struct TagItem * tag1, ...) __stackparm;
xadERROR xadGetDiskInfo(struct xadArchiveInfo *ai, const struct TagItem * tag1, ...) __stackparm;
xadERROR xadGetHookAccess(struct xadArchiveInfo *ai, const struct TagItem * tag1, ...) __stackparm;
void xadFreeHookAccess(struct xadArchiveInfo *ai, const struct TagItem * tag1, ...) __stackparm;
xadERROR xadAddFileEntry(struct xadFileInfo *fi, struct xadArchiveInfo *ai, const struct TagItem * tag1, ...) __stackparm;
xadERROR xadAddDiskEntry(struct xadDiskInfo *di, struct xadArchiveInfo *ai, const struct TagItem * tag1, ...) __stackparm;
xadERROR xadGetFilename(xadUINT32 buffersize, xadSTRPTR buffer, const xadSTRING *path, const xadSTRING *name, const struct TagItem * tag1, ...) __stackparm;
xadSTRPTR xadConvertName(xadUINT32 charset, const struct TagItem * tag1, ...) __stackparm;
xadSTRPTR xadGetDefaultName(const struct TagItem * tag1, ...) __stackparm;

__END_DECLS


__BEGIN_DECLS

AROS_LP2(xadPTR, xadAllocObjectA,
         AROS_LPA(xadUINT32, type, D0),
         AROS_LPA(const struct TagItem *, tags, A0),
         LIBBASETYPEPTR, xadMasterBase, 5, xadmaster
);
AROS_LP2(void, xadFreeObjectA,
         AROS_LPA(xadPTR, object, A0),
         AROS_LPA(const struct TagItem *, tags, A1),
         LIBBASETYPEPTR, xadMasterBase, 6, xadmaster
);
AROS_LP3(struct xadClient *, xadRecogFileA,
         AROS_LPA(xadSize, size, D0),
         AROS_LPA(const void *, memory, A0),
         AROS_LPA(const struct TagItem *, tags, A1),
         LIBBASETYPEPTR, xadMasterBase, 7, xadmaster
);
AROS_LP2(xadERROR, xadGetInfoA,
         AROS_LPA(struct xadArchiveInfo *, ai, A0),
         AROS_LPA(const struct TagItem *, tags, A1),
         LIBBASETYPEPTR, xadMasterBase, 8, xadmaster
);
AROS_LP1(void, xadFreeInfo,
         AROS_LPA(struct xadArchiveInfo *, ai, A0),
         LIBBASETYPEPTR, xadMasterBase, 9, xadmaster
);
AROS_LP2(xadERROR, xadFileUnArcA,
         AROS_LPA(struct xadArchiveInfo *, ai, A0),
         AROS_LPA(const struct TagItem *, tags, A1),
         LIBBASETYPEPTR, xadMasterBase, 10, xadmaster
);
AROS_LP2(xadERROR, xadDiskUnArcA,
         AROS_LPA(struct xadArchiveInfo *, ai, A0),
         AROS_LPA(const struct TagItem *, tags, A1),
         LIBBASETYPEPTR, xadMasterBase, 11, xadmaster
);
AROS_LP1(xadSTRPTR, xadGetErrorText,
         AROS_LPA(xadERROR, errnum, D0),
         LIBBASETYPEPTR, xadMasterBase, 12, xadmaster
);
AROS_LP0(struct xadClient *, xadGetClientInfo,
         LIBBASETYPEPTR, xadMasterBase, 13, xadmaster
);
AROS_LP4(xadERROR, xadHookAccess,
         AROS_LPA(xadUINT32, command, D0),
         AROS_LPA(xadSignSize, data, D1),
         AROS_LPA(xadPTR, buffer, A0),
         AROS_LPA(struct xadArchiveInfo *, ai, A1),
         LIBBASETYPEPTR, xadMasterBase, 14, xadmaster
);
AROS_LP1(xadERROR, xadConvertDatesA,
         AROS_LPA(const struct TagItem *, tags, A0),
         LIBBASETYPEPTR, xadMasterBase, 15, xadmaster
);
AROS_LP4(xadUINT16, xadCalcCRC16,
         AROS_LPA(xadUINT32, id, D0),
         AROS_LPA(xadUINT32, init, D1),
         AROS_LPA(xadSize, size, D2),
         AROS_LPA(const xadUINT8 *, buffer, A0),
         LIBBASETYPEPTR, xadMasterBase, 16, xadmaster
);
AROS_LP4(xadUINT32, xadCalcCRC32,
         AROS_LPA(xadUINT32, id, D0),
         AROS_LPA(xadUINT32, init, D1),
         AROS_LPA(xadSize, size, D2),
         AROS_LPA(const xadUINT8 *, buffer, A0),
         LIBBASETYPEPTR, xadMasterBase, 17, xadmaster
);
AROS_LP2(xadPTR, xadAllocVec,
         AROS_LPA(xadSize, size, D0),
         AROS_LPA(xadUINT32, flags, D1),
         LIBBASETYPEPTR, xadMasterBase, 18, xadmaster
);
AROS_LP3(void, xadCopyMem,
         AROS_LPA(const void *, src, A0),
         AROS_LPA(xadPTR, dest, A1),
         AROS_LPA(xadSize, size, D0),
         LIBBASETYPEPTR, xadMasterBase, 19, xadmaster
);
AROS_LP5(xadERROR, xadHookTagAccessA,
         AROS_LPA(xadUINT32, command, D0),
         AROS_LPA(xadSignSize, data, D1),
         AROS_LPA(xadPTR, buffer, A0),
         AROS_LPA(struct xadArchiveInfo *, ai, A1),
         AROS_LPA(const struct TagItem *, tags, A2),
         LIBBASETYPEPTR, xadMasterBase, 20, xadmaster
);
AROS_LP1(xadERROR, xadConvertProtectionA,
         AROS_LPA(const struct TagItem *, tags, A0),
         LIBBASETYPEPTR, xadMasterBase, 21, xadmaster
);
AROS_LP2(xadERROR, xadGetDiskInfoA,
         AROS_LPA(struct xadArchiveInfo *, ai, A0),
         AROS_LPA(const struct TagItem *, tags, A1),
         LIBBASETYPEPTR, xadMasterBase, 22, xadmaster
);
AROS_LP2(xadERROR, xadGetHookAccessA,
         AROS_LPA(struct xadArchiveInfo *, ai, A0),
         AROS_LPA(const struct TagItem *, tags, A1),
         LIBBASETYPEPTR, xadMasterBase, 23, xadmaster
);
AROS_LP2(void, xadFreeHookAccessA,
         AROS_LPA(struct xadArchiveInfo *, ai, A0),
         AROS_LPA(const struct TagItem *, tags, A1),
         LIBBASETYPEPTR, xadMasterBase, 24, xadmaster
);
AROS_LP3(xadERROR, xadAddFileEntryA,
         AROS_LPA(struct xadFileInfo *, fi, A0),
         AROS_LPA(struct xadArchiveInfo *, ai, A1),
         AROS_LPA(const struct TagItem *, tags, A2),
         LIBBASETYPEPTR, xadMasterBase, 25, xadmaster
);
AROS_LP3(xadERROR, xadAddDiskEntryA,
         AROS_LPA(struct xadDiskInfo *, di, A0),
         AROS_LPA(struct xadArchiveInfo *, ai, A1),
         AROS_LPA(const struct TagItem *, tags, A2),
         LIBBASETYPEPTR, xadMasterBase, 26, xadmaster
);
AROS_LP5(xadERROR, xadGetFilenameA,
         AROS_LPA(xadUINT32, buffersize, D0),
         AROS_LPA(xadSTRPTR, buffer, A0),
         AROS_LPA(const xadSTRING *, path, A1),
         AROS_LPA(const xadSTRING *, name, A2),
         AROS_LPA(const struct TagItem *, tags, A3),
         LIBBASETYPEPTR, xadMasterBase, 27, xadmaster
);
AROS_LP2(xadSTRPTR, xadConvertNameA,
         AROS_LPA(xadUINT32, charset, D0),
         AROS_LPA(const struct TagItem *, tags, A0),
         LIBBASETYPEPTR, xadMasterBase, 28, xadmaster
);
AROS_LP1(xadSTRPTR, xadGetDefaultNameA,
         AROS_LPA(const struct TagItem *, tags, A0),
         LIBBASETYPEPTR, xadMasterBase, 29, xadmaster
);
AROS_LP0(const struct xadSystemInfo *, xadGetSystemInfo,
         LIBBASETYPEPTR, xadMasterBase, 30, xadmaster
);

__END_DECLS

#endif /* CLIB_XADMASTER_PROTOS_H */
