[libvirt] [PATCH 18/34] Add device info to serial, parallel, channel, input & fs devices

Daniel P. Berrange berrange at redhat.com
Mon Jan 18 13:38:44 UTC 2010


On Fri, Jan 15, 2010 at 05:26:33PM +0100, Daniel Veillard wrote:
> On Fri, Jan 08, 2010 at 05:23:14PM +0000, Daniel P. Berrange wrote:
> > Although the serial, parallel, chanel, input & fs devices do
> > not have PCI address info, they can all have device aliases.
> > Thus it neccessary to associate the virDomainDeviceInfo data
> > with them all.
> > 
> > * src/conf/domain_conf.c, src/conf/domain_conf.h: Add hooks for
> >   parsing / formatting device info for serial, parallel, channel
> >   input and fs devices.
> > * docs/schemas/domain.rng: Associate device info with character
> >   devices, input & fs device
> > ---
> >  docs/schemas/domain.rng |   12 ++++++++
> >  src/conf/domain_conf.c  |   67 ++++++++++++++++++++++++++++++++++++++--------
> >  src/conf/domain_conf.h  |    4 +++
> >  3 files changed, 71 insertions(+), 12 deletions(-)
> > 
> > diff --git a/docs/schemas/domain.rng b/docs/schemas/domain.rng
> > index a32ce45..f4bef7b 100644
> > --- a/docs/schemas/domain.rng
> > +++ b/docs/schemas/domain.rng
> > @@ -600,6 +600,9 @@
> >            </interleave>
> >          </group>
> >        </choice>
> > +      <optional>
> > +	<ref name="address"/>
> > +      </optional>
> >      </element>
> >    </define>
> >    <define name="filesystemtgt">
> > @@ -990,6 +993,9 @@
> >            </optional>
> >          </element>
> >        </optional>
> > +      <optional>
> > +	<ref name="address"/>
> > +      </optional>
> >      </interleave>
> >    </define>
> >    <define name="qemucdevSrcType">
> > @@ -1119,6 +1125,9 @@
> >        <interleave>
> >          <ref name="qemucdevSrcDef"/>
> >          <ref name="guestfwdTarget"/>
> > +	<optional>
> > +	  <ref name="address"/>
> > +	</optional>
> >        </interleave>
> >      </element>
> >    </define>
> > @@ -1139,6 +1148,9 @@
> >            </choice>
> >          </attribute>
> >        </optional>
> > +      <optional>
> > +	<ref name="address"/>
> > +      </optional>
> >      </element>
> >    </define>
> >    <define name="hostdev">
> 
>   Hum, unless I'm mistaken this also allow to add a PCI like address
> on input even if it would be ignored, maybe this should be tightened to
> just allow the info

That is correct - it'll allow any of the device info at the parsing
stage. Some hypervisors may support PCI based serial, parallel, devices
and input devices. Ideally, we should make all the hypervisor drivers
check for & reject devices with addressing schemes they don't support
but that's alot of work.

We might need to thing about exposing a way for hypervisor drivers to
register fine grained parser features. So a HV driver could indicate
that it only supports devices X, Y & Z with addressing schemes A & B.

Daniel
-- 
|: Red Hat, Engineering, London   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|




More information about the libvir-list mailing list