diff options
Diffstat (limited to 'src/kernel.cc')
-rw-r--r-- | src/kernel.cc | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/kernel.cc b/src/kernel.cc new file mode 100644 index 0000000..c083364 --- /dev/null +++ b/src/kernel.cc @@ -0,0 +1,26 @@ +/* Check if the compiler thinks you are targeting the wrong operating system. */ +#if defined(__linux__) +#error "You are not using a cross-compiler" +#endif + +/* This tutorial will only work for the 32-bit ix86 targets. */ +#if !defined(__i386__) +#error "This tutorial needs to be compiled with a ix86-elf compiler" +#endif + +#include <stdlib.h> +#include <types.h> +#include "vga.h" + +extern "C" void dump_multiboot(uint32_t mb_magic, uint32_t mb_addr); + +extern "C" void kernel_main(uint32_t mb_magic, uint32_t mb_addr) { + VGA terminal; + Console::set(&terminal); + + printk("Hello, kernel World!\n"); + + dump_multiboot(mb_magic, mb_addr); + + abort(); +} |