Hi,
I disagree. Anything that depends on device creation order is fundamentally
broken. If you want to create globally unique user-friendly tags for devices
or busses then that is a completely different problem, and should be done via
explicit aliases.
For anything created via -device the id does the job. The device gets
tagged with the supplied id, and any child busses of that device carry
the id too, i.e.
-device lsi,id=foo
creates a lsi scsi hostadapter with id 'foo' and a scsi bus with the
name 'foo.0'. A (theoretical) scsi hba with two scsi busses would have
'foo.0' and 'foo.1' child busses. If you don't specify a id you'll get
'scsi.$nr'. Numbers are per device, not global. So if you add two lsi
adapters without id you'll get two 'scsi.0' busses, so better don't do
that if you want be able to address them via bus= ...
For devices created by machine->init() the names are more or less
hard-coded in qemu though (and hopefully some day in some machine
description file). 'pci.0' is the default name for a pci bus and IMHO a
good choice for the primary pci bus. secondary busses created by
machine->init() (sparc64 does this I think) should get some other name.
cheers,
Gerd