Re: A set of "standard" virtual devices?

Cornelia Huck
2007-04-03T16:05:37Z

On Tue, 3 Apr 2007 16:03:14 +0200,
Arnd Bergmann <arnd@arndb.de> wrote:

> > > struct virt_dev {
> > > struct device dev;
> > > struct virt_driver *driver;
> > > struct virt_bus *bus;
> > > struct pci_device_id id;
> > > int irq;
> > > };
> >
> > And that's where I have problems :) The notion of "irq" is far too
> > platform specific. I can bend my mind round using PCI-like ids for
> > non-PCI virtualized devices, but an integer is far too small and to
> > specific for a way to access the device.
>
> Sorry, I've been working too long on the lesser architectures.
> IRQ number are evil indeed.
> However, I'm pretty sure that we need _some_ abstraction of an
> interrupt mechanism here. The easiest way is probably to have a
> callback function like
> int (*irq_handler)(struct virt_dev*, unsigned long message);
> in the virt_dev.

Yes, something like
int (*handler) (struct virt_dev *, struct virt_interrupt_info *);
should cover the needed cases.