From 3d659e0eab2cdc8dca28a15c67a1945f4da427cf Mon Sep 17 00:00:00 2001 From: Simon Date: Tue, 17 Jun 2025 02:11:57 +0200 Subject: [PATCH] gooooo --- arch/context.cc | 6 +++--- main.cc | 5 +---- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/arch/context.cc b/arch/context.cc index 636fbbc..2289c7a 100644 --- a/arch/context.cc +++ b/arch/context.cc @@ -8,10 +8,10 @@ void panic(){ void prepareContext(void* tos, Context& context, void (*kickoff)(void*), void* param1) { - ((uint64_t*)tos)[-2] = (uint64_t)panic; + ((uint64_t*)tos)[0] = (uint64_t)panic; ((uint64_t*)tos)[-1] = (uint64_t)kickoff; - ((uint64_t*)tos)[0] = (uint64_t)fake_systemv_abi; - context.rsp = tos; + ((uint64_t*)tos)[-2] = (uint64_t)fake_systemv_abi; + context.rsp = (void*)(((uint64_t) tos)-24); context.rbx = 0; context.rbp = 0; context.r12 = 0; diff --git a/main.cc b/main.cc index aa405b3..cc82be0 100644 --- a/main.cc +++ b/main.cc @@ -18,10 +18,7 @@ #include "arch/context.h" #include "thread/thread.h" -<<<<<<< HEAD -======= ->>>>>>> 4e7dad9 (fooo) ///TextStream kout = TextStream(0, 80, 0, 10, true); Ticketlock koutlock; @@ -118,7 +115,7 @@ extern "C" int main() { PS2Controller::drainBuffer(); DBG << "Main CPU " << static_cast(LAPIC::getID()) << endl << flush; - prepareContext(test1_stack, test1, (void(*)(void*)) &(Application::kickoff),(Thread*)&application); + prepareContext(&test1_stack[sizeof(test1_stack)-1], test1, (void(*)(void*)) &(Application::kickoff),(Thread*)&application); context_launch(&test1);