Some fixes to nv30_exa. Now goes through a couple of composite() calls without crashing.
[nouveau] / src / nv_pcicompat.h
1 #ifndef __NV_PCICOMPAT_H__
2 #define __NV_PCICOMPAT_H__
3
4 #ifdef XSERVER_LIBPCIACCESS
5 #include <pciaccess.h>
6 #endif
7
8 #ifdef XSERVER_LIBPCIACCESS
9
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)
13
14 #define PCI_DEV_FUNC(_device) ((_device)->func)
15 #define PCI_DEV_BUS(_device) ((_device)->bus)
16 #define PCI_DEV_DEV(_device) ((_device)->dev)
17
18 #define PCI_DEV_TAG(_device) (*(_device))
19
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))
22
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))
25
26 #else /* PRE_PCIACCESS */
27
28 #define PCI_DEV_VENDOR_ID(_device) ((_device)->vendor)
29 #define PCI_DEV_DEVICE_ID(_device) ((_device)->chipType)
30 #define PCI_DEV_REVISION(_device) ((_device)->chipRev)
31
32 #define PCI_DEV_FUNC(_device) ((_device)->func)
33 #define PCI_DEV_BUS(_device) ((_device)->bus)
34 #define PCI_DEV_DEV(_device) ((_device)->device)
35
36 #define PCI_DEV_TAG(_device) (pciTag(PCI_DEV_BUS(_device), PCI_DEV_DEV(_device), PCI_DEV_FUNC(_device)))
37
38 #define PCI_DEV_MEM_BASE(_device, _area) ((_device)->memBase[(_area)])
39 #define PCI_DEV_IO_BASE(_device, _area) ((_device)->IOBase[(_area)])
40
41 #define PCI_DEV_READ_LONG(_device, _offset, _dest_ptr) (*(_dest_ptr) = pciReadLong(PCI_DEV_TAG(_device), _offset))
42 #define PCI_DEV_WRITE_LONG(_device, _offset, _src) (pciWriteLong(PCI_DEV_TAG(_device), _offset, _src))
43
44 #endif /* XSERVER_LIBPCIACCESS */
45
46 #define PCI_DEV_PCI_ID(_device) ((PCI_DEV_VENDOR_ID(_device) << 16) | PCI_DEV_DEVICE_ID(_device))
47
48 #endif /* __NV_PCICOMPAT_H__ */