lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 18 Oct 2019 17:46:56 +0800 From: Tiwei Bie <tiwei.bie@...el.com> To: Jason Wang <jasowang@...hat.com> Cc: kvm@...r.kernel.org, linux-s390@...r.kernel.org, linux-kernel@...r.kernel.org, dri-devel@...ts.freedesktop.org, intel-gfx@...ts.freedesktop.org, intel-gvt-dev@...ts.freedesktop.org, kwankhede@...dia.com, alex.williamson@...hat.com, mst@...hat.com, virtualization@...ts.linux-foundation.org, netdev@...r.kernel.org, cohuck@...hat.com, maxime.coquelin@...hat.com, cunming.liang@...el.com, zhihong.wang@...el.com, rob.miller@...adcom.com, xiao.w.wang@...el.com, haotian.wang@...ive.com, zhenyuw@...ux.intel.com, zhi.a.wang@...el.com, jani.nikula@...ux.intel.com, joonas.lahtinen@...ux.intel.com, rodrigo.vivi@...el.com, airlied@...ux.ie, daniel@...ll.ch, farman@...ux.ibm.com, pasic@...ux.ibm.com, sebott@...ux.ibm.com, oberpar@...ux.ibm.com, heiko.carstens@...ibm.com, gor@...ux.ibm.com, borntraeger@...ibm.com, akrowiak@...ux.ibm.com, freude@...ux.ibm.com, lingshan.zhu@...el.com, idos@...lanox.com, eperezma@...hat.com, lulu@...hat.com, parav@...lanox.com, christophe.de.dinechin@...il.com, kevin.tian@...el.com, stefanha@...hat.com Subject: Re: [PATCH V4 4/6] mdev: introduce virtio device and its device ops On Thu, Oct 17, 2019 at 06:48:34PM +0800, Jason Wang wrote: > + * @get_vq_state: Get the state for a virtqueue > + * @mdev: mediated device > + * @idx: virtqueue index > + * Returns virtqueue state (last_avail_idx) > + * @get_vq_align: Get the virtqueue align requirement > + * for the device > + * @mdev: mediated device > + * Returns virtqueue algin requirement > + * @get_features: Get virtio features supported by the device > + * @mdev: mediated device > + * Returns the virtio features support by the > + * device > + * @get_features: Set virtio features supported by the driver s/get_features/set_features/ > + * configration space > + * @get_mdev_features: Get the feature of virtio mdev device > + * @mdev: mediated device > + * Returns the mdev features (API) support by > + * the device. > + * @get_generation: Get device generaton > + * @mdev: mediated device > + * Returns u32: device generation > + */ > +struct virtio_mdev_device_ops { > + /* Virtqueue ops */ > + int (*set_vq_address)(struct mdev_device *mdev, > + u16 idx, u64 desc_area, u64 driver_area, > + u64 device_area); > + void (*set_vq_num)(struct mdev_device *mdev, u16 idx, u32 num); > + void (*kick_vq)(struct mdev_device *mdev, u16 idx); > + void (*set_vq_cb)(struct mdev_device *mdev, u16 idx, > + struct virtio_mdev_callback *cb); > + void (*set_vq_ready)(struct mdev_device *mdev, u16 idx, bool ready); > + bool (*get_vq_ready)(struct mdev_device *mdev, u16 idx); > + int (*set_vq_state)(struct mdev_device *mdev, u16 idx, u64 state); > + u64 (*get_vq_state)(struct mdev_device *mdev, u16 idx); > + > + /* Device ops */ > + u16 (*get_vq_align)(struct mdev_device *mdev); > + u64 (*get_features)(struct mdev_device *mdev); > + int (*set_features)(struct mdev_device *mdev, u64 features); > + void (*set_config_cb)(struct mdev_device *mdev, > + struct virtio_mdev_callback *cb); > + u16 (*get_vq_num_max)(struct mdev_device *mdev); > + u32 (*get_device_id)(struct mdev_device *mdev); > + u32 (*get_vendor_id)(struct mdev_device *mdev); > + u8 (*get_status)(struct mdev_device *mdev); > + void (*set_status)(struct mdev_device *mdev, u8 status); > + void (*get_config)(struct mdev_device *mdev, unsigned int offset, > + void *buf, unsigned int len); > + void (*set_config)(struct mdev_device *mdev, unsigned int offset, > + const void *buf, unsigned int len); > + u64 (*get_mdev_features)(struct mdev_device *mdev); Do we need a .set_mdev_features method as well? It's not very clear what does mdev_features mean. Does it mean the vhost backend features? https://github.com/torvalds/linux/blob/0e2adab6cf285c41e825b6c74a3aa61324d1132c/include/uapi/linux/vhost.h#L93-L94 > + u32 (*get_generation)(struct mdev_device *mdev); > +}; > + > +void mdev_set_virtio_ops(struct mdev_device *mdev, > + const struct virtio_mdev_device_ops *virtio_ops); > + > +#endif > -- > 2.19.1 >
Powered by blists - more mailing lists