about summary refs log tree commit diff stats
path: root/src/tools/env.c
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2025-06-15 16:20:26 +0200
committerptitSeb <sebastien.chev@gmail.com>2025-06-15 16:20:26 +0200
commit01e997a4da3caf666569ad1260706fb48081da89 (patch)
tree43fb7d77734ca5392d939e6cbc409887c8b7584f /src/tools/env.c
parent51db3f1f9a6a1a79578fc6599e2d658a5ed89278 (diff)
downloadbox64-01e997a4da3caf666569ad1260706fb48081da89.tar.gz
box64-01e997a4da3caf666569ad1260706fb48081da89.zip
[DYNACACHE] More work on dynache relocation
Diffstat (limited to 'src/tools/env.c')
-rw-r--r--src/tools/env.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/tools/env.c b/src/tools/env.c
index cd4adb70..b279a988 100644
--- a/src/tools/env.c
+++ b/src/tools/env.c
@@ -807,3 +807,21 @@ size_t SizeFileMapped(uintptr_t addr)
     }
     return 0;
 }
+
+int IsAddrNeedReloc(uintptr_t addr)
+{
+    box64env_t* env = GetCurEnvByAddr(addr);
+    if(env->nodynarec)
+        return 0;
+    if(!env->dynacache)
+        return 0;
+    if(env->nodynarec_end && addr>=env->nodynarec_start && addr<env->nodynarec_end)
+        return 0;
+    #ifdef HAVE_TRACE
+    if(env->dynarec_test_end && addr>=env->dynarec_test_start && addr<env->dynarec_test_end)
+        return 0;
+    if(env->dynarec_trace && trace_end && addr>=trace_start && addr<trace_end)
+        return 0;
+    #endif
+    return 1;
+}
\ No newline at end of file