[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 8/9] pci_host.h: split non-inline static function in
From: |
Isaku Yamahata |
Subject: |
[Qemu-devel] [PATCH 8/9] pci_host.h: split non-inline static function in pci_host.h into pci_host_c.h |
Date: |
Wed, 15 Jul 2009 20:15:08 +0900 |
Later a structures declared in pci_host.h, PCIHostState, will be used.
However pci_host.h doesn't allow to include itself easily. This patches
addresses it.
pci_host.h includes non-inline static functions which are instantiated
in .c by including pci_host.h. That prevents from including pci_host.h
to use PCIHostState.
So split pci_host.h non-inline static functions into pci_host_c.h.
Signed-off-by: Isaku Yamahata <address@hidden>
---
hw/apb_pci.c | 2 +-
hw/grackle_pci.c | 2 +-
hw/gt64xxx.c | 2 +-
hw/pci_host.h | 88 +-------------------------------------
hw/{pci_host.h => pci_host_c.h} | 8 +---
hw/piix_pci.c | 2 +-
hw/ppc4xx_pci.c | 2 +-
hw/ppce500_pci.c | 2 +-
hw/prep_pci.c | 2 +-
hw/unin_pci.c | 2 +-
10 files changed, 12 insertions(+), 100 deletions(-)
copy hw/{pci_host.h => pci_host_c.h} (96%)
diff --git a/hw/apb_pci.c b/hw/apb_pci.c
index 5f411aa..9732159 100644
--- a/hw/apb_pci.c
+++ b/hw/apb_pci.c
@@ -40,7 +40,7 @@ do { printf("APB: " fmt , ## __VA_ARGS__); } while (0)
#endif
typedef target_phys_addr_t pci_addr_t;
-#include "pci_host.h"
+#include "pci_host_c.h"
typedef PCIHostState APBState;
diff --git a/hw/grackle_pci.c b/hw/grackle_pci.c
index fde9fea..87ab1b4 100644
--- a/hw/grackle_pci.c
+++ b/hw/grackle_pci.c
@@ -38,7 +38,7 @@
#endif
typedef target_phys_addr_t pci_addr_t;
-#include "pci_host.h"
+#include "pci_host_c.h"
typedef PCIHostState GrackleState;
diff --git a/hw/gt64xxx.c b/hw/gt64xxx.c
index 3b44fc9..b3da0fa 100644
--- a/hw/gt64xxx.c
+++ b/hw/gt64xxx.c
@@ -28,7 +28,7 @@
#include "pc.h"
typedef target_phys_addr_t pci_addr_t;
-#include "pci_host.h"
+#include "pci_host_c.h"
//#define DEBUG
diff --git a/hw/pci_host.h b/hw/pci_host.h
index 48862b5..9f272a7 100644
--- a/hw/pci_host.h
+++ b/hw/pci_host.h
@@ -25,97 +25,15 @@
/* Worker routines for a PCI host controller that uses an {address,data}
register pair to access PCI configuration space. */
-/* debug PCI */
-//#define DEBUG_PCI
+#ifndef PCI_HOST_H
+#define PCI_HOST_H
#include "sysbus.h"
-#ifdef DEBUG_PCI
-#define PCI_DPRINTF(fmt, ...) \
-do { printf("pci_host_data: " fmt , ## __VA_ARGS__); } while (0)
-#else
-#define PCI_DPRINTF(fmt, ...)
-#endif
-
typedef struct {
SysBusDevice busdev;
uint32_t config_reg;
PCIBus *bus;
} PCIHostState;
-static void pci_host_data_writeb(void* opaque, pci_addr_t addr, uint32_t val)
-{
- PCIHostState *s = opaque;
-
- PCI_DPRINTF("writeb addr " TARGET_FMT_plx " val %x\n",
- (target_phys_addr_t)addr, val);
- if (s->config_reg & (1u << 31))
- pci_data_write(s->bus, s->config_reg | (addr & 3), val, 1);
-}
-
-static void pci_host_data_writew(void* opaque, pci_addr_t addr, uint32_t val)
-{
- PCIHostState *s = opaque;
-#ifdef TARGET_WORDS_BIGENDIAN
- val = bswap16(val);
-#endif
- PCI_DPRINTF("writew addr " TARGET_FMT_plx " val %x\n",
- (target_phys_addr_t)addr, val);
- if (s->config_reg & (1u << 31))
- pci_data_write(s->bus, s->config_reg | (addr & 3), val, 2);
-}
-
-static void pci_host_data_writel(void* opaque, pci_addr_t addr, uint32_t val)
-{
- PCIHostState *s = opaque;
-#ifdef TARGET_WORDS_BIGENDIAN
- val = bswap32(val);
-#endif
- PCI_DPRINTF("writel addr " TARGET_FMT_plx " val %x\n",
- (target_phys_addr_t)addr, val);
- if (s->config_reg & (1u << 31))
- pci_data_write(s->bus, s->config_reg, val, 4);
-}
-
-static uint32_t pci_host_data_readb(void* opaque, pci_addr_t addr)
-{
- PCIHostState *s = opaque;
- uint32_t val;
-
- if (!(s->config_reg & (1 << 31)))
- return 0xff;
- val = pci_data_read(s->bus, s->config_reg | (addr & 3), 1);
- PCI_DPRINTF("readb addr " TARGET_FMT_plx " val %x\n",
- (target_phys_addr_t)addr, val);
- return val;
-}
-
-static uint32_t pci_host_data_readw(void* opaque, pci_addr_t addr)
-{
- PCIHostState *s = opaque;
- uint32_t val;
- if (!(s->config_reg & (1 << 31)))
- return 0xffff;
- val = pci_data_read(s->bus, s->config_reg | (addr & 3), 2);
- PCI_DPRINTF("readw addr " TARGET_FMT_plx " val %x\n",
- (target_phys_addr_t)addr, val);
-#ifdef TARGET_WORDS_BIGENDIAN
- val = bswap16(val);
-#endif
- return val;
-}
-
-static uint32_t pci_host_data_readl(void* opaque, pci_addr_t addr)
-{
- PCIHostState *s = opaque;
- uint32_t val;
- if (!(s->config_reg & (1 << 31)))
- return 0xffffffff;
- val = pci_data_read(s->bus, s->config_reg | (addr & 3), 4);
- PCI_DPRINTF("readl addr " TARGET_FMT_plx " val %x\n",
- (target_phys_addr_t)addr, val);
-#ifdef TARGET_WORDS_BIGENDIAN
- val = bswap32(val);
-#endif
- return val;
-}
+#endif /* PCI_HOST_H */
diff --git a/hw/pci_host.h b/hw/pci_host_c.h
similarity index 96%
copy from hw/pci_host.h
copy to hw/pci_host_c.h
index 48862b5..fcd7e6e 100644
--- a/hw/pci_host.h
+++ b/hw/pci_host_c.h
@@ -28,7 +28,7 @@
/* debug PCI */
//#define DEBUG_PCI
-#include "sysbus.h"
+#include "pci_host.h"
#ifdef DEBUG_PCI
#define PCI_DPRINTF(fmt, ...) \
@@ -37,12 +37,6 @@ do { printf("pci_host_data: " fmt , ## __VA_ARGS__); } while
(0)
#define PCI_DPRINTF(fmt, ...)
#endif
-typedef struct {
- SysBusDevice busdev;
- uint32_t config_reg;
- PCIBus *bus;
-} PCIHostState;
-
static void pci_host_data_writeb(void* opaque, pci_addr_t addr, uint32_t val)
{
PCIHostState *s = opaque;
diff --git a/hw/piix_pci.c b/hw/piix_pci.c
index a5d42d1..e67a7dd 100644
--- a/hw/piix_pci.c
+++ b/hw/piix_pci.c
@@ -28,7 +28,7 @@
#include "sysbus.h"
typedef uint32_t pci_addr_t;
-#include "pci_host.h"
+#include "pci_host_c.h"
typedef PCIHostState I440FXState;
diff --git a/hw/ppc4xx_pci.c b/hw/ppc4xx_pci.c
index 87c44f8..27ea87e 100644
--- a/hw/ppc4xx_pci.c
+++ b/hw/ppc4xx_pci.c
@@ -26,7 +26,7 @@
typedef target_phys_addr_t pci_addr_t;
#include "pci.h"
-#include "pci_host.h"
+#include "pci_host_c.h"
#include "bswap.h"
#undef DEBUG
diff --git a/hw/ppce500_pci.c b/hw/ppce500_pci.c
index 1a8a6c9..9258524 100644
--- a/hw/ppce500_pci.c
+++ b/hw/ppce500_pci.c
@@ -19,7 +19,7 @@
#include "ppce500.h"
typedef target_phys_addr_t pci_addr_t;
#include "pci.h"
-#include "pci_host.h"
+#include "pci_host_c.h"
#include "bswap.h"
#include "qemu-log.h"
diff --git a/hw/prep_pci.c b/hw/prep_pci.c
index 80058b1..7051417 100644
--- a/hw/prep_pci.c
+++ b/hw/prep_pci.c
@@ -26,7 +26,7 @@
#include "pci.h"
typedef uint32_t pci_addr_t;
-#include "pci_host.h"
+#include "pci_host_c.h"
typedef PCIHostState PREPPCIState;
diff --git a/hw/unin_pci.c b/hw/unin_pci.c
index 0ad0cd3..4d44008 100644
--- a/hw/unin_pci.c
+++ b/hw/unin_pci.c
@@ -36,7 +36,7 @@
#endif
typedef target_phys_addr_t pci_addr_t;
-#include "pci_host.h"
+#include "pci_host_c.h"
typedef PCIHostState UNINState;
--
1.6.0.2
- [Qemu-devel] [PATCH 0/9] pci: pcie host and mmcfg support, Isaku Yamahata, 2009/07/15
- [Qemu-devel] [PATCH 4/9] pci: use uint64_t for bar addr and size instead of uint32_t., Isaku Yamahata, 2009/07/15
- [Qemu-devel] [PATCH 1/9] pci: fix PCI_DPRINTF() wrt variadic macro., Isaku Yamahata, 2009/07/15
- [Qemu-devel] [PATCH 3/9] pci: define a constant to represent a unmapped bar and use it., Isaku Yamahata, 2009/07/15
- [Qemu-devel] [PATCH 6/9] pci.c: factor out while(bus) bus->next loop logic into pci_find_bus_from()., Isaku Yamahata, 2009/07/15
- [Qemu-devel] [PATCH 2/9] pci.c: use appropriate PRIs in PCI_DPRINTF()., Isaku Yamahata, 2009/07/15
- [Qemu-devel] [PATCH 9/9] [RFC] pci: pcie host and mmcfg support., Isaku Yamahata, 2009/07/15
- [Qemu-devel] [PATCH 8/9] pci_host.h: split non-inline static function in pci_host.h into pci_host_c.h,
Isaku Yamahata <=
- [Qemu-devel] [PATCH 5/9] pci: 64bit bar support., Isaku Yamahata, 2009/07/15
- [Qemu-devel] [PATCH 7/9] pci: factor out the logic to get pci device from address., Isaku Yamahata, 2009/07/15