On Mon, Jan 04, 2010 at 07:45:16PM +0900, Isaku Yamahata wrote: > +static PCIDevice *pci_host_dev_find_fn_noswap(PCIHostState *s, uint32_t addr) > +{ > + return pci_host_find_dev_active(s->bus, pci_host_pci_addr(s, addr)); > +} > + > +static PCIDevice *pci_host_dev_find_fn(PCIHostState *s, uint32_t addr) > +{ > +#ifdef TARGET_WORDS_BIGENDIAN > + addr = bswap32(addr); > +#endif > + return pci_host_find_dev_active(s->bus, pci_host_pci_addr(s, addr)); > +} > +
BTW, I think we really should think about the right way to address the swap/noswap issue without using a preprocessor. Maybe make pci host bridge explicitly specify whether to swap bytes? How about adding a field in PCIHostState to make it do this? -- MST