Add pci_device_drivers, IDE driver
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();