/* Copyright (C) 2020-2021 Reiko Asakura. All Rights Reserved. Moonshine */ #ifndef PATCH_H_ #define PATCH_H_ #include #define HOOK_NEXT(func, ...) TAI_NEXT(func##_hook, func##_hook_ref, ##__VA_ARGS__) #define HOOK_OFFSET(modid, segidx, offset, thumb, func) \ hook_offset(modid, segidx, offset, thumb, func##_hook, &func##_hook_id, &func##_hook_ref, #func) #define UNHOOK(func) unhook(&func##_hook_id, func##_hook_ref, #func) int hook_offset( SceUID modid, int segidx, int offset, int thumb, void *func, SceUID *hook_id, tai_hook_ref_t *hook_ref, const char *name); int unhook(SceUID *hook_id, tai_hook_ref_t hook_ref, const char *name); #endif /* PATCH_H_ */