eal/windows: add missing SPDX license tag
[dpdk.git] / lib / librte_vhost / rte_vdpa_dev.h
index fecaa8e..bfada38 100644 (file)
@@ -8,29 +8,34 @@
 #include <stdbool.h>
 
 #include "rte_vhost.h"
+#include "rte_vdpa.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 */
@@ -74,9 +79,6 @@ struct rte_vdpa_device {
 };
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Register a vdpa device
  *
  * @param rte_dev
@@ -86,15 +88,11 @@ struct rte_vdpa_device {
  * @return
  *  vDPA device pointer on success, NULL on failure
  */
-__rte_experimental
 struct rte_vdpa_device *
 rte_vdpa_register_device(struct rte_device *rte_dev,
                struct rte_vdpa_dev_ops *ops);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Unregister a vdpa device
  *
  * @param dev
@@ -102,31 +100,25 @@ rte_vdpa_register_device(struct rte_device *rte_dev,
  * @return
  *  device id on success, -1 on failure
  */
-__rte_experimental
 int
 rte_vdpa_unregister_device(struct rte_vdpa_device *dev);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Enable/Disable host notifier mapping for a vdpa port.
  *
  * @param vid
  *  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
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Synchronize the used ring from mediated ring to guest, log dirty
  * page for each writeable buffer, caller should handle the used
  * ring logging before device stop.
@@ -140,7 +132,6 @@ rte_vhost_host_notifier_ctrl(int vid, bool enable);
  * @return
  *  number of synced used entries on success, -1 on failure
  */
-__rte_experimental
 int
 rte_vdpa_relay_vring_used(int vid, uint16_t qid, void *vring_m);