Begin PCI refactor
diff --git a/include/kernel/dri/pci/pci.h b/include/kernel/dri/pci/pci.h
index 68cdd61..6ff500a 100644
--- a/include/kernel/dri/pci/pci.h
+++ b/include/kernel/dri/pci/pci.h
@@ -1,6 +1,7 @@
 #pragma once
 
 #include <kint.h>
+#include <dri/pci/vendors.h>
 
 enum
 {
@@ -8,24 +9,5 @@
 	PCI_CONFIG_DATA = 0xCFC,
 };
 
-struct pci_config_address
-{
-	union
-	{
-		struct
-		{
-			int enable : 1;
-			int reserved : 7;
-			int bus : 8;
-			int device : 5;
-			int function : 3;
-			// Offset into the 256 byte register. Least significant two bits must be zero.
-			int offset : 8;
-		};
-
-		uint packed;
-	};
-	
-} __attribute__((packed));
-
 ushort pci_config_readw(uchar bus, uchar slot, uchar func, uchar offset);
+struct pci_vendor *pci_check_vendor(uchar bus, uchar slot, uchar func, ushort *v);
diff --git a/include/kernel/dri/pci/vendors.h b/include/kernel/dri/pci/vendors.h
new file mode 100644
index 0000000..dc05e8a
--- /dev/null
+++ b/include/kernel/dri/pci/vendors.h
@@ -0,0 +1,14 @@
+#pragma once
+
+#include <kint.h>
+
+struct pci_vendor
+{
+    ushort id;
+    char *name;
+};
+
+extern struct pci_vendor pci_vendors[];
+extern int pci_num_vendors;
+
+struct pci_vendor *pci_vendor_by_id(ushort id);
\ No newline at end of file