qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [RFC PATCH v4 1/3] Mediated device Core driver


From: Dong Jia
Subject: Re: [Qemu-devel] [RFC PATCH v4 1/3] Mediated device Core driver
Date: Mon, 6 Jun 2016 10:24:21 +0800

On Fri, 3 Jun 2016 09:40:16 +0000
"Tian, Kevin" <address@hidden> wrote:

> > From: Dong Jia [mailto:address@hidden
> > Sent: Friday, June 03, 2016 4:58 PM
> > 
> > 
> > ...snip...
> > 
> > > +struct phy_device_ops {
> > > + struct module   *owner;
> > > + const struct attribute_group **dev_attr_groups;
> > > + const struct attribute_group **mdev_attr_groups;
> > > +
> > > + int     (*supported_config)(struct device *dev, char *config);
> > > + int     (*create)(struct device *dev, uuid_le uuid,
> > > +                   uint32_t instance, char *mdev_params);
> > > + int     (*destroy)(struct device *dev, uuid_le uuid,
> > > +                    uint32_t instance);
> > > + int     (*start)(uuid_le uuid);
> > > + int     (*shutdown)(uuid_le uuid);
> > > + ssize_t (*read)(struct mdev_device *vdev, char *buf, size_t count,
> > > +                 enum mdev_emul_space address_space, loff_t pos);
> > > + ssize_t (*write)(struct mdev_device *vdev, char *buf, size_t count,
> > > +                  enum mdev_emul_space address_space, loff_t pos);
> > > + int     (*set_irqs)(struct mdev_device *vdev, uint32_t flags,
> > > +                     unsigned int index, unsigned int start,
> > > +                     unsigned int count, void *data);
> > > + int     (*get_region_info)(struct mdev_device *vdev, int region_index,
> > > +                          struct pci_region_info *region_info);
> > > + int     (*validate_map_request)(struct mdev_device *vdev,
> > > +                                 unsigned long virtaddr,
> > > +                                 unsigned long *pfn, unsigned long *size,
> > > +                                 pgprot_t *prot);
> > > +};
> > 
> > Dear Kirti:
> > 
> > When I rebased my vfio-ccw patches on this series, I found I need an
> > extra 'ioctl' callback in phy_device_ops.
> > 
> > The ccw physical device only supports one ccw mediated device. And I
> > have two new ioctl commands for the ccw mediated device. One is
> > to hot-reset the resource in the physical device that allocated for
> > the mediated device, the other is to do an I/O instruction translation
> > and perform an I/O operation on the physical device. I found the
> > existing callbacks could not meet my requirements.
> > 
> > Something like the following would be fine for my case:
> >     int (*ioctl)(struct mdev_device *vdev,
> >                  unsigned int cmd,
> >                  unsigned long arg);
> > 
> > What do you think about this?
> > 
> 
> 'reset' should be generic. better to define an individual callback
> for it (then we can also expose a node under vgpu path in sysfs).
> 
Sounds reasonable for me. :>

> Thanks
> Kevin
> 



--------
Dong Jia




reply via email to

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