Beginnings of vfs_initrd driver
diff --git a/src/kernel/Makefile b/src/kernel/Makefile
index 0a95915..9029f26 100644
--- a/src/kernel/Makefile
+++ b/src/kernel/Makefile
@@ -15,7 +15,8 @@
 			kheap.o \
 			alloc.o \
 			vfs.o \
-			multiboot.o
+			multiboot.o \
+			vfs_initrd.o
 
 JAYROOT = ../../
 CFLAGS = -nostdlib -nostdinc -fno-builtin -fno-stack-protector -ffreestanding \
diff --git a/src/kernel/alloc.c b/src/kernel/alloc.c
index c6e092c..0268928 100644
--- a/src/kernel/alloc.c
+++ b/src/kernel/alloc.c
@@ -269,3 +269,27 @@
 		return new;
 	}
 }
+
+void test_allocator()
+{
+	int *one = malloc(sizeof(int));
+	int *two = malloc(sizeof(int));
+
+	*one = 1;
+	*two = 2;
+
+	int *array = malloc(sizeof(int[12]));
+
+	for (int i = 0; i < 12; i++)
+		array[i] = i;
+
+	kprintf("Allocated one, two, array[3] = %d, %d, %d\n", *one, *two,
+			array[3]);
+	kprintf("[%x, %x, %x]\n", one, two, array);
+
+	kprintf("Freeing two\n");
+	free(two);
+	int *four = malloc(sizeof(int));
+	*four = 4;
+	kprintf("Allocated four = %d (%x)\n", *four, four);
+}
diff --git a/src/kernel/alloc.h b/src/kernel/alloc.h
index 7312ae2..81ce15b 100644
--- a/src/kernel/alloc.h
+++ b/src/kernel/alloc.h
@@ -12,3 +12,5 @@
 void *realloc(void *mem, size_t size);
 
 void init_allocator();
+
+void test_allocator();
diff --git a/src/kernel/main.c b/src/kernel/main.c
index 5c04768..4e5b4ae 100644
--- a/src/kernel/main.c
+++ b/src/kernel/main.c
@@ -11,55 +11,29 @@
 {
 	init_paging();
 	init_vga();
-
-	vga_clear();
-	vga_set_color(LIGHT_BLUE, BLACK);
-	vga_write("Hello!\nWelcome to Bluejay OS\n");
-	vga_set_color(WHITE, BLACK);
-
 	init_descriptor_tables();
-
-	vga_set_color(LIGHT_GREEN, BLACK);
-	vga_write("Setup complete!\n");
-	vga_set_color(WHITE, BLACK);
+	vga_clear();
 
 	init_timer(20);
 	init_allocator();
 	init_kbd();
 
-	// Test allocator
+	vga_set_color(LIGHT_GREEN, BLACK);
+	vga_write("Setup complete!\n");
+	vga_set_color(WHITE, BLACK);
 
-	int *one = malloc(sizeof(int));
-	int *two = malloc(sizeof(int));
-
-	*one = 1;
-	*two = 2;
-
-	int *array = malloc(sizeof(int[12]));
-
-	for (int i = 0; i < 12; i++)
-		array[i] = i;
-
-	kprintf("Allocated one, two, array[3] = %d, %d, %d\n", *one, *two,
-			array[3]);
-	kprintf("[%x, %x, %x]\n", one, two, array);
-
-	kprintf("Freeing two\n");
-	free(two);
-	int *four = malloc(sizeof(int));
-	*four = 4;
-	kprintf("Allocated four = %d (%x)\n", *four, four);
+#ifdef TEST_ALLOC
+	test_allocator();
+#endif
 
 	// Load initrd
 	struct multiboot mb = make_multiboot_physical(mboot);
 
 	kassert(mb.mods_count, "No multiboot modules loaded!");
 	kprintf("mboot->mods_addr = %d (0x%x)\n", mb.mods_addr, mb.mods_addr);
-	uint *initrd_loc = mb.mods_addr[0],
-		*initrd_end = mboot->mods_addr[1];
+	uchar *initrd_loc = mb.mods_addr[0];
 
-	kprintf("initrd is at 0x%x to 0x%x\n", initrd_loc, initrd_end);
-
+	kprintf("initrd is at 0x%x to 0x%x\n", initrd_loc);
 
 	asm volatile("sti");
 
diff --git a/src/kernel/multiboot.c b/src/kernel/multiboot.c
index 13e1f98..63f6ed1 100644
--- a/src/kernel/multiboot.c
+++ b/src/kernel/multiboot.c
@@ -18,7 +18,7 @@
 	kassert((size_t)mb.mods_addr > 0xc0000000, "mb.mods_addr PHYSICAL");
 	for (int i = 0; i < mb.mods_count + 1; i++)
 	{
-		TO_VIRT(mb.mods_addr[i], uint *);
+		TO_VIRT(mb.mods_addr[i], uchar *);
 	}
 
 	return mb;
diff --git a/src/kernel/multiboot.h b/src/kernel/multiboot.h
index 3aaa0d0..059f281 100644
--- a/src/kernel/multiboot.h
+++ b/src/kernel/multiboot.h
@@ -10,7 +10,7 @@
 	uint boot_device;
 	char *cmdline;
 	uint mods_count;
-	uint **mods_addr;
+	uchar **mods_addr;
 	uint num;
 	uint size;
 	uint addr;
diff --git a/src/kernel/timer.c b/src/kernel/timer.c
index 145f8f8..d17025c 100644
--- a/src/kernel/timer.c
+++ b/src/kernel/timer.c
@@ -17,8 +17,6 @@
 
 	uint divisor = TIMER_FREQ / hz;
 
-	kprintf("Divisor is %d\n", divisor);
-
 	outb(0x43, 0x36);
 	io_wait();
 	uchar l = divisor & 0xff, h = (divisor >> 8) & 0xff;
@@ -27,6 +25,4 @@
 	io_wait();
 	outb(0x40, h);
 	io_wait();
-
-	kprintf("Initialized timer\n");
 }
diff --git a/src/kernel/vfs.c b/src/kernel/vfs.c
index 59ccaf5..4a584eb 100644
--- a/src/kernel/vfs.c
+++ b/src/kernel/vfs.c
@@ -1,5 +1,7 @@
 #include "vfs.h"
 
+struct fs_node root, dev, initrd;
+
 uint fs_read(struct fs_node *node, size_t offset, size_t size, uchar *buffer)
 {
 	if (!node || !node->vtable || !node->vtable->read)
@@ -47,3 +49,12 @@
 
 	return node->vtable->finddir(node, name);
 }
+
+struct fs_dirent *root_readdir(struct fs_node *node, uint index)
+{
+
+}
+
+void init_vfs()
+{
+}
diff --git a/src/kernel/vfs.h b/src/kernel/vfs.h
index 1c62a80..3bd135e 100644
--- a/src/kernel/vfs.h
+++ b/src/kernel/vfs.h
@@ -31,6 +31,7 @@
 typedef void (* fs_open_t)(struct fs_node *node);
 typedef void (* fs_close_t)(struct fs_node *node);
 
+// Dirent should be FREED BY CALLER
 typedef struct fs_dirent *(* fs_readdir_t)(struct fs_node *node, uint index);
 typedef struct fs_node *(* fs_finddir_t)(struct fs_node *node, char *name);
 
@@ -66,3 +67,5 @@
 
 struct fs_dirent *fs_readdir(struct fs_node *node, uint index);
 struct fs_node *fs_finddir(struct fs_node *node, char *name);
+
+void init_vfs();
diff --git a/src/kernel/vfs_initrd.c b/src/kernel/vfs_initrd.c
new file mode 100644
index 0000000..9298a2d
--- /dev/null
+++ b/src/kernel/vfs_initrd.c
@@ -0,0 +1,4 @@
+#include <initrd/initrd.h>
+#include "kint.h"
+
+
diff --git a/src/kernel/vfs_initrd.h b/src/kernel/vfs_initrd.h
new file mode 100644
index 0000000..6f70f09
--- /dev/null
+++ b/src/kernel/vfs_initrd.h
@@ -0,0 +1 @@
+#pragma once