#include "rte_vhost.h"
+#define RTE_VHOST_QUEUE_ALL UINT16_MAX
+
/**
* vdpa device operations
*/
struct rte_vdpa_dev_ops {
- /** Get capabilities of this device */
+ /** Get capabilities of this device (Mandatory) */
int (*get_queue_num)(struct rte_vdpa_device *dev, uint32_t *queue_num);
- /** Get supported features of this device */
+ /** Get supported features of this device (Mandatory) */
int (*get_features)(struct rte_vdpa_device *dev, uint64_t *features);
- /** Get supported protocol features of this device */
+ /** Get supported protocol features of this device (Mandatory) */
int (*get_protocol_features)(struct rte_vdpa_device *dev,
uint64_t *protocol_features);
- /** Driver configure/close the device */
+ /** Driver configure the device (Mandatory) */
int (*dev_conf)(int vid);
+
+ /** Driver close the device (Mandatory) */
int (*dev_close)(int vid);
- /** Enable/disable this vring */
+ /** Enable/disable this vring (Mandatory) */
int (*set_vring_state)(int vid, int vring, int state);
- /** Set features when changed */
+ /** Set features when changed (Mandatory) */
int (*set_features)(int vid);
/** Destination operations when migration done */
* vhost device id
* @param enable
* true for host notifier map, false for host notifier unmap
+ * @param qid
+ * vhost queue id, RTE_VHOST_QUEUE_ALL to configure all the device queues
* @return
* 0 on success, -1 on failure
*/
__rte_experimental
int
-rte_vhost_host_notifier_ctrl(int vid, bool enable);
+rte_vhost_host_notifier_ctrl(int vid, uint16_t qid, bool enable);
/**
* @warning