Add/move code into kutil library
This commit is contained in:
29
src/kernel/assert.cpp
Normal file
29
src/kernel/assert.cpp
Normal file
@@ -0,0 +1,29 @@
|
||||
#include "assert.h"
|
||||
#include "console.h"
|
||||
|
||||
[[noreturn]] void
|
||||
__kernel_assert(const char *file, unsigned line, const char *message)
|
||||
{
|
||||
console *cons = console::get();
|
||||
if (cons) {
|
||||
cons->set_color(9 , 0);
|
||||
cons->puts("\n\n ERROR: ");
|
||||
cons->puts(file);
|
||||
cons->puts(":");
|
||||
cons->put_dec(line);
|
||||
cons->puts(": ");
|
||||
cons->puts(message);
|
||||
}
|
||||
|
||||
__asm__ __volatile__(
|
||||
"movq %0, %%r8;"
|
||||
"movq %1, %%r9;"
|
||||
"movq %2, %%r10;"
|
||||
"movq $0, %%rdx;"
|
||||
"divq %%rdx;"
|
||||
: // no outputs
|
||||
: "r"((uint64_t)line), "r"(file), "r"(message)
|
||||
: "rax", "rdx", "r8", "r9", "r10");
|
||||
|
||||
while (1);
|
||||
}
|
||||
Reference in New Issue
Block a user