diff options
Diffstat (limited to 'src/include/env.h')
| -rw-r--r-- | src/include/env.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/include/env.h b/src/include/env.h index 1c640091..6e0df8c1 100644 --- a/src/include/env.h +++ b/src/include/env.h @@ -127,6 +127,8 @@ extern char* ftrace_name; BOOLEAN(BOX64_X11THREADS, x11threads, 0, 0) \ BOOLEAN(BOX64_X87_NO80BITS, x87_no80bits, 0, 1) \ BOOLEAN(BOX64_DYNACACHE, dynacache, 0, 0) \ + STRING(BOX64_DYNACACHE_FOLDER, dynacache_folder, 0) \ + INTEGER(BOX64_DYNACACHE_MIN, dynacache_min, 350, 0, 10240, 0) \ #ifdef ARM64 #define ENVSUPER2() \ @@ -195,6 +197,15 @@ typedef struct box64env_s { } box64env_t; typedef struct mmaplist_s mmaplist_t; +#ifdef DYNAREC +typedef struct blocklist_s blocklist_t; + +typedef struct DynaCacheBlock_s { + blocklist_t* block; + size_t size; + size_t free_size; +} DynaCacheBlock_t; +#endif void InitializeEnvFiles(); void ApplyEnvFileEntry(const char* name); @@ -203,11 +214,16 @@ void InitializeEnv(); void LoadEnvVariables(); void PrintEnvVariables(box64env_t* env, int level); void RecordEnvMappings(uintptr_t addr, size_t length, int fd); +void WillRemoveMapping(uintptr_t addr, size_t length); void RemoveMapping(uintptr_t addr, size_t length); box64env_t* GetCurEnvByAddr(uintptr_t addr); int IsAddrFileMapped(uintptr_t addr, const char** filename, uintptr_t* start); size_t SizeFileMapped(uintptr_t addr); mmaplist_t* GetMmaplistByAddr(uintptr_t addr); int IsAddrNeedReloc(uintptr_t addr); +void SerializeAllMapping(); +void DynaCacheList(const char* name); +void DynaCacheClean(); +int IsAddrMappingLoadAndClean(uintptr_t addr); #endif // __ENV_H |