/* Automatically generated header! Do not edit! */

#ifndef _INLINE_PATCH_H
#define _INLINE_PATCH_H

#ifndef __INLINE_MACROS_H
#include <inline/macros.h>
#endif /* !__INLINE_MACROS_H */

#ifndef PATCH_BASE_NAME
#define PATCH_BASE_NAME PatchBase
#endif /* !PATCH_BASE_NAME */

#define AddPatchNotifyA(msgport, tagList) \
	LP2(0x72, ULONG, AddPatchNotifyA, struct MsgPort *, msgport, a0, struct TagItem *, tagList, a1, \
	, PATCH_BASE_NAME)

#ifndef NO_INLINE_STDARG
#define AddPatchNotify(a0, tags...) \
	({ULONG _tags[] = { tags }; AddPatchNotifyA((a0), (struct TagItem *)_tags);})
#endif /* !NO_INLINE_STDARG */

#define CreatePatchProjectA(name, tagList) \
	LP2(0x60, APTR, CreatePatchProjectA, STRPTR, name, a0, struct TagItem *, tagList, a1, \
	, PATCH_BASE_NAME)

#ifndef NO_INLINE_STDARG
#define CreatePatchProject(a0, tags...) \
	({ULONG _tags[] = { tags }; CreatePatchProjectA((a0), (struct TagItem *)_tags);})
#endif /* !NO_INLINE_STDARG */

#define FindPatch(name) \
	LP1(0x30, struct Patch *, FindPatch, UBYTE *, name, a0, \
	, PATCH_BASE_NAME)

#define FindPatchTagsA(tagList) \
	LP1(0x42, APTR, FindPatchTagsA, struct TagItem *, tagList, a0, \
	, PATCH_BASE_NAME)

#ifndef NO_INLINE_STDARG
#define FindPatchTags(tags...) \
	({ULONG _tags[] = { tags }; FindPatchTagsA((struct TagItem *)_tags);})
#endif /* !NO_INLINE_STDARG */

#define GetPatchA(patch, tagList) \
	LP2(0x4e, ULONG, GetPatchA, struct Patch *, patch, a0, struct TagItem *, tagList, a1, \
	, PATCH_BASE_NAME)

#ifndef NO_INLINE_STDARG
#define GetPatch(a0, tags...) \
	({ULONG _tags[] = { tags }; GetPatchA((a0), (struct TagItem *)_tags);})
#endif /* !NO_INLINE_STDARG */

#define InstallPatch(newPatch) \
	LP1(0x1e, struct Patch *, InstallPatch, struct NewPatch *, newPatch, a0, \
	, PATCH_BASE_NAME)

#define InstallPatchTagsA(funcEntry, funcOffset, tagList) \
	LP3FP(0x36, struct Patch *, InstallPatchTagsA, __fpt, funcEntry, a0, long, funcOffset, d0, struct TagItem *, tagList, a1, \
	, PATCH_BASE_NAME, unsigned long (*__fpt)())

#ifndef NO_INLINE_STDARG
#define InstallPatchTags(a0, a1, tags...) \
	({ULONG _tags[] = { tags }; InstallPatchTagsA((a0), (a1), (struct TagItem *)_tags);})
#endif /* !NO_INLINE_STDARG */

#define PatchAlloc(type) \
	LP1(0x7e, APTR, PatchAlloc, ULONG, type, d0, \
	, PATCH_BASE_NAME)

#define PatchFreeVec(memoryBlock) \
	LP1NR(0x54, PatchFreeVec, APTR, memoryBlock, a1, \
	, PATCH_BASE_NAME)

#define RemPatchNotifyA(msgport, tagList) \
	LP2(0x78, ULONG, RemPatchNotifyA, struct MsgPort *, msgport, a0, struct TagItem *, tagList, a1, \
	, PATCH_BASE_NAME)

#ifndef NO_INLINE_STDARG
#define RemPatchNotify(a0, tags...) \
	({ULONG _tags[] = { tags }; RemPatchNotifyA((a0), (struct TagItem *)_tags);})
#endif /* !NO_INLINE_STDARG */

#define RemovePatch(patch) \
	LP1(0x2a, ULONG, RemovePatch, struct Patch *, patch, a0, \
	, PATCH_BASE_NAME)

#define RemovePatchProjectA(project, tagList) \
	LP2(0x5a, ULONG, RemovePatchProjectA, APTR, project, a0, struct TagItem *, tagList, a1, \
	, PATCH_BASE_NAME)

#ifndef NO_INLINE_STDARG
#define RemovePatchProject(a0, tags...) \
	({ULONG _tags[] = { tags }; RemovePatchProjectA((a0), (struct TagItem *)_tags);})
#endif /* !NO_INLINE_STDARG */

#define RemovePatchTagsA(patch, tagList) \
	LP2(0x3c, ULONG, RemovePatchTagsA, struct Patch *, patch, a0, struct TagItem *, tagList, a1, \
	, PATCH_BASE_NAME)

#ifndef NO_INLINE_STDARG
#define RemovePatchTags(a0, tags...) \
	({ULONG _tags[] = { tags }; RemovePatchTagsA((a0), (struct TagItem *)_tags);})
#endif /* !NO_INLINE_STDARG */

#define SetPatchA(patch, tagList) \
	LP2(0x48, ULONG, SetPatchA, struct Patch *, patch, a0, struct TagItem *, tagList, a1, \
	, PATCH_BASE_NAME)

#ifndef NO_INLINE_STDARG
#define SetPatch(a0, tags...) \
	({ULONG _tags[] = { tags }; SetPatchA((a0), (struct TagItem *)_tags);})
#endif /* !NO_INLINE_STDARG */

#define SetPatchProjectA(project, tagList) \
	LP2(0x66, ULONG, SetPatchProjectA, APTR, project, a0, struct TagItem *, tagList, a1, \
	, PATCH_BASE_NAME)

#ifndef NO_INLINE_STDARG
#define SetPatchProject(a0, tags...) \
	({ULONG _tags[] = { tags }; SetPatchProjectA((a0), (struct TagItem *)_tags);})
#endif /* !NO_INLINE_STDARG */

#define WaitRemovePatch(patch) \
	LP1(0x24, ULONG, WaitRemovePatch, struct Patch *, patch, a0, \
	, PATCH_BASE_NAME)

#endif /* !_INLINE_PATCH_H */
