summaryrefslogtreecommitdiff
path: root/drivers/pci.h
diff options
context:
space:
mode:
authorAnton Kling <anton@kling.gg>2023-10-25 22:40:26 +0200
committerAnton Kling <anton@kling.gg>2023-10-30 21:49:48 +0100
commit0503ff5d7c1630d19ca494621b4fd34a53ddc41e (patch)
treeec95948fdac4c8a59026df59a5ab08f73c606a14 /drivers/pci.h
parent9ea708da24784d2f4960f0353b7a08c0c2c08145 (diff)
Kernel: Add basic support for PCI and rtl8139
This implementation is very messy and is currently not used.
Diffstat (limited to 'drivers/pci.h')
-rw-r--r--drivers/pci.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/pci.h b/drivers/pci.h
index 855a7de..7511cee 100644
--- a/drivers/pci.h
+++ b/drivers/pci.h
@@ -1,16 +1,26 @@
#include <stdint.h>
+struct GENERAL_DEVICE {
+ uint32_t base_mem_io;
+ uint8_t interrupt_line;
+};
+
struct PCI_DEVICE {
uint16_t vendor;
uint16_t device;
uint8_t bus;
uint8_t slot;
+ union {
+ struct GENERAL_DEVICE gen;
+ };
};
uint32_t pci_config_read32(const struct PCI_DEVICE *device, uint8_t func,
uint8_t offset);
void pci_config_write32(const struct PCI_DEVICE *device, uint8_t func,
- uint8_t offset, uint32_t data);
+ uint8_t offset, uint32_t data);
int pci_populate_device_struct(uint16_t vendor, uint16_t device,
struct PCI_DEVICE *pci_device);
+
+uint8_t pci_get_interrupt_line(const struct PCI_DEVICE *device);