diff options
| author | Michal Idziorek <m.i@gmx.at> | 2014-08-29 19:56:40 +0200 |
|---|---|---|
| committer | Michal Idziorek <m.i@gmx.at> | 2014-08-29 19:56:40 +0200 |
| commit | 47d22a238a6c5d60c6abfac724e6ad91885cdd67 (patch) | |
| tree | bd3893777b58aac7c94d68fe2a4ba57cfbdb38ec /kernel/x86.c | |
| parent | 659f1f1ae057c82a154a1fd32cc9dca040979daa (diff) | |
added paging support
Diffstat (limited to 'kernel/x86.c')
| -rw-r--r-- | kernel/x86.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/kernel/x86.c b/kernel/x86.c index ee38599..cc7c303 100644 --- a/kernel/x86.c +++ b/kernel/x86.c @@ -36,3 +36,17 @@ uint32_t x86_inl(int port) return data; } + +void x86_set_pdbr(uint32_t addr) +{ + asm volatile("mov %0, %%cr3":: "b"(addr)); + +} + +void x86_paging_enable() +{ + unsigned int cr0; + asm volatile("mov %%cr0, %0": "=b"(cr0)); + cr0 |= 0x80000000; + asm volatile("mov %0, %%cr0":: "b"(cr0)); +} |
