GitOS
Operating system exercise
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() outw(0x8A00,0x8A00); outw(0x8A00,0x08AE0);
8
9#ifdef __cplusplus
10extern "C" {
11#endif
12
13void kernel_main(uint32_t magic, void *info_ptr);
14void kernel_halt();
15void kernel_panic(const char* fmt, ...);
16void kernel_page();
17extern void kernel_registers();
18void kprintf(const char* fmt, ...);
19
20extern const uint32_t kernel_start;
21extern const uint32_t kernel_end;
22
23
24#ifdef __cplusplus
25}
26#endif
27
28#ifdef DEBUG_MODE
29#define kdebug(fmt, ...) kprintf("%s:%d: ", __FILE__, __LINE__); kprintf(fmt, __VA_ARGS__); kprintf("\n");
30#else
31#define kdebug(fmt, ...)
32#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:351
const uint32_t kernel_start
void kernel_main(uint32_t magic, void *info_ptr)
Kernel C entry point.
Definition kernel.cpp:185
void kernel_panic(const char *fmt,...)
(Temporary) Prints kernel_message and halts the kernel.
Definition kernel.cpp:323
void kernel_halt()
Definition kernel.cpp:339
void kernel_page()
Definition kernel.cpp:175
void kernel_registers()
const uint32_t kernel_end