qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 8/9] pci_host.h: split non-inline static functio


From: Isaku Yamahata
Subject: Re: [Qemu-devel] [PATCH 8/9] pci_host.h: split non-inline static function in pci_host.h into pci_host_c.h
Date: Thu, 1 Oct 2009 13:13:43 +0900
User-agent: Mutt/1.5.6i

On Wed, Sep 30, 2009 at 01:47:07PM +0200, Michael S. Tsirkin wrote:
> 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.

Okay, then let's whole clean up.

> 
> > 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;
> >  
> 

-- 
yamahata




reply via email to

[Prev in Thread] Current Thread [Next in Thread]