hos/kernel/sys/cpu.h
josh bc7064e92a got interrupts working, added sys/{pic,timer,cpu} modules, ready to work on multitasking
git-svn-id: svn://anubis/hos/trunk@69 5b3e749e-e535-0410-8002-a9bb6afbdfca
2009-07-29 22:30:52 +00:00

35 lines
581 B
C

#ifndef CPU_H
#define CPU_H
#include "hos_types.h"
static u32_t read_cr0()
{
u32_t val;
__asm__ __volatile__ ("movl %%cr0, %0" : "=r" (val));
return val;
}
static u32_t read_cr2()
{
u32_t val;
__asm__ __volatile__ ("movl %%cr2, %0" : "=r" (val));
return val;
}
static u32_t read_cr3()
{
u32_t val;
__asm__ __volatile__ ("movl %%cr3, %0" : "=r" (val));
return val;
}
#define set_cr0(val) \
__asm__ __volatile__ ("movl %0, %%cr0" : : "r" (val));
#define set_cr3(val) \
__asm__ __volatile__ ("movl %0, %%cr3" : : "r" (val));
#endif