summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/shim.h1
-rw-r--r--src/arch/amd64/mboot.c3
-rw-r--r--src/kmain.c12
3 files changed, 5 insertions, 11 deletions
diff --git a/include/shim.h b/include/shim.h
index f3835ba..9f80abc 100644
--- a/include/shim.h
+++ b/include/shim.h
@@ -6,6 +6,7 @@
struct boot_info {
struct memory_map *map;
+ void *symbol_table;
void *acpi_table;
char cmdline[CMDLINE_MAX];
};
diff --git a/src/arch/amd64/mboot.c b/src/arch/amd64/mboot.c
index 68c9383..89fb431 100644
--- a/src/arch/amd64/mboot.c
+++ b/src/arch/amd64/mboot.c
@@ -1,5 +1,4 @@
#include "mboot.h"
-#include "serial.h"
#include "shim.h"
#include <lib.h>
@@ -42,7 +41,7 @@ static uint32_t *read_tag(uint32_t *data, struct boot_info *shim_info) {
read_memorymap(shim_info, size, data + 2);
break;
case MBOOT_SYMBOLS:
- // TODO:
+ shim_info->symbol_table = (void *) (data + 2);
break;
case MBOOT_XSDP:
read_xsdp(shim_info, (char *) (data + 2));
diff --git a/src/kmain.c b/src/kmain.c
index a1a7e7c..6424b95 100644
--- a/src/kmain.c
+++ b/src/kmain.c
@@ -31,19 +31,13 @@ void print_memory() {
void kmain(struct boot_info *info) {
memory_init(info->map);
-
- int i = acpi_init(info->acpi_table);
- char buf[20];
- ltoa(i, buf, 10);
- serial_out_str("acpi: ");
- serial_out_str(buf);
- serial_out_str("\n");
+ //acpi_init(info->acpi_table);
+ //fb_init(1024, 768);
serial_out_str("entered kmain\n");
*(char*)(0xB8000 + 0x144) = 'h';
*(char*)(0xB8000 + 0x146) = 'i';
- //fb_init(1024, 768);
- acpi_shutdown();
+
while (1) {
// loop so we dont halt
// this allows interrupts to fire