diff --git a/src/kernel/kmain.c b/src/kernel/kmain.c index e64b0bb..ebcaba4 100644 --- a/src/kernel/kmain.c +++ b/src/kernel/kmain.c @@ -78,14 +78,14 @@ void kmain(multiboot2_info *mb_info) if (mmap->addr != 0) { - + /* serial_printf(3, "base addr=0x%x%x, length=0x%x%x, type=%u", (uint32_t) (mmap->addr >> 32), (uint32_t) (mmap->addr & 0xFFFFFFFF), (uint32_t) (mmap->len >> 32), (uint32_t) (mmap->len & 0xFFFFFFFF), mmap->type); - + */ } mmap = (struct multiboot_mmap_entry*) ((uint8_t*)mmap + mmap_tag->entry_size); @@ -128,6 +128,9 @@ void kmain(multiboot2_info *mb_info) printf("LOADED!\n"); } + void (*program_entry)() = (void (*)())binary_file; + program_entry(); + timer_install(); keyboard_install(); printf("[kernel] spawning shell...\n"); diff --git a/src/programs/hello.c b/src/programs/hello.c index 8cffe15..f4c73e9 100644 --- a/src/programs/hello.c +++ b/src/programs/hello.c @@ -1,6 +1,8 @@ #include "../libc/stdio.h" +#include "../drivers/serial.h" void main() { - printf("Hello, world, from a PROGRAM!\n"); + serial_printf(3, "Hello, world, from a PROGRAM!\n"); + return; }