diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2022-10-31 12:05:04 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-10-31 12:05:04 +0100 |
| commit | 8459ea0d31a851e847318273233c9a8b2b079eae (patch) | |
| tree | 2ab39af3c19d9720d906cd060211107c5dc549a2 /src/include/dynablock.h | |
| parent | 494c245b591cef1a34cc4d4dc52163861d4e54af (diff) | |
| download | box64-8459ea0d31a851e847318273233c9a8b2b079eae.tar.gz box64-8459ea0d31a851e847318273233c9a8b2b079eae.zip | |
Remove dynablocklist (#438)
* [DYNAREC] Removed dynablock sons handling * [DYNAREC] Removed dynablocklist, and attached dynablocks to the jumptable * [DYNAREC] Changed handling of HotPage (part of Protection now) * [DYNAREC] Fixed some performance issues (especially with heavily threaded programs)
Diffstat (limited to 'src/include/dynablock.h')
| -rwxr-xr-x | src/include/dynablock.h | 19 |
1 files changed, 3 insertions, 16 deletions
diff --git a/src/include/dynablock.h b/src/include/dynablock.h index a2119643..7f28fbd7 100755 --- a/src/include/dynablock.h +++ b/src/include/dynablock.h @@ -3,35 +3,22 @@ typedef struct x64emu_s x64emu_t; typedef struct dynablock_s dynablock_t; -typedef struct dynablocklist_s dynablocklist_t; typedef struct kh_dynablocks_s kh_dynablocks_t; uint32_t X31_hash_code(void* addr, int len); -dynablocklist_t* NewDynablockList(uintptr_t text, int textsz, int direct); -void FreeDynablockList(dynablocklist_t** dynablocks); void FreeDynablock(dynablock_t* db, int need_lock); void MarkDynablock(dynablock_t* db); -//return 1 if Dynareblock is empty -int FreeRangeDynablock(dynablocklist_t* dynablocks, uintptr_t addr, uintptr_t size); -void MarkRangeDynablock(dynablocklist_t* dynablocks, uintptr_t addr, uintptr_t size); +void MarkRangeDynablock(dynablock_t* db, uintptr_t addr, uintptr_t size); +int FreeRangeDynablock(dynablock_t* db, uintptr_t addr, uintptr_t size); dynablock_t* FindDynablockFromNativeAddress(void* addr); // defined in box64context.h dynablock_t* FindDynablockDynablocklist(void* addr, kh_dynablocks_t* dynablocks); -uintptr_t StartDynablockList(dynablocklist_t* db); -uintptr_t EndDynablockList(dynablocklist_t* db); -void MarkDirectDynablock(dynablocklist_t* dynablocks, uintptr_t addr, uintptr_t size); - // Handling of Dynarec block (i.e. an exectable chunk of x64 translated code) -dynablock_t* DBGetBlock(x64emu_t* emu, uintptr_t addr, int create, dynablock_t** current); // return NULL if block is not found / cannot be created. Don't create if create==0 +dynablock_t* DBGetBlock(x64emu_t* emu, uintptr_t addr, int create); // return NULL if block is not found / cannot be created. Don't create if create==0 dynablock_t* DBAlternateBlock(x64emu_t* emu, uintptr_t addr, uintptr_t filladdr); -// Create and Add an new dynablock in the list, handling direct/map -dynablock_t *AddNewDynablock(dynablocklist_t* dynablocks, uintptr_t addr, int* created); - // for use in signal handler void cancelFillBlock(); -int IsInHotPage(uintptr_t addr); -void AddHotPage(uintptr_t addr); #endif //__DYNABLOCK_H_ \ No newline at end of file |