From 3adf31c85b8bb4366d063fbe8f7d9fc36084366d Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Sun, 16 Apr 2023 10:50:12 +0200 Subject: [DYNAREC] General fixes and improvment for multithread and jit program. Helps Java, mono and Unity3d program... (should help #519, #464, #433, #272, #232, #193, #112...) --- src/include/custommem.h | 1 + src/include/dynablock.h | 2 ++ 2 files changed, 3 insertions(+) (limited to 'src/include') diff --git a/src/include/custommem.h b/src/include/custommem.h index 5f9164f3..e7623db2 100644 --- a/src/include/custommem.h +++ b/src/include/custommem.h @@ -26,6 +26,7 @@ void addDBFromAddressRange(uintptr_t addr, size_t size); void cleanDBFromAddressRange(uintptr_t addr, size_t size, int destroy); dynablock_t* getDB(uintptr_t idx); +int getNeedTest(uintptr_t idx); int addJumpTableIfDefault64(void* addr, void* jmp); // return 1 if write was succesfull int setJumpTableIfRef64(void* addr, void* jmp, void* ref); // return 1 if write was succesfull void setJumpTableDefault64(void* addr); diff --git a/src/include/dynablock.h b/src/include/dynablock.h index 1868deea..4e9d0b36 100755 --- a/src/include/dynablock.h +++ b/src/include/dynablock.h @@ -9,6 +9,8 @@ void FreeDynablock(dynablock_t* db, int need_lock); void MarkDynablock(dynablock_t* db); void MarkRangeDynablock(dynablock_t* db, uintptr_t addr, uintptr_t size); int FreeRangeDynablock(dynablock_t* db, uintptr_t addr, uintptr_t size); +void FreeInvalidDynablock(dynablock_t* db, int need_lock); +dynablock_t* InvalidDynablock(dynablock_t* db, int need_lock); dynablock_t* FindDynablockFromNativeAddress(void* addr); // defined in box64context.h -- cgit 1.4.1