diff --git a/hw/xfree86/int10/helper_exec.c b/hw/xfree86/int10/helper_exec.c index 320392e11..2d730fa03 100644 --- a/hw/xfree86/int10/helper_exec.c +++ b/hw/xfree86/int10/helper_exec.c @@ -28,6 +28,7 @@ #define _INT10_PRIVATE #include "int10Defines.h" #include "xf86int10.h" +#include "Pci.h" static int pciCfg1in(CARD16 addr, CARD32 *val); static int pciCfg1out(CARD16 addr, CARD32 val); @@ -472,8 +473,11 @@ static CARD32 PciCfg1Addr = 0; #define TAG(Cfg1Addr) (Cfg1Addr & 0xffff00) #define OFFSET(Cfg1Addr) (Cfg1Addr & 0xff) -#define _BUS(x) (((x) >> 16) & 0x0ff) -#define _DEV(x) (((x) >> 8) & 0x0ff) +#define _BUS(x) PCI_BUS_FROM_TAG( TAG(PciCfg1Addr) ) +#define _DEV(x) PCI_DEV_FROM_TAG( TAG(PciCfg1Addr) ) +#define _FUNC(x) PCI_FUNC_FROM_TAG( TAG(PciCfg1Addr) ) +#define GET_DEVICE(_addr) \ + pci_device_find_by_slot(0, _BUS(_addr), _DEV(_addr), _FUNC(_addr)) static int pciCfg1in(CARD16 addr, CARD32 *val) @@ -483,10 +487,7 @@ pciCfg1in(CARD16 addr, CARD32 *val) return 1; } if (addr == 0xCFC) { - struct pci_device * dev = pci_device_find_by_slot(0, - _BUS(PciCfg1Addr), - _DEV(PciCfg1Addr), - 0); + struct pci_device *dev = GET_DEVICE(PciCfg1Addr); pci_device_cfg_read_u32(dev, val, OFFSET(PciCfg1Addr)); return 1; @@ -502,10 +503,7 @@ pciCfg1out(CARD16 addr, CARD32 val) return 1; } if (addr == 0xCFC) { - struct pci_device * dev = pci_device_find_by_slot(0, - _BUS(PciCfg1Addr), - _DEV(PciCfg1Addr), - 0); + struct pci_device *dev = GET_DEVICE(PciCfg1Addr); pci_device_cfg_write_u32(dev, & val, OFFSET(PciCfg1Addr)); return 1; @@ -525,10 +523,7 @@ pciCfg1inw(CARD16 addr, CARD16 *val) } if ((addr >= 0xCFC) && (addr <= 0xCFF)) { const unsigned offset = addr - 0xCFC; - struct pci_device * dev = pci_device_find_by_slot(0, - _BUS(PciCfg1Addr), - _DEV(PciCfg1Addr), - 0); + struct pci_device *dev = GET_DEVICE(PciCfg1Addr); pci_device_cfg_read_u16(dev, val, OFFSET(PciCfg1Addr) + offset); return 1; @@ -549,10 +544,7 @@ pciCfg1outw(CARD16 addr, CARD16 val) } if ((addr >= 0xCFC) && (addr <= 0xCFF)) { const unsigned offset = addr - 0xCFC; - struct pci_device * dev = pci_device_find_by_slot(0, - _BUS(PciCfg1Addr), - _DEV(PciCfg1Addr), - 0); + struct pci_device *dev = GET_DEVICE(PciCfg1Addr); pci_device_cfg_write_u16(dev, & val, OFFSET(PciCfg1Addr) + offset); return 1; @@ -572,10 +564,7 @@ pciCfg1inb(CARD16 addr, CARD8 *val) } if ((addr >= 0xCFC) && (addr <= 0xCFF)) { const unsigned offset = addr - 0xCFC; - struct pci_device * dev = pci_device_find_by_slot(0, - _BUS(PciCfg1Addr), - _DEV(PciCfg1Addr), - 0); + struct pci_device *dev = GET_DEVICE(PciCfg1Addr); pci_device_cfg_read_u8(dev, val, OFFSET(PciCfg1Addr) + offset); return 1; @@ -596,10 +585,7 @@ pciCfg1outb(CARD16 addr, CARD8 val) } if ((addr >= 0xCFC) && (addr <= 0xCFF)) { const unsigned offset = addr - 0xCFC; - struct pci_device * dev = pci_device_find_by_slot(0, - _BUS(PciCfg1Addr), - _DEV(PciCfg1Addr), - 0); + struct pci_device *dev = GET_DEVICE(PciCfg1Addr); pci_device_cfg_write_u8(dev, & val, OFFSET(PciCfg1Addr) + offset); return 1;