summaryrefslogtreecommitdiff
path: root/src/kmain.c
blob: 6424b95fa9f67e0424a0ade9c8235069b60941ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include "acpi.h"
#include <memory.h>
#include <lib.h>
#include <serial.h>
#include <fb.h>
#include <shim.h>

void print_memory() {
	size_t WIDTH = 64;

	for(size_t i = 0;; i += WIDTH) {
		char buf[20];
		ultoa(i, buf, 16);
		serial_out_str("0x");
		for(size_t k = 0; k < 6 - strlen(buf); k++) {
			serial_out('0');
		}
		serial_out_str(buf);
		serial_out_str(": ");
		for(size_t j = 0; j < WIDTH; j++) {
			char x = *(char *)(i + j);
			if(x < 0x20 || x >= 0x7f) {
				serial_out('.');
			} else {
				serial_out(x);
			}
		}
		serial_out('\n');
	}
}

void kmain(struct boot_info *info) {
	memory_init(info->map);
	//acpi_init(info->acpi_table);
	//fb_init(1024, 768);

	serial_out_str("entered kmain\n");
	*(char*)(0xB8000 + 0x144) = 'h';
	*(char*)(0xB8000 + 0x146) = 'i';

	while (1) {
		// loop so we dont halt
		// this allows interrupts to fire
	}
}