Files

102 lines
1.4 KiB
C

#ifndef __LIBRADHOOK_PRIVATE_MEMORY_H__
#define __LIBRADHOOK_PRIVATE_MEMORY_H__
#include "radhook/defines.h"
#if defined(RADIUM_PLATFORM_WINDOWS)
# ifndef WIN32_LEAN_AND_MEAN
# define WIN32_LEAN_AND_MEAN
# endif
# include <windows.h>
#elif defined(RADIUM_PLATFORM_ANDROID)
# include <sys/mman.h>
# include <unistd.h>
#endif
#if defined(RADIUM_PLATFORM_WINDOWS)
size_t
RadMemoryPageSize();
void*
RadAllocExec(
size_t size
);
void*
RadAllocExecNear(
void* target,
size_t size
);
void
RadFreeExec(
void* p,
size_t size
);
bool
RadMakeWritableExecutable(
void* addr,
size_t size,
unsigned long* oldProtect
);
void
RadRestoreMemoryProtection(
void* addr,
size_t size,
unsigned long oldProtect
);
void
RadFlushICache(
void* addr,
size_t size
);
#elif defined(RADIUM_PLATFORM_ANDROID)
size_t
RadMemoryPageSize();
void*
RadAllocExec(
size_t size
);
void*
RadAllocExecNear(
void* target,
size_t size
);
void
RadFreeExec(
void* p,
size_t size
);
bool
RadMakeWritableExecutable(
void* addr,
size_t size,
unsigned long* oldProtect
);
void
RadRestoreMemoryProtection(
void* addr,
size_t size,
unsigned long oldProtect
);
void
RadFlushICache(
void* addr,
size_t size
);
#endif
#endif // __LIBRADHOOK_PRIVATE_MEMORY_H__