48 lines
1.3 KiB
C
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;
|