#ifndef _PPCINLINE_AKCCPLUS_H
#define _PPCINLINE_AKCCPLUS_H

#ifndef CLIB_AKCCPLUS_PROTOS_H
#define CLIB_AKCCPLUS_PROTOS_H
#endif

#ifndef __PPCINLINE_MACROS_H
#include <ppcinline/macros.h>
#endif

#ifndef  AKCCPLUS_AKCCPLUS_H
#include <akccplus/akccplus.h>
#endif

#ifndef AKCCPLUS_BASE_NAME
#define AKCCPLUS_BASE_NAME AKCCPlusBase
#endif

#define AKCC_StoreFile(name, bytes) \
	LP2(0x1e, BYTE *, AKCC_StoreFile, UBYTE *, name, a1, ULONG *, bytes, a2, \
	, AKCCPLUS_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)

#define AKCC_GetDate(gd_rawdate) \
	LP1(0x24, struct DateStruct *, AKCC_GetDate, struct DateStamp *, gd_rawdate, a1, \
	, AKCCPLUS_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)

#define AKCC_WildCmp(orig, wild) \
	LP2(0x2a, long, AKCC_WildCmp, UBYTE *, orig, a1, UBYTE *, wild, a2, \
	, AKCCPLUS_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)

#define AKCC_Paths(name, rootdir, dir, comparename) \
	LP4A4(0x30, long, AKCC_Paths, UBYTE *, name, a1, UBYTE *, rootdir, a2, UBYTE *, dir, a3, UBYTE *, comparename, d7, \
	, AKCCPLUS_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)

#define AKCC_CopyFile(sourcename, destname) \
	LP2(0x36, long, AKCC_CopyFile, UBYTE *, sourcename, a1, UBYTE *, destname, a2, \
	, AKCCPLUS_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)

#define AKCC_TestEntry(entryname) \
	LP1(0x3c, long, AKCC_TestEntry, UBYTE *, entryname, a1, \
	, AKCCPLUS_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)

#define AKCC_BStrCpy(dest, bstr, hangon) \
	LP3NR(0x42, AKCC_BStrCpy, UBYTE *, dest, a1, BSTR, bstr, a2, UBYTE *, hangon, a3, \
	, AKCCPLUS_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)

#define AKCC_GetName(dest, fl, name) \
	LP3NR(0x48, AKCC_GetName, BPTR, dest, a1, BPTR, fl, a2, UBYTE *, name, a3, \
	, AKCCPLUS_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)

#define AKCC_FPrintf(outhandle, text, pararr) \
	LP3NR(0x4e, AKCC_FPrintf, BPTR, outhandle, a1, UBYTE *, text, a2, APTR, pararr, a3, \
	, AKCCPLUS_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)

#define AKCC_DelEnv(var) \
	LP1(0x54, long, AKCC_DelEnv, UBYTE *, var, a1, \
	, AKCCPLUS_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)

#define AKCC_ReadEnv(var, content) \
	LP2(0x5a, long, AKCC_ReadEnv, UBYTE *, var, a1, UBYTE *, content, a2, \
	, AKCCPLUS_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)

#define AKCC_WriteEnv(var, content) \
	LP2(0x60, long, AKCC_WriteEnv, UBYTE *, var, a1, UBYTE *, content, a2, \
	, AKCCPLUS_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)

#define AKCC_Assign(ass_name, ass_path) \
	LP2(0x66, long, AKCC_Assign, UBYTE *, ass_name, a1, UBYTE *, ass_path, a2, \
	, AKCCPLUS_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)

#define AKCC_UnLineStr(dest, source) \
	LP2NR(0x6c, AKCC_UnLineStr, UBYTE *, dest, a1, UBYTE *, source, a2, \
	, AKCCPLUS_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)

#define AKCC_AddPathLock(lock) \
	LP1(0x72, long, AKCC_AddPathLock, BPTR, lock, a1, \
	, AKCCPLUS_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)

#define AKCC_AddPathName(name) \
	LP1(0x78, long, AKCC_AddPathName, UBYTE *, name, a1, \
	, AKCCPLUS_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)

#define AKCC_RemPathName(name) \
	LP1NR(0x7e, AKCC_RemPathName, UBYTE *, name, a1, \
	, AKCCPLUS_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)

#define AKCC_ParseText(orig, old) \
	LP2NR(0x84, AKCC_ParseText, UBYTE *, orig, a1, UBYTE *, old, a2, \
	, AKCCPLUS_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)

#define AKCC_CheckAvailDevice(dev_name) \
	LP1(0x8a, long, AKCC_CheckAvailDevice, UBYTE *, dev_name, a1, \
	, AKCCPLUS_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)

#define AKCC_SetDate(gd_date) \
	LP1(0x90, long, AKCC_SetDate, struct DateStruct *, gd_date, a1, \
	, AKCCPLUS_BASE_NAME, IF_CACHEFLUSHALL, NULL, 0, IF_CACHEFLUSHALL, NULL, 0)

#endif /*  _PPCINLINE_AKCCPLUS_H  */
