blob: 13f205a8f1a075684a764e1d6c7ed5308b27e40b [file] [log] [blame]
#pragma once
typedef uint64_t pciaddr_t;
struct pci_mem_region {
void *memory;
pciaddr_t bus_addr;
pciaddr_t base_addr;
pciaddr_t size;
unsigned is_IO:1;
unsigned is_prefetchable:1;
unsigned is_64:1;
};
struct pci_device {
uint16_t domain;
uint8_t bus;
uint8_t dev;
uint8_t func;
uint16_t vendor_id;
uint16_t device_id;
uint16_t subvendor_id;
uint16_t subdevice_id;
uint32_t device_class;
uint8_t revision;
struct pci_mem_region regions[6];
pciaddr_t rom_size;
int irq;
intptr_t user_data;
int vgaarb_rsrc;
};