net/mlx5: extend flow mark support
[dpdk.git] / drivers / bus / vmbus / rte_bus_vmbus.h
index 0100f80..4cf73ce 100644 (file)
@@ -337,12 +337,23 @@ int rte_vmbus_chan_recv(struct vmbus_channel *chan,
  * @param len
  *     Pointer to size of receive buffer (in/out)
  * @return
- *   On success, returns 0
+ *   On success, returns number of bytes read.
  *   On failure, returns negative errno.
  */
 int rte_vmbus_chan_recv_raw(struct vmbus_channel *chan,
                            void *data, uint32_t *len);
 
+/**
+ * Notify host of bytes read (after recv_raw)
+ * Signals host if required.
+ *
+ * @param channel
+ *     Pointer to vmbus_channel structure.
+ * @param bytes_read
+ *     Number of bytes read since last signal
+ */
+void rte_vmbus_chan_signal_read(struct vmbus_channel *chan, uint32_t bytes_read);
+
 /**
  * Determine sub channel index of the given channel
  *
@@ -353,6 +364,21 @@ int rte_vmbus_chan_recv_raw(struct vmbus_channel *chan,
  */
 uint16_t rte_vmbus_sub_channel_index(const struct vmbus_channel *chan);
 
+/**
+ * Set the host monitor latency hint
+ *
+ * @param dev
+ *    VMBUS device
+ * @param chan
+ *     Pointer to vmbus_channel structure.
+ * @param latency
+ *     Approximate wait period between hypervisor examinations of
+ *     the trigger page (in nanoseconds).
+ */
+void rte_vmbus_set_latency(const struct rte_vmbus_device *dev,
+                          const struct vmbus_channel *chan,
+                          uint32_t latency);
+
 /**
  * Register a VMBUS driver.
  *
@@ -381,8 +407,7 @@ void rte_vmbus_unregister(struct rte_vmbus_driver *driver);
 
 /** Helper for VMBUS device registration from driver instance */
 #define RTE_PMD_REGISTER_VMBUS(nm, vmbus_drv)          \
-       RTE_INIT(vmbusinitfn_ ##nm);                    \
-       static void vmbusinitfn_ ##nm(void)             \
+       RTE_INIT(vmbusinitfn_ ##nm)                     \
        {                                               \
                (vmbus_drv).driver.name = RTE_STR(nm);  \
                rte_vmbus_register(&vmbus_drv);         \