On Fri, 3 Jun 2016 09:40:16 +0000 "Tian, Kevin" <kevin.tian@xxxxxxxxx> wrote: > > From: Dong Jia [mailto:bjsdjshi@xxxxxxxxxxxxxxxxxx] > > 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 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html