diff --git a/repos/base-hw/src/core/include/spec/x86/cpu.h b/repos/base-hw/src/core/include/spec/x86/cpu.h index 28d5a2061..3ab736fc1 100644 --- a/repos/base-hw/src/core/include/spec/x86/cpu.h +++ b/repos/base-hw/src/core/include/spec/x86/cpu.h @@ -58,7 +58,7 @@ class Genode::Cpu _tss->load(); } _idt->load(Cpu::exception_entry); - _tss->setup(); + _tss->setup(Cpu::exception_entry); } static constexpr addr_t exception_entry = 0x0; /* XXX */ diff --git a/repos/base-hw/src/core/include/spec/x86_64/tss.h b/repos/base-hw/src/core/include/spec/x86_64/tss.h index 48818fe92..813131047 100644 --- a/repos/base-hw/src/core/include/spec/x86_64/tss.h +++ b/repos/base-hw/src/core/include/spec/x86_64/tss.h @@ -35,8 +35,10 @@ class Genode::Tss /** * Setup TSS. + * + * \param virt_base virtual base address of mode transition pages */ - void setup(); + void setup(addr_t const virt_base); /** * Load TSS into TR. diff --git a/repos/base-hw/src/core/spec/x86_64/tss.cc b/repos/base-hw/src/core/spec/x86_64/tss.cc index bba9ca145..6fed6e7a0 100644 --- a/repos/base-hw/src/core/spec/x86_64/tss.cc +++ b/repos/base-hw/src/core/spec/x86_64/tss.cc @@ -4,7 +4,7 @@ using namespace Genode; extern char kernel_stack[]; -void Tss::setup() +void Tss::setup(addr_t const virt_base) { this->rsp0 = (addr_t)kernel_stack; this->rsp1 = (addr_t)kernel_stack;