1*d83cc019SAndroid Build Coastguard Worker #pragma once 2*d83cc019SAndroid Build Coastguard Worker typedef uint64_t pciaddr_t; 3*d83cc019SAndroid Build Coastguard Worker struct pci_mem_region { 4*d83cc019SAndroid Build Coastguard Worker void *memory; 5*d83cc019SAndroid Build Coastguard Worker pciaddr_t bus_addr; 6*d83cc019SAndroid Build Coastguard Worker pciaddr_t base_addr; 7*d83cc019SAndroid Build Coastguard Worker pciaddr_t size; 8*d83cc019SAndroid Build Coastguard Worker unsigned is_IO:1; 9*d83cc019SAndroid Build Coastguard Worker unsigned is_prefetchable:1; 10*d83cc019SAndroid Build Coastguard Worker unsigned is_64:1; 11*d83cc019SAndroid Build Coastguard Worker }; 12*d83cc019SAndroid Build Coastguard Worker struct pci_device { 13*d83cc019SAndroid Build Coastguard Worker uint16_t domain; 14*d83cc019SAndroid Build Coastguard Worker uint8_t bus; 15*d83cc019SAndroid Build Coastguard Worker uint8_t dev; 16*d83cc019SAndroid Build Coastguard Worker uint8_t func; 17*d83cc019SAndroid Build Coastguard Worker uint16_t vendor_id; 18*d83cc019SAndroid Build Coastguard Worker uint16_t device_id; 19*d83cc019SAndroid Build Coastguard Worker uint16_t subvendor_id; 20*d83cc019SAndroid Build Coastguard Worker uint16_t subdevice_id; 21*d83cc019SAndroid Build Coastguard Worker uint32_t device_class; 22*d83cc019SAndroid Build Coastguard Worker uint8_t revision; 23*d83cc019SAndroid Build Coastguard Worker struct pci_mem_region regions[6]; 24*d83cc019SAndroid Build Coastguard Worker pciaddr_t rom_size; 25*d83cc019SAndroid Build Coastguard Worker int irq; 26*d83cc019SAndroid Build Coastguard Worker intptr_t user_data; 27*d83cc019SAndroid Build Coastguard Worker int vgaarb_rsrc; 28*d83cc019SAndroid Build Coastguard Worker }; 29