New upstream version 18.11.2
[deb_dpdk.git] / drivers / bus / vmbus / private.h
index 9964fc4..f19b14e 100644 (file)
 #include <sys/uio.h>
 #include <rte_log.h>
 #include <rte_vmbus_reg.h>
+#include <rte_bus_vmbus.h>
 
 #ifndef PAGE_SIZE
 #define PAGE_SIZE      4096
 #endif
 
+extern struct rte_vmbus_bus rte_vmbus_bus;
+
 extern int vmbus_logtype_bus;
 #define VMBUS_LOG(level, fmt, args...) \
        rte_log(RTE_LOG_ ## level, vmbus_logtype_bus, "%s(): " fmt "\n", \
@@ -42,6 +45,7 @@ struct mapped_vmbus_resource {
 
        rte_uuid_t id;
        int nb_maps;
+       struct vmbus_channel *primary;
        struct vmbus_map maps[VMBUS_MAX_RESOURCE];
        char path[PATH_MAX];
 };
@@ -66,6 +70,9 @@ struct vmbus_channel {
 
 #define VMBUS_MAX_CHANNELS     64
 
+struct rte_devargs *
+vmbus_devargs_lookup(struct rte_vmbus_device *dev);
+
 int vmbus_chan_create(const struct rte_vmbus_device *device,
                      uint16_t relid, uint16_t subid, uint8_t monitor_id,
                      struct vmbus_channel **new_chan);
@@ -101,6 +108,8 @@ bool vmbus_uio_subchannels_supported(const struct rte_vmbus_device *dev,
 int vmbus_uio_get_subchan(struct vmbus_channel *primary,
                          struct vmbus_channel **subchan);
 int vmbus_uio_map_rings(struct vmbus_channel *chan);
+int vmbus_uio_map_secondary_subchan(const struct rte_vmbus_device *dev,
+                                   const struct vmbus_channel *chan);
 
 void vmbus_br_setup(struct vmbus_br *br, void *buf, unsigned int blen);