Message ID | 1254514577-11896-24-git-send-email-yamahata@valinux.co.jp |
---|---|
State | Superseded |
Headers | show |
On Sat, Oct 03, 2009 at 05:16:15AM +0900, Isaku Yamahata wrote: > add helper function to initialize wmask. > This will be used later. > > Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> > --- > hw/pci.c | 25 +++++++++++++++++++++++++ > hw/pci.h | 4 ++++ > 2 files changed, 29 insertions(+), 0 deletions(-) > > diff --git a/hw/pci.c b/hw/pci.c > index cc5738a..ec7c429 100644 > --- a/hw/pci.c > +++ b/hw/pci.c > @@ -415,6 +415,31 @@ static void pci_config_alloc(PCIDevice *pci_dev) > PCI_CONFIG_ALLOC(pci_dev, used, config_size); > } > > +static void pci_conf_init(PCIDevice *d, uint32_t addr, uint32_t wmask, int len) > +{ > + int i; > + > + for (i = 0; i < len; i++) { > + d->wmask[addr + i] = wmask & 0xff; > + wmask >>= 8; > + } > +} > + > +void pci_conf_initb(PCIDevice *d, uint32_t addr, uint32_t wmask) > +{ > + pci_conf_init(d, addr, wmask, 1); > +} > + > +void pci_conf_initw(PCIDevice *d, uint32_t addr, uint32_t wmask) > +{ > + pci_conf_init(d, addr, wmask, 2); > +} > + > +void pci_conf_initl(PCIDevice *d, uint32_t addr, uint32_t wmask) > +{ > + pci_conf_init(d, addr, wmask, 4); > +} > + These seem to just implement pci endianness. Just use pci_set_word / pci_set_long. > /* -1 for devfn means auto assign */ > static PCIDevice *do_pci_register_device(PCIDevice *pci_dev, PCIBus *bus, > const char *name, int devfn, > diff --git a/hw/pci.h b/hw/pci.h > index be241b4..56285e2 100644 > --- a/hw/pci.h > +++ b/hw/pci.h > @@ -255,6 +255,10 @@ struct PCIDevice { > target_phys_addr_t msix_page_size; > }; > > +void pci_conf_initb(PCIDevice *d, uint32_t addr, uint32_t wmask); > +void pci_conf_initw(PCIDevice *d, uint32_t addr, uint32_t wmask); > +void pci_conf_initl(PCIDevice *d, uint32_t addr, uint32_t wmask); > + > PCIDevice *pci_register_device(PCIBus *bus, const char *name, > int instance_size, int devfn, > PCIConfigReadFunc *config_read, > -- > 1.6.0.2 > >
diff --git a/hw/pci.c b/hw/pci.c index cc5738a..ec7c429 100644 --- a/hw/pci.c +++ b/hw/pci.c @@ -415,6 +415,31 @@ static void pci_config_alloc(PCIDevice *pci_dev) PCI_CONFIG_ALLOC(pci_dev, used, config_size); } +static void pci_conf_init(PCIDevice *d, uint32_t addr, uint32_t wmask, int len) +{ + int i; + + for (i = 0; i < len; i++) { + d->wmask[addr + i] = wmask & 0xff; + wmask >>= 8; + } +} + +void pci_conf_initb(PCIDevice *d, uint32_t addr, uint32_t wmask) +{ + pci_conf_init(d, addr, wmask, 1); +} + +void pci_conf_initw(PCIDevice *d, uint32_t addr, uint32_t wmask) +{ + pci_conf_init(d, addr, wmask, 2); +} + +void pci_conf_initl(PCIDevice *d, uint32_t addr, uint32_t wmask) +{ + pci_conf_init(d, addr, wmask, 4); +} + /* -1 for devfn means auto assign */ static PCIDevice *do_pci_register_device(PCIDevice *pci_dev, PCIBus *bus, const char *name, int devfn, diff --git a/hw/pci.h b/hw/pci.h index be241b4..56285e2 100644 --- a/hw/pci.h +++ b/hw/pci.h @@ -255,6 +255,10 @@ struct PCIDevice { target_phys_addr_t msix_page_size; }; +void pci_conf_initb(PCIDevice *d, uint32_t addr, uint32_t wmask); +void pci_conf_initw(PCIDevice *d, uint32_t addr, uint32_t wmask); +void pci_conf_initl(PCIDevice *d, uint32_t addr, uint32_t wmask); + PCIDevice *pci_register_device(PCIBus *bus, const char *name, int instance_size, int devfn, PCIConfigReadFunc *config_read,
add helper function to initialize wmask. This will be used later. Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> --- hw/pci.c | 25 +++++++++++++++++++++++++ hw/pci.h | 4 ++++ 2 files changed, 29 insertions(+), 0 deletions(-)