You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
598 B

#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;
};