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 uint64_t kernel_get_tick();
17 void kernel_main(uint32_t magic, void* info_ptr);
18 void kernel_halt();
19 void kernel_panic(const char* fmt, ...);
20 void kernel_page();
21 extern void kernel_registers();
22 void kprintf(const char* fmt, ...);
23
24 extern const uint32_t kernel_start;
25 extern const uint32_t kernel_end;
26
27#ifdef __cplusplus
28}
29#endif
30
31#ifdef DEBUG_MODE
32#define kdebug(fmt, ...) \
33 kprintf("%s:%d: ", __FILE__, __LINE__); \
34 kprintf(fmt, __VA_ARGS__); \
35 kprintf("\n");
36#else
37#define kdebug(fmt, ...)
38#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:372
const uint32_t kernel_start
void kernel_main(uint32_t magic, void *info_ptr)
Kernel C entry point.
Definition kernel.cpp:195
uint64_t kernel_get_tick()
Definition kernel.cpp:69
void kernel_panic(const char *fmt,...)
(Temporary) Prints kernel_message and halts the kernel.
Definition kernel.cpp:344
void kernel_halt()
Definition kernel.cpp:360
void kernel_page()
Definition kernel.cpp:185
void kernel_registers()
const uint32_t kernel_end