diff options
author | Anton Kling <anton@kling.gg> | 2023-10-25 22:40:26 +0200 |
---|---|---|
committer | Anton Kling <anton@kling.gg> | 2023-10-30 21:49:48 +0100 |
commit | 0503ff5d7c1630d19ca494621b4fd34a53ddc41e (patch) | |
tree | ec95948fdac4c8a59026df59a5ab08f73c606a14 /drivers/pci.h | |
parent | 9ea708da24784d2f4960f0353b7a08c0c2c08145 (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.h | 12 |
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); |