1 #ifndef __NV_PCICOMPAT_H__
2 #define __NV_PCICOMPAT_H__
4 #ifdef XSERVER_LIBPCIACCESS
8 #ifdef XSERVER_LIBPCIACCESS
10 #define PCI_DEV_VENDOR_ID(_device) ((_device)->vendor_id)
11 #define PCI_DEV_DEVICE_ID(_device) ((_device)->device_id)
12 #define PCI_DEV_REVISION(_device) ((_device)->revision)
14 #define PCI_DEV_FUNC(_device) ((_device)->func)
15 #define PCI_DEV_BUS(_device) ((_device)->bus)
16 #define PCI_DEV_DEV(_device) ((_device)->dev)
18 #define PCI_DEV_TAG(_device) (*(_device))
20 #define PCI_DEV_MEM_BASE(_device, _area) ((_device)->regions[(_area)].base_addr)
21 #define PCI_DEV_IO_BASE(_device, _area) (PCI_DEV_MEM_BASE(_device, _area))
23 #define PCI_DEV_READ_LONG(_device, _offset, _dest_ptr) (pci_device_cfg_read_u32(_device, _dest_ptr, _offset))
24 #define PCI_DEV_WRITE_LONG(_device, _offset, _src) (pci_device_cfg_write_u32(_device, _src, _offset))
26 #define PCI_SLOT_READ_LONG(_slot, _offset) __extension__ ({ uint32_t _pci_slot_read_ret; pci_device_cfg_read_u32(pci_device_find_by_slot(0, 0, 0, _slot), &_pci_slot_read_ret, _offset); _pci_slot_read_ret; })
28 #else /* PRE_PCIACCESS */
30 #define PCI_DEV_VENDOR_ID(_device) ((_device)->vendor)
31 #define PCI_DEV_DEVICE_ID(_device) ((_device)->chipType)
32 #define PCI_DEV_REVISION(_device) ((_device)->chipRev)
34 #define PCI_DEV_FUNC(_device) ((_device)->func)
35 #define PCI_DEV_BUS(_device) ((_device)->bus)
36 #define PCI_DEV_DEV(_device) ((_device)->device)
38 #define PCI_DEV_TAG(_device) (pciTag(PCI_DEV_BUS(_device), PCI_DEV_DEV(_device), PCI_DEV_FUNC(_device)))
40 #define PCI_DEV_MEM_BASE(_device, _area) ((_device)->memBase[(_area)])
41 #define PCI_DEV_IO_BASE(_device, _area) ((_device)->IOBase[(_area)])
43 #define PCI_DEV_READ_LONG(_device, _offset, _dest_ptr) (*(_dest_ptr) = pciReadLong(PCI_DEV_TAG(_device), _offset))
44 #define PCI_DEV_WRITE_LONG(_device, _offset, _src) (pciWriteLong(PCI_DEV_TAG(_device), _offset, _src))
46 #define PCI_SLOT_READ_LONG(_slot, _offset) (pciReadLong(pciTag(0, 0, _slot), _offset))
48 #endif /* XSERVER_LIBPCIACCESS */
50 #define PCI_DEV_PCI_ID(_device) ((PCI_DEV_VENDOR_ID(_device) << 16) | PCI_DEV_DEVICE_ID(_device))
52 #endif /* __NV_PCICOMPAT_H__ */