#include <object.h>
#include <machine.h>
#include <arch/model/statedata.h>
#include <arch/kernel/vspace.h>
#include <arch/kernel/thread.h>
#include <arch/linker.h>
void
Arch_switchToThread(tcb_t* tcb)
{
setVMRoot(tcb);
}
BOOT_CODE void
Arch_configureIdleThread(tcb_t* tcb)
{
setRegister(tcb, FLAGS, FLAGS_USER_DEFAULT);
setRegister(tcb, NextIP, (word_t)idleThreadStart);
setRegister(tcb, CS, SEL_CS_0);
setRegister(tcb, DS, SEL_DS_0);
setRegister(tcb, ES, SEL_DS_0);
setRegister(tcb, FS, SEL_DS_0);
setRegister(tcb, GS, SEL_DS_0);
setRegister(tcb, SS, SEL_DS_0);
}
void
Arch_switchToIdleThread(void)
{
setVMRoot(NODE_STATE(ksIdleThread));
}
void
Arch_activateIdleThread(tcb_t* tcb)
{
}