Patchwork [23/25] pci: add helper function to initialize wmask.

login
register
mail settings
Submitter Isaku Yamahata
Date Oct. 2, 2009, 10:31 a.m.
Message ID <1254479517-25845-24-git-send-email-yamahata@valinux.co.jp>
Download mbox | patch
Permalink /patch/34829/
State Superseded
Headers show

Comments

Isaku Yamahata - Oct. 2, 2009, 10:31 a.m.
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(-)

Patch

diff --git a/hw/pci.c b/hw/pci.c
index 2b3591b..13506d4 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,