On 2011-09-16 18:54, Anthony Liguori wrote: > On 09/16/2011 11:48 AM, Jan Kiszka wrote: >> On 2011-09-16 18:00, Anthony Liguori wrote: >>> This series introduces an infrastructure to remove anonymous devices from >>> qdev. >>> Anonymous devices are one of the big gaps between qdev and QOM so removing >>> is >>> a prerequisite to incrementally merging QOM. >>> >>> Besides the infrastructure, I also converted almost all of the possible PC >>> devices to have unique names. Please not that naming is not a property of >>> devices but rather of the thing that creates the devices (usually machines). >>> >>> The names are ugly but this is because of the alternating device/bus >>> hierarchy >>> in qdev. For now, the names use '::' as deliminators but I think Jan has >>> convinced me that down the road, we should use '/' as a deliminator such >>> that >>> the resulting names are actually valid paths (using a canonical path >>> format). >> >> I still don't see why we need to store strings as device references. >> Everyone that lacks a reference (QEMU-external users) can pass in a path >> - which can be a device name in the simple case. That path is resolved >> to an object reference before proceeding with the requested service. If >> an object should be serialized in whatever way and we need a stable >> name, a central service could return this by walking up the composition >> tree until a user-assigned name is found. >> >> So there is really no need to bother device model developers with the >> topics "How do I define a unique name?" > > This series just asks the device model developer to come up with a unique > *when* > they're doing device composition. Even with a totally path based interface, > this is always going to be a firm requirement.
It will happen automatically - by defining a link to the child in the parent device. Requesting unique names is redundant. > > I think it may be possible to eliminate required device names by having a > formal > notion of composition and have the devices store the names of the composed > devices as part of the reference to that device. You could then have user > created devices use a separate hash table to track the names of those devices. > > But, we can't easily do this today. Having either a fully qualified name or > a > composition name as part of qdev_create() is the Right Thing IMHO so I think > this is the stepping stone to something more sophisticated. A name for an internal reference is the wrong tool IMHO. Jan -- Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux