/**
* Entry point of the kernel's main function. This function gets called by the
* assembler bootstrap code
*/
#include "types.h"
#include "multiboot.h"
#include "monitor.h"
#include "hw_utils.h"
uint32_t kernel_main(multiboot_t *multiboot_ptr) {
screen_t hello_world_screen;
hello_world_screen.cursor_x = 0;
hello_world_screen.cursor_y = 0;
hello_world_screen.background_color = 0;
hello_world_screen.foreground_color = 15;
monitor_switch_screen(&hello_world_screen);
monitor_clear(&hello_world_screen);
monitor_write(&hello_world_screen, "Hello World!\n");
__asm__ __volatile__("xchg %bx, %bx");
return 0xdeadc0de;
}
LyoqCiAqIEVudHJ5IHBvaW50IG9mIHRoZSBrZXJuZWwncyBtYWluIGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uIGdldHMgY2FsbGVkIGJ5IHRoZQogKiBhc3NlbWJsZXIgYm9vdHN0cmFwIGNvZGUKICovCgojaW5jbHVkZSAidHlwZXMuaCIKI2luY2x1ZGUgIm11bHRpYm9vdC5oIgoKI2luY2x1ZGUgIm1vbml0b3IuaCIKI2luY2x1ZGUgImh3X3V0aWxzLmgiCgp1aW50MzJfdCBrZXJuZWxfbWFpbihtdWx0aWJvb3RfdCAqbXVsdGlib290X3B0cikgewoJc2NyZWVuX3QgaGVsbG9fd29ybGRfc2NyZWVuOwoJaGVsbG9fd29ybGRfc2NyZWVuLmN1cnNvcl94ID0gMDsKCWhlbGxvX3dvcmxkX3NjcmVlbi5jdXJzb3JfeSA9IDA7CgloZWxsb193b3JsZF9zY3JlZW4uYmFja2dyb3VuZF9jb2xvciA9IDA7CgloZWxsb193b3JsZF9zY3JlZW4uZm9yZWdyb3VuZF9jb2xvciA9IDE1OwoKCW1vbml0b3Jfc3dpdGNoX3NjcmVlbigmaGVsbG9fd29ybGRfc2NyZWVuKTsKCW1vbml0b3JfY2xlYXIoJmhlbGxvX3dvcmxkX3NjcmVlbik7Cgltb25pdG9yX3dyaXRlKCZoZWxsb193b3JsZF9zY3JlZW4sICJIZWxsbyBXb3JsZCFcbiIpOwoKCV9fYXNtX18gX192b2xhdGlsZV9fKCJ4Y2hnICVieCwgJWJ4Iik7CgoKCXJldHVybiAweGRlYWRjMGRlOwp9