On Wed, Sep 22, 2010 at 01:25:59PM +0200, Michael S. Tsirkin wrote:
> > +PCIESlot *pcie_root_init(PCIBus *bus, int devfn, bool multifunction,> > + const char *bus_name, pci_map_irq_fn map_irq,> > + uint8_t port, uint8_t chassis, uint16_t slot);> > +> > I am a bit unhappy about all these _init functions.> Can devices be created with qdev? If they were> it would be possible to configure the system completely> from qemu command line.
That's very reasonable question.
Once machine configuration file is supported, those initialization
functions will go away.
I.e. when the initialization code like pc_init1() in pc_piix.c disappears,
those functions will also go away.
Until that, those initialization glues will stay like pci_create family
or other many initialization glues unfortunately.
This is the result of qdev missing a feature, not the cause.
It would be a long-term issue to add machine configuration file support.

On Fri, Sep 24, 2010 at 02:38:09PM +0900, Isaku Yamahata wrote:
> On Wed, Sep 22, 2010 at 01:25:59PM +0200, Michael S. Tsirkin wrote:> > > > +PCIESlot *pcie_root_init(PCIBus *bus, int devfn, bool multifunction,> > > + const char *bus_name, pci_map_irq_fn map_irq,> > > + uint8_t port, uint8_t chassis, uint16_t slot);> > > +> > > > I am a bit unhappy about all these _init functions.> > Can devices be created with qdev? If they were> > it would be possible to configure the system completely> > from qemu command line.> > That's very reasonable question.> Once machine configuration file is supported, those initialization> functions will go away.> I.e. when the initialization code like pc_init1() in pc_piix.c disappears,> those functions will also go away.> > Until that, those initialization glues will stay like pci_create family> or other many initialization glues unfortunately.> This is the result of qdev missing a feature, not the cause.> It would be a long-term issue to add machine configuration file support.
Yes, but will it be better to do everything from qdev_init?
> -- > yamahata

On Fri, Sep 24, 2010 at 02:38:09PM +0900, Isaku Yamahata wrote:
> On Wed, Sep 22, 2010 at 01:25:59PM +0200, Michael S. Tsirkin wrote:> > > > +PCIESlot *pcie_root_init(PCIBus *bus, int devfn, bool multifunction,> > > + const char *bus_name, pci_map_irq_fn map_irq,> > > + uint8_t port, uint8_t chassis, uint16_t slot);> > > +> > > > I am a bit unhappy about all these _init functions.> > Can devices be created with qdev? If they were> > it would be possible to configure the system completely> > from qemu command line.> > That's very reasonable question.> Once machine configuration file is supported, those initialization> functions will go away.> I.e. when the initialization code like pc_init1() in pc_piix.c disappears,> those functions will also go away.> > Until that, those initialization glues will stay like pci_create family> or other many initialization glues unfortunately.> This is the result of qdev missing a feature, not the cause.> It would be a long-term issue to add machine configuration file support.
Just to clarify, if I wanted to have a flag to make virtio-net
a pci express device, how would I do this?
> -- > yamahata