mirror of
https://github.com/alliedmodders/amxmodx.git
synced 2024-12-26 06:45:37 +03:00
49 lines
1.3 KiB
C
49 lines
1.3 KiB
C
|
#ifndef __MEMCONST_H__
|
||
|
#define __MEMCONST_H__
|
||
|
|
||
|
#ifdef __linux__
|
||
|
#include <sys/mman.h>
|
||
|
#endif
|
||
|
|
||
|
#include "amxxmodule.h"
|
||
|
|
||
|
// Define memory address type
|
||
|
#ifdef __amd64__
|
||
|
typedef uint64_t maddress;
|
||
|
#else
|
||
|
typedef uint32_t maddress;
|
||
|
#endif
|
||
|
|
||
|
// Number of bytes for different data types
|
||
|
#define BYTE_BYTES 1
|
||
|
#define WORD_BYTES 2
|
||
|
#define DWORD_BYTES 4
|
||
|
#define QWORD_BYTES 8
|
||
|
#define FLOAT_BYTES 4
|
||
|
|
||
|
// Return codes for MemoryProtect
|
||
|
#define MP_FAIL -1
|
||
|
#define MP_OK 0
|
||
|
|
||
|
// Memory protection constants
|
||
|
#ifdef __linux__
|
||
|
#define MPROT_CODE PROT_READ|PROT_EXEC
|
||
|
#define MPROT_DATA PROT_READ|PROT_WRITE
|
||
|
#define MPROT_RODATA PROT_READ
|
||
|
#define MPROT_CODE_EDIT PROT_READ|PROT_WRITE|PROT_EXEC
|
||
|
#define MPROT_RODATA_EDIT PROT_READ|PROT_WRITE
|
||
|
#else
|
||
|
#define MPROT_CODE PAGE_EXECUTE_READ
|
||
|
#define MPROT_DATA PAGE_READWRITE
|
||
|
#define MPROT_RODATA PAGE_READONLY
|
||
|
#define MPROT_CODE_EDIT PAGE_EXECUTE_READWRITE
|
||
|
#define MPROT_RODATA_EDIT PAGE_READWRITE
|
||
|
#endif
|
||
|
|
||
|
// Memory area types
|
||
|
#define MEMTYPE_CODE 0 // Code (usually .text segment, requires mprotect or VirtualProtect)
|
||
|
#define MEMTYPE_DATA 1 // Data (usually .data segment, writable by default)
|
||
|
#define MEMTYPE_RODATA 2 // Read-Only Data (usually .rodata on Linux, .rdata on Windows)
|
||
|
|
||
|
#endif // #ifndef __MEMHACK_H__
|