Merge tag 'topic/drm-fixes-2015-07-16' of git://anongit.freedesktop.org/drm-intel...
[firefly-linux-kernel-4.4.55.git] / drivers / hv / hyperv_vmbus.h
index 2f30456d90a5dbb5ad7c0a99c7926fbf6554b1e0..cddc0c9f6bf9965a8e59bde34011896a762e07ba 100644 (file)
@@ -647,6 +647,7 @@ struct vmbus_connection {
 
        atomic_t next_gpadl_handle;
 
+       struct completion  unload_event;
        /*
         * Represents channel interrupts. Each bit position represents a
         * channel.  When a channel sends an interrupt via VMBUS, it finds its
@@ -741,6 +742,7 @@ void hv_vss_onchannelcallback(void *);
 int hv_fcopy_init(struct hv_util_service *);
 void hv_fcopy_deinit(void);
 void hv_fcopy_onchannelcallback(void *);
+void vmbus_initiate_unload(void);
 
 static inline void hv_poll_channel(struct vmbus_channel *channel,
                                   void (*cb)(void *))
@@ -755,4 +757,13 @@ static inline void hv_poll_channel(struct vmbus_channel *channel,
                cb(channel);
 }
 
+enum hvutil_device_state {
+       HVUTIL_DEVICE_INIT = 0,  /* driver is loaded, waiting for userspace */
+       HVUTIL_READY,            /* userspace is registered */
+       HVUTIL_HOSTMSG_RECEIVED, /* message from the host was received */
+       HVUTIL_USERSPACE_REQ,    /* request to userspace was sent */
+       HVUTIL_USERSPACE_RECV,   /* reply from userspace was received */
+       HVUTIL_DEVICE_DYING,     /* driver unload is in progress */
+};
+
 #endif /* _HYPERV_VMBUS_H */