From 0d2ddecc9aeb232746b76b4eebdb1381053a8951 Mon Sep 17 00:00:00 2001 From: Ada Christine Date: Mon, 27 Jan 2025 02:05:07 +0000 Subject: checkpoint. we can fake syscall with the dummy gdt --- service/kjarna.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) (limited to 'service/kjarna.c') diff --git a/service/kjarna.c b/service/kjarna.c index 1240c97..ce9ec54 100644 --- a/service/kjarna.c +++ b/service/kjarna.c @@ -4,19 +4,15 @@ struct kjarna_entry_params *entry_params; extern int main(int argc, char **argv); -int kjarna_entry(struct kjarna_entry_params *params) +int kjarna_entry() { - entry_params = params; - - __asm__ ("leaq kc_image_base(%%rip), %%rax" ::: "rax"); + uint64_t image_base; + __asm__ ("leaq kc_image_base(%%rip), %0" : "=r"(image_base) :: ); bool wait = true; - while(wait) - { - __asm__ volatile("hlt"); - } + while(wait); - return main(params->argc, params->argv); + return main(0, nullptr); } -- cgit v1.3.1-1-g115d