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