[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: sysbus_create_simple Vs qdev_create
From: |
Eduardo Habkost |
Subject: |
Re: sysbus_create_simple Vs qdev_create |
Date: |
Mon, 20 Jul 2020 11:59:55 -0400 |
On Mon, Jul 20, 2020 at 09:38:24AM +0200, Markus Armbruster wrote:
> Eduardo Habkost <ehabkost@redhat.com> writes:
>
> > On Fri, Jul 17, 2020 at 07:10:57AM +0200, Markus Armbruster wrote:
> >> Eduardo Habkost <ehabkost@redhat.com> writes:
> >>
> >> > I'd also note that the use of "parent" in the code is also
> >> > ambiguous. It can mean:
> >> >
> >> > * QOM parent type, i.e. TypeInfo.parent. Related fields:
> >> > * parent_class members of class structs
> >> > * parent_obj members of object structs
> >>
> >> I hate the use of "parent" and "child" for a super- / subtype relation.
> >>
> >> Correcting the terminology there would be short term pain for long term
> >> gain. Worthwhile?
> >
> > I don't know. It looks like the terminology came from GObject.
> >
> >>
> >> > * QOM composition tree parent object, i.e. Object::parent
> >> > * qdev device parent bus, i.e. DeviceState::parent_bus
> >> > * parent device of of qdev bus, i.e. BusState::parent
> >>
> >> These are tree relations. Use of "parent" and "child" is perfectly
> >> fine.
> >
> > The terms are fine but still ambiguous, as devices belong to two
> > separate trees at the same time (the QOM composition tree, and
> > the qdev tree).
> >
> > I never understood why we have two separate independent object
> > trees.
>
> When we rebased qdev onto QOM, we left the qdev tree alone, we did not
> embed it into the QOM composition tree.
>
> The qdev tree edge from bus to device providing the bus is commonly
> mirrored in the QOM composition tree: both are QOM objects, and the bus
> is commonly a QOM composition child of the device providing it. I hedge
> with "commonly", because nothing enforces this as far as I know.
>
> We do not mirror the edge from device to the bus it's plugged into. I
> believe we could have. I guess we could mirror it as a link even now
> (but note links are not children).
They are already mirrored as links, and guess what's the link
name: "child[...]".
>
> I don't know why the rebase of qdev onto QOM was done that way. Perhaps
> Paolo remembers.
I'm guessing this is because QOM parent/child relationships
represent ownership, while there's no ownership relationship
between buses and devices.
--
Eduardo
- Re: sysbus_create_simple Vs qdev_create, (continued)
- Re: sysbus_create_simple Vs qdev_create, Pratik Parvati, 2020/07/15
- Re: sysbus_create_simple Vs qdev_create, Peter Maydell, 2020/07/15
- Re: sysbus_create_simple Vs qdev_create, Markus Armbruster, 2020/07/15
- Re: sysbus_create_simple Vs qdev_create, Eduardo Habkost, 2020/07/16
- Re: sysbus_create_simple Vs qdev_create, Markus Armbruster, 2020/07/17
- Re: sysbus_create_simple Vs qdev_create, Eduardo Habkost, 2020/07/17
- Re: sysbus_create_simple Vs qdev_create, Daniel P . Berrangé, 2020/07/17
- Re: sysbus_create_simple Vs qdev_create, Peter Maydell, 2020/07/17
- Re: sysbus_create_simple Vs qdev_create, Markus Armbruster, 2020/07/20
- Re: sysbus_create_simple Vs qdev_create, Markus Armbruster, 2020/07/20
- Re: sysbus_create_simple Vs qdev_create,
Eduardo Habkost <=
- Re: sysbus_create_simple Vs qdev_create, Markus Armbruster, 2020/07/21
- Re: sysbus_create_simple Vs qdev_create, Paolo Bonzini, 2020/07/27
- Re: sysbus_create_simple Vs qdev_create, Markus Armbruster, 2020/07/28
- Re: sysbus_create_simple Vs qdev_create, Paolo Bonzini, 2020/07/28
- Re: sysbus_create_simple Vs qdev_create, Eduardo Habkost, 2020/07/28
- Re: sysbus_create_simple Vs qdev_create, Paolo Bonzini, 2020/07/29
- Re: sysbus_create_simple Vs qdev_create, Markus Armbruster, 2020/07/29
- Re: sysbus_create_simple Vs qdev_create, Paolo Bonzini, 2020/07/29
- Re: sysbus_create_simple Vs qdev_create, Markus Armbruster, 2020/07/30
- Re: sysbus_create_simple Vs qdev_create, Paolo Bonzini, 2020/07/30