[Top][All Lists]

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

Re: [Qemu-devel] [PATCH 03/61] virtio-pci-bus : introduce virtio-pci-bus

From: Peter Maydell
Subject: Re: [Qemu-devel] [PATCH 03/61] virtio-pci-bus : introduce virtio-pci-bus.
Date: Wed, 9 Jan 2013 14:53:31 +0000

On 9 January 2013 09:14, KONRAD Frédéric <address@hidden> wrote:
> On 09/01/2013 09:37, KONRAD Frédéric wrote:
>> On 08/01/2013 19:08, Peter Maydell wrote:
>>> This isn't quite right, I think (somebody correct me if I'm wrong!)
>>> The virtio-pci-bus subclass doesn't have any state of its own, so it
>>> doesn't need a struct, but it does still want a type, so virtio-pci.h
>>> should
>>> have a
>>>     typedef VirtioBusClass VirtioPCIBusClass;
>>>     typedef VirtioBusState VirtioPCIBusState;
>>> and we then use VirtioPCIBusClass/State where appropriate
>>> (notably in the typeinfo for class/instance size and in the get-class/
>>> class-check/etc macros).
>>> This lets us easily add state later if we need to by turning the
>>> typedef into a typedef'd struct without having to hunt down all
>>> the places that now need to say 'VirtioPCIBus*' rather than
>>> 'VirtioBus*'.

>> Ok, I'll make the change.

> Though, I'm not really sure we will add something here..
> The virtio-pci-bus is only added to implement VirtioBusClass functions.
> There are no differences between pci, s390, or mmio.

It's just consistency, and as I say it avoids surprises later. We're
basically inventing our own object system in C here, which means
that there's no guard preventing you from doing something in a
way which is inconsistent with our object system but still valid
and functioning C; but it's better style not to do that.

-- PMM

reply via email to

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