qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC] Plan for moving forward with QOM


From: Anthony Liguori
Subject: Re: [Qemu-devel] [RFC] Plan for moving forward with QOM
Date: Thu, 15 Sep 2011 16:15:21 -0500
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110516 Lightning/1.0b2 Thunderbird/3.1.10

On 09/15/2011 03:45 PM, Peter Maydell wrote:
On 15 September 2011 21:29, Gleb Natapov<address@hidden>  wrote:
16650A is not a device. ISA card it resides on is a device.

The 16550A is an encapsulated set of functionality with some
well defined interfaces ("I provide a set of memory mapped
registers", "I have an output gpio line (irq)"), which we
need to be able to compose into other things (lots of models
use a 16550A one way or another, not just the ISA serial card),
connect up (ie connect that irq to an appropriate interrupt
controller, map the registers in system memory or under ISA
or whatever), and configure (eg specify the backend chardev).

Absolutely.

My view of a "bus" has always been that it's just a well defined set of connectors. Inheritance becomes a useful way of obtaining that well defined set of connectors.

So:

/i440fx/slot[3] = my-e1000

Is really just short-hand for:

/i440fx/slot[3]-bar[0] = my-e1000.bar[0]
/i440fx/slot[3]-bar[1] = my-e1000.bar[1]
...

And more specifically, my thinking was that you could basically omit the explicit use of connectors when using a Bus for the sake of convenience. So there's no real need for my-e1000 to actively publish bar[0], bar[1].

I think that later point is where you object most and it's also the area that I'm the least convinced myself so I'm pretty open there.

Regards,

Anthony Liguori

I don't think there's any difference at all between that
and (say) the NE2000 PCI model, which also is encapsulated
functionality with well defined interfaces that we need to
be able to compose and connect and configure. We should be
using the same implementation and abstractions for both
cases.

(Note the analogy to hardware: a 16550A chip is a well
specified encapsulated set of functionality with some
electrical, timing, etc restrictions on its use. The
only difference between that and an ISA card is that the
ISA card happens to be physically manufactured so that an
end user can plug it, unplug it and wave it around.)

-- PMM





reply via email to

[Prev in Thread] Current Thread [Next in Thread]