diff --git a/include/kernel/alloc.h b/include/kernel/alloc.h
new file mode 100644
index 0000000..81ce15b
--- /dev/null
+++ b/include/kernel/alloc.h
@@ -0,0 +1,16 @@
+#pragma once
+
+#include "kint.h"
+
+void *_kmalloc(size_t size, bool align, void **phys);
+void *kmalloc(size_t size);
+void *kmalloc_a(size_t size);
+void *kmalloc_ap(size_t size, void **p);
+
+void *malloc(size_t size);
+void free(void *mem);
+void *realloc(void *mem, size_t size);
+
+void init_allocator();
+
+void test_allocator();
diff --git a/include/kernel/dri/ide/ide.h b/include/kernel/dri/ide/ide.h
new file mode 100644
index 0000000..0283999
--- /dev/null
+++ b/include/kernel/dri/ide/ide.h
@@ -0,0 +1,5 @@
+#pragma once
+
+#include <dri/pci/pci.h>
+
+void ide_register();
diff --git a/include/kernel/dri/pci/pci.h b/include/kernel/dri/pci/pci.h
index 5791674..b4c21f1 100644
--- a/include/kernel/dri/pci/pci.h
+++ b/include/kernel/dri/pci/pci.h
@@ -17,7 +17,23 @@
 	bool valid;
 };
 
+struct pci_device_driver
+{
+	bool (* supports)(struct pci_device *dev);
+	void (* init)(struct pci_device dev, uchar bus, uchar slot, uchar func);
+	char *generic_name;
+	uint loaded; // reserved
+	struct pci_device dev; // reserved
+};
+
+// Call this first
+void pci_init();
+// Call this after registering drivers to load them
+void pci_load();
+
 // offset is in dwords
 uint pci_config_readd(uchar bus, uchar slot, uchar func, uchar offset);
 struct pci_device pci_check_device(uchar bus, uchar slot, uchar func);
 void pci_print_devices();
+void pci_register_device_driver(struct pci_device_driver driver);
+void pci_print_drivers();
diff --git a/include/kernel/task.h b/include/kernel/task.h
new file mode 100644
index 0000000..487c143
--- /dev/null
+++ b/include/kernel/task.h
@@ -0,0 +1,55 @@
+#pragma once
+
+#include "kint.h"
+#include "registers.h"
+
+#define INIT_TASKS_INTERRUPT 0x81
+
+extern bool tasks_initialized;
+
+struct process
+{
+	bool exists;
+	int id; // kernel uses pid 0, which cannot exit
+	int ring;
+	int uid;
+	char name[32];
+	uint page_directory_p;
+	// most recent (bottom) stack used by a task, next
+	// stack should be under this one.
+	// NOTE: must be PAGE ALIGNED
+	uint last_stack_pos;
+};
+
+struct task
+{
+	int id;
+	struct process *proc;
+	uint stack_top_p; // stack frame PHYSICAL address
+	uint esp, ebp, eip;
+};
+
+struct ll_task_i
+{
+	struct ll_task_i *next, *prev;
+	struct task task;
+};
+
+// extern struct process processes[1024];
+// extern struct ll_task_i *first_task, *current_task;
+
+// Note: interrupts must be enabled BEFORE this for it to work.
+void init_tasks();
+struct process *get_process(uint pid);
+
+int get_process_id();
+int get_task_id();
+
+// For compatibility I guess
+#define getpid get_process_id
+
+void spawn_thread(void (*function)(void *), void *data);
+void kill_this_thread();
+extern void switch_task();
+void switch_to_task(struct task *task);
+void _sys_init_tasks_h(struct registers *regs);
