about summary refs log tree commit diff stats
path: root/src/libtools
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2023-05-08 15:20:52 +0200
committerptitSeb <sebastien.chev@gmail.com>2023-05-08 15:20:52 +0200
commit7db5b33284eb1611ec1ae15b030ef146f6b46c1c (patch)
tree66f5359a63d7dcd991d04c835f6c7c54ad85d00a /src/libtools
parent6607ddb15daeec7f54504a907e5db5013d3da618 (diff)
downloadbox64-7db5b33284eb1611ec1ae15b030ef146f6b46c1c.tar.gz
box64-7db5b33284eb1611ec1ae15b030ef146f6b46c1c.zip
Some small changes to thread and fork and cloning x64emu_t struct
Diffstat (limited to 'src/libtools')
-rwxr-xr-xsrc/libtools/signals.c4
-rwxr-xr-xsrc/libtools/threads.c6
2 files changed, 5 insertions, 5 deletions
diff --git a/src/libtools/signals.c b/src/libtools/signals.c
index e9ed2eec..1ea5489a 100755
--- a/src/libtools/signals.c
+++ b/src/libtools/signals.c
@@ -753,9 +753,9 @@ void my_sigactionhandler_oldcode(int32_t sig, int simple, siginfo_t* info, void
     if(sig!=SIGSEGV && !(Locks&is_dyndump_locked))
         dynarec = 1;
     #endif
-    if (simple)
+    /*if (simple)
         ret = RunFunctionHandler(&exits, dynarec, sigcontext, my_context->signals[sig], 1, sig);
-    else
+    else*/
         ret = RunFunctionHandler(&exits, dynarec, sigcontext, my_context->signals[sig], 3, sig, info2, sigcontext);
     // restore old value from emu
     if(used_stack)  // release stack
diff --git a/src/libtools/threads.c b/src/libtools/threads.c
index ebf3d669..707d3833 100755
--- a/src/libtools/threads.c
+++ b/src/libtools/threads.c
@@ -215,7 +215,7 @@ x64emu_t* thread_get_emu()
 		}
 		void* stack = my_mmap(NULL, NULL, stacksize, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_GROWSDOWN, -1, 0);
 		x64emu_t *emu = NewX64Emu(my_context, 0, (uintptr_t)stack, stacksize, 1);
-		SetupX64Emu(emu);
+		SetupX64Emu(emu, NULL);
 		thread_set_emu(emu);
 		return emu;
 	}
@@ -490,7 +490,7 @@ EXPORT int my_pthread_create(x64emu_t *emu, void* t, void* attr, void* start_rou
 
 	emuthread_t *et = (emuthread_t*)box_calloc(1, sizeof(emuthread_t));
     x64emu_t *emuthread = NewX64Emu(my_context, (uintptr_t)start_routine, (uintptr_t)stack, stacksize, own);
-	SetupX64Emu(emuthread);
+	SetupX64Emu(emuthread, emu);
 	//SetFS(emuthread, GetFS(emu));
 	et->emu = emuthread;
 	et->fnc = (uintptr_t)start_routine;
@@ -512,7 +512,7 @@ void* my_prepare_thread(x64emu_t *emu, void* f, void* arg, int ssize, void** pet
 	void* stack = my_mmap(NULL, NULL, stacksize, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_GROWSDOWN, -1, 0);
 	emuthread_t *et = (emuthread_t*)box_calloc(1, sizeof(emuthread_t));
     x64emu_t *emuthread = NewX64Emu(emu->context, (uintptr_t)f, (uintptr_t)stack, stacksize, 1);
-	SetupX64Emu(emuthread);
+	SetupX64Emu(emuthread, emu					);
 	//SetFS(emuthread, GetFS(emu));
 	et->emu = emuthread;
 	et->fnc = (uintptr_t)f;