diff options
author | Marvin Borner | 2021-03-12 17:27:01 +0100 |
---|---|---|
committer | Marvin Borner | 2021-03-12 17:27:01 +0100 |
commit | 0aef683b9d1e08555791426ba12223ed78051353 (patch) | |
tree | 324cbc61b7fb38f648a82041656f5fea48e53856 /libc | |
parent | f1751c121d48f2d8936c72bdc347777d1e7402d9 (diff) |
Boots successfully...
Diffstat (limited to 'libc')
-rw-r--r-- | libc/cpu.c | 7 | ||||
-rw-r--r-- | libc/inc/cpu.h | 1 | ||||
-rw-r--r-- | libc/print.c | 1 |
3 files changed, 9 insertions, 0 deletions
@@ -82,6 +82,13 @@ void cr0_set(u32 cr0) __asm__ volatile("movl %%eax, %%cr0" ::"a"(cr0)); } +u32 cr3_get(void) +{ + u32 cr3; + __asm__ volatile("movl %%cr0, %%eax" : "=a"(cr3)); + return cr3; +} + void cr3_set(u32 cr3) { __asm__ volatile("movl %%eax, %%cr3" ::"a"(cr3)); diff --git a/libc/inc/cpu.h b/libc/inc/cpu.h index 161b7a4..d709d86 100644 --- a/libc/inc/cpu.h +++ b/libc/inc/cpu.h @@ -29,6 +29,7 @@ void fpu_restore(void); u32 cr0_get(void); void cr0_set(u32 cr0); +u32 cr3_get(void); void cr3_set(u32 cr3); u32 cr4_get(void); void cr4_set(u32 cr4); diff --git a/libc/print.c b/libc/print.c index 173e117..1c577e5 100644 --- a/libc/print.c +++ b/libc/print.c @@ -238,6 +238,7 @@ NORETURN void panic(const char *format, ...) vsprintf(buf, format, ap); va_end(ap); #ifdef kernel + print("--- DON'T PANIC! ---\n"); print(buf); loop(); #else |