Files
nt-lite/code/drivers/bus/pci/pci.h
T

48 lines
1.3 KiB
C

// PCI bus-driver declarations shared with PCI function drivers.
#pragma once
#include <stdint.h>
#include <stdbool.h>
#include <ntlite/ddi/pci.h>
#define PCI_MAX_BARS 6u
#define PCI_VENDOR_INVALID 0xFFFFu
#define PCI_REG_VENDOR_DEVICE 0x00u
#define PCI_REG_COMMAND_STATUS 0x04u
#define PCI_REG_REVISION_CLASS 0x08u
#define PCI_REG_HEADER_TYPE 0x0Cu
#define PCI_REG_BAR0 0x10u
#define PCI_REG_SUBSYSTEM 0x2Cu
#define PCI_REG_CAP_PTR 0x34u
#define PCI_REG_INTERRUPT_LINE_PIN 0x3Cu
#define PCI_COMMAND_IO_SPACE 0x0001u
#define PCI_COMMAND_MEMORY_SPACE 0x0002u
#define PCI_COMMAND_BUS_MASTER 0x0004u
#define PCI_COMMAND_INTX_DISABLE 0x0400u
#define PCI_HEADER_TYPE_MASK 0x7Fu
#define PCI_HEADER_TYPE_MULTI 0x80u
#define PCI_STATUS_CAP_LIST 0x0010u
#define PCI_CAP_ID_MSI 0x05u
#define PCI_CAP_ID_MSIX 0x11u
#define PCI_MSI_CTRL_ENABLE 0x0001u
#define PCI_MSI_CTRL_MME_MASK 0x0070u
#define PCI_MSI_CTRL_64BIT 0x0080u
#define PCI_MSI_CTRL_PVM 0x0100u
#define PCI_MSI_ADDRESS_BASE 0xFEE00000u
#define PCI_IRQ_VECTOR_BASE 0x20u
typedef struct PCI_PDO_EXTENSION {
PCI_DEVICE_INFO Info;
PCI_BAR Bars[PCI_MAX_BARS];
uint8_t CapabilityOffset;
} PCI_PDO_EXTENSION;