From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MsxgK-00078u-TQ for qemu-devel@nongnu.org; Wed, 30 Sep 2009 07:49:17 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MsxgF-00077i-Bq for qemu-devel@nongnu.org; Wed, 30 Sep 2009 07:49:16 -0400 Received: from [199.232.76.173] (port=47768 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MsxgE-00077V-0v for qemu-devel@nongnu.org; Wed, 30 Sep 2009 07:49:10 -0400 Received: from mx1.redhat.com ([209.132.183.28]:21725) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MsxgD-0001OO-Al for qemu-devel@nongnu.org; Wed, 30 Sep 2009 07:49:09 -0400 Date: Wed, 30 Sep 2009 13:47:07 +0200 From: "Michael S. Tsirkin" Subject: Re: [Qemu-devel] [PATCH 8/9] pci_host.h: split non-inline static function in pci_host.h into pci_host_c.h Message-ID: <20090930114707.GJ18802@redhat.com> References: <1247656509-32227-1-git-send-email-yamahata@valinux.co.jp> <1247656509-32227-9-git-send-email-yamahata@valinux.co.jp> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1247656509-32227-9-git-send-email-yamahata@valinux.co.jp> List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Isaku Yamahata Cc: qemu-devel@nongnu.org On Wed, Jul 15, 2009 at 08:15:08PM +0900, Isaku Yamahata wrote: > 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. This is quite ugly. We need to split the users properly, and put c in a .c file, not in an _c.h file. If you can't do that now, just mark the extra stuff inline, compiler can ignore it. > Signed-off-by: Isaku Yamahata > --- > 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 > >