GitOS
Loading...
Searching...
No Matches
kernel.h
Go to the documentation of this file.
1#pragma once
2#include <stdarg.h>
3#include "common/io.h"
4
5#define DEBUG_MODE
6
7#define BochsBreak() \
8 outw(0x8A00, 0x8A00); \
9 outw(0x8A00, 0x08AE0);
10
11#ifdef __cplusplus
12extern "C"
13{
14#endif
15
16 void kernel_main(uint32_t magic, void* info_ptr);
17 void kernel_halt();
18 void kernel_panic(const char* fmt, ...);
19 void kernel_page();
20 extern void kernel_registers();
21 void kprintf(const char* fmt, ...);
22
23 extern const uint32_t kernel_start;
24 extern const uint32_t kernel_end;
25
26#ifdef __cplusplus
27}
28#endif
29
30#ifdef DEBUG_MODE
31#define kdebug(fmt, ...) \
32 kprintf("%s:%d: ", __FILE__, __LINE__); \
33 kprintf(fmt, __VA_ARGS__); \
34 kprintf("\n");
35#else
36#define kdebug(fmt, ...)
37#endif
uint32_t magic
Definition Multiboot.hpp:0
void kprintf(const char *fmt,...)
Prints to kernel debug channels. Max length of processed message is 1024 characters.
Definition kernel.cpp:365
const uint32_t kernel_start
void kernel_main(uint32_t magic, void *info_ptr)
Kernel C entry point.
Definition kernel.cpp:188
void kernel_panic(const char *fmt,...)
(Temporary) Prints kernel_message and halts the kernel.
Definition kernel.cpp:337
void kernel_halt()
Definition kernel.cpp:353
void kernel_page()
Definition kernel.cpp:178
void kernel_registers()
const uint32_t kernel_end