From 9c17439807c80876bf7027b17859714b31401ab9 Mon Sep 17 00:00:00 2001 From: Bart Trojanowski Date: Fri, 11 Jan 2008 19:59:54 -0500 Subject: [PATCH] X86EMU: pass the correct bus:dev:fn tag to pci emulation Signed-off-by: Bart Trojanowski --- hw/xfree86/int10/helper_exec.c | 15 ++++++++------- 1 files changed, 8 insertions(+), 7 deletions(-) diff --git a/hw/xfree86/int10/helper_exec.c b/hw/xfree86/int10/helper_exec.c index 87e5c76..57b7370 100644 --- a/hw/xfree86/int10/helper_exec.c +++ b/hw/xfree86/int10/helper_exec.c @@ -549,7 +549,8 @@ Mem_wl(CARD32 addr, CARD32 val) static CARD32 PciCfg1Addr = 0; -#define OFFSET(Cfg1Addr) (Cfg1Addr & 0xff) +#define PCI_OFFSET(x) ((x) & 0x000000ff) +#define PCI_TAG(x) ((x) & 0x00ffff00) static int pciCfg1in(CARD16 addr, CARD32 *val) @@ -559,7 +560,7 @@ pciCfg1in(CARD16 addr, CARD32 *val) return 1; } if (addr == 0xCFC) { - *val = pciReadLong(Int10Current->Tag, OFFSET(PciCfg1Addr)); + *val = pciReadLong(PCI_TAG(PciCfg1Addr), PCI_OFFSET(PciCfg1Addr)); return 1; } return 0; @@ -573,7 +574,7 @@ pciCfg1out(CARD16 addr, CARD32 val) return 1; } if (addr == 0xCFC) { - pciWriteLong(Int10Current->Tag, OFFSET(PciCfg1Addr), val); + pciWriteLong(PCI_TAG(PciCfg1Addr), PCI_OFFSET(PciCfg1Addr), val); return 1; } return 0; @@ -591,7 +592,7 @@ pciCfg1inw(CARD16 addr, CARD16 *val) } if ((addr >= 0xCFC) && (addr <= 0xCFF)) { offset = addr - 0xCFC; - *val = pciReadWord(Int10Current->Tag, OFFSET(PciCfg1Addr) + offset); + *val = pciReadWord(PCI_TAG(PciCfg1Addr), PCI_OFFSET(PciCfg1Addr) + offset); return 1; } return 0; @@ -610,7 +611,7 @@ pciCfg1outw(CARD16 addr, CARD16 val) } if ((addr >= 0xCFC) && (addr <= 0xCFF)) { offset = addr - 0xCFC; - pciWriteWord(Int10Current->Tag, OFFSET(PciCfg1Addr) + offset, val); + pciWriteWord(PCI_TAG(PciCfg1Addr), PCI_OFFSET(PciCfg1Addr) + offset, val); return 1; } return 0; @@ -628,7 +629,7 @@ pciCfg1inb(CARD16 addr, CARD8 *val) } if ((addr >= 0xCFC) && (addr <= 0xCFF)) { offset = addr - 0xCFC; - *val = pciReadByte(Int10Current->Tag, OFFSET(PciCfg1Addr) + offset); + *val = pciReadByte(PCI_TAG(PciCfg1Addr), PCI_OFFSET(PciCfg1Addr) + offset); return 1; } return 0; @@ -647,7 +648,7 @@ pciCfg1outb(CARD16 addr, CARD8 val) } if ((addr >= 0xCFC) && (addr <= 0xCFF)) { offset = addr - 0xCFC; - pciWriteByte(Int10Current->Tag, OFFSET(PciCfg1Addr) + offset, val); + pciWriteByte(PCI_TAG(PciCfg1Addr), PCI_OFFSET(PciCfg1Addr) + offset, val); return 1; } return 0; -- 1.5.3.7.1150.g149d432