From 07fc5e2881f8e4c368866ba438d1a09d82760cbf Mon Sep 17 00:00:00 2001 From: Stefan Lankes Date: Sat, 14 May 2016 22:15:44 +0200 Subject: [PATCH] disable syscall interface, HermitCore is a libOS... --- hermit/arch/x86/kernel/entry.asm | 3 +++ hermit/arch/x86/kernel/processor.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/hermit/arch/x86/kernel/entry.asm b/hermit/arch/x86/kernel/entry.asm index aa19e351c..57cb2f4c2 100644 --- a/hermit/arch/x86/kernel/entry.asm +++ b/hermit/arch/x86/kernel/entry.asm @@ -384,6 +384,8 @@ extern finish_task_switch extern syscall_handler extern kernel_stack +; libos => no syscall interface required +%if 0 global isrsyscall align 16 ; used to realize system calls @@ -457,6 +459,7 @@ isrsyscall: ; EFLAGS (and IF flag) will be restored by sysret ; sti o64 sysret +%endif global switch_context align 16 diff --git a/hermit/arch/x86/kernel/processor.c b/hermit/arch/x86/kernel/processor.c index 34b14348b..d669a10b7 100644 --- a/hermit/arch/x86/kernel/processor.c +++ b/hermit/arch/x86/kernel/processor.c @@ -438,6 +438,8 @@ int cpu_detection(void) { kprintf("Set XCR0 to 0x%llx\n", xgetbv(0)); } + // libos => currently no support of syscalls +#if 0 if (cpu_info.feature3 & CPU_FEATURE_SYSCALL) { wrmsr(MSR_EFER, rdmsr(MSR_EFER) | EFER_LMA | EFER_LME | EFER_SCE); wrmsr(MSR_STAR, (0x1BULL << 48) | (0x08ULL << 32)); @@ -445,6 +447,7 @@ int cpu_detection(void) { // clear IF flag during an interrupt wrmsr(MSR_SYSCALL_MASK, EFLAGS_TF|EFLAGS_DF|EFLAGS_IF|EFLAGS_AC|EFLAGS_NT); } else kputs("Processor doesn't support syscalls\n"); +#endif if (has_nx()) wrmsr(MSR_EFER, rdmsr(MSR_EFER) | EFER_NXE);