feat: kernel stack tracing
[lunaix-os.git] / lunaix-os / kernel / exe / exec.c
index 21814d16c042ffb50e96fbe8d7ebb89cee846a80..df47bb75a11ffde0e7646e718c3d3a5aed6147c7 100644 (file)
@@ -1,4 +1,3 @@
-#include <arch/abi.h>
 #include <lunaix/exec.h>
 #include <lunaix/fs.h>
 #include <lunaix/load.h>
@@ -11,6 +10,8 @@
 #include <lunaix/syscall.h>
 #include <lunaix/syscall_utils.h>
 
+#include <sys/abi.h>
+
 #include <klibc/string.h>
 
 void
@@ -220,9 +221,8 @@ __DEFINE_LXSYSCALL3(int,
 
     // we will jump to new entry point (_u_start) upon syscall's
     // return so execve 'will not return' from the perspective of it's invoker
-    volatile struct exec_param* execp = __current->intr_ctx->execp;
-    execp->esp = container.stack_top;
-    execp->eip = container.exe.entry;
+    eret_target(__current) = container.exe.entry;
+    eret_stack(__current) = container.stack_top;
 
     // these become meaningless once execved!
     __current->ustack_top = 0;