about summary refs log tree commit diff stats
path: root/src/include/custommem.h
blob: d6bca59c8f84cc388b9031c4e81878da53585dba (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#ifndef __CUSTOM_MEM__H_
#define __CUSTOM_MEM__H_
#include <unistd.h>
#include <stdint.h>


typedef struct box64context_s box64context_t;

//void* customMalloc(size_t size);
//void* customCalloc(size_t n, size_t size);
//void* customRealloc(void* p, size_t size);
//void customFree(void* p);

//#define kcalloc     customCalloc
//#define kmalloc     customMalloc
//#define krealloc    customRealloc
//#define kfree       customFree

#ifdef DYNAREC
//typedef struct dynablock_s dynablock_t;
//typedef struct dynablocklist_s dynablocklist_t;
//// custom protection flag to mark Page that are Write protected for Dynarec purpose
//uintptr_t AllocDynarecMap(dynablock_t* db, int size);
//void FreeDynarecMap(dynablock_t* db, uintptr_t addr, uint32_t size);

//void addDBFromAddressRange(uintptr_t addr, uintptr_t size);
//void cleanDBFromAddressRange(uintptr_t addr, uintptr_t size, int destroy);

//dynablocklist_t* getDB(uintptr_t idx);
//void addJumpTableIfDefault(void* addr, void* jmp);
//void setJumpTableDefault(void* addr);
//uintptr_t getJumpTable();
//uintptr_t getJumpTableAddress(uintptr_t addr);
#endif

#define PROT_DYNAREC 0x80
void updateProtection(uintptr_t addr, uintptr_t size, uint32_t prot);
void setProtection(uintptr_t addr, uintptr_t size, uint32_t prot);
uint32_t getProtection(uintptr_t addr);
#ifdef DYNAREC
//void protectDB(uintptr_t addr, uintptr_t size);
//void protectDBnolock(uintptr_t addr, uintptr_t size);
//void unprotectDB(uintptr_t addr, uintptr_t size);
//void lockDB();
//void unlockDB();
#endif


void init_custommem_helper(box64context_t* ctx);
void fini_custommem_helper(box64context_t* ctx);

#endif //__CUSTOM_MEM__H_