genode/repos/base-hw/src/core/spec/x86_64/tss.cc

21 lines
316 B
C++

#include "tss.h"
using namespace Genode;
extern char kernel_stack[];
__attribute__((aligned(8))) Tss Tss::_tss;
void Tss::setup()
{
_tss.rsp0 = (addr_t)kernel_stack;
_tss.rsp1 = (addr_t)kernel_stack;
_tss.rsp2 = (addr_t)kernel_stack;
}
void Tss::load()
{
asm volatile ("ltr %w0" : : "r" (TSS_SELECTOR));
}