31 lines
560 B
C
31 lines
560 B
C
//
|
|
// Created by rick on 02-02-21.
|
|
//
|
|
|
|
#include <stdbool.h>
|
|
#include <libk/kprint.h>
|
|
#include <attributes.h>
|
|
#include <libk/libk.h>
|
|
|
|
bool k_addr_in_kspace(void* addr) {
|
|
return addr > kernel_start && addr < kernel_end;
|
|
}
|
|
|
|
void k_wait_for_interrupt() {
|
|
__asm__ __volatile__("hlt;");
|
|
}
|
|
|
|
void noreturn k_panics(const char *msg) {
|
|
// todo this is not printed
|
|
kprint_sync(msg);
|
|
k_panic();
|
|
}
|
|
|
|
void noreturn k_panic() {
|
|
kprint_sync("PANIC!");
|
|
while (true) {
|
|
__asm__ __volatile__("cli;"
|
|
"hlt;");
|
|
}
|
|
}
|