aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/hyperv/include
diff options
context:
space:
mode:
authorSepherosa Ziehau <sephe@FreeBSD.org>2016-11-25 09:13:10 +0000
committerSepherosa Ziehau <sephe@FreeBSD.org>2016-11-25 09:13:10 +0000
commit2641e757426b0b92d46421eeceb63f24ac002566 (patch)
treeb2544e2fbeafc60579b74657633e0f48b157624d /sys/dev/hyperv/include
parent892b35bc36c3b931d99301cbf751c503726db0ce (diff)
Notes
Diffstat (limited to 'sys/dev/hyperv/include')
-rw-r--r--sys/dev/hyperv/include/vmbus.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/sys/dev/hyperv/include/vmbus.h b/sys/dev/hyperv/include/vmbus.h
index 9671c8ee6d47..5fd9676c7053 100644
--- a/sys/dev/hyperv/include/vmbus.h
+++ b/sys/dev/hyperv/include/vmbus.h
@@ -131,6 +131,7 @@ vmbus_get_channel(device_t dev)
/*
* vmbus_chan_open_br()
+ *
* Return values:
* 0 Succeeded.
* EISCONN Failed, and the memory passed through 'br' is still
@@ -139,6 +140,24 @@ vmbus_get_channel(device_t dev)
* other values Failed. The memory passed through 'br' is no longer
* connected. Callers are free to do anything with the
* memory passed through 'br'.
+ *
+ *
+ *
+ * vmbus_chan_close_direct()
+ *
+ * NOTE:
+ * Callers of this function _must_ make sure to close all sub-channels before
+ * closing the primary channel.
+ *
+ * Return values:
+ * 0 Succeeded.
+ * EISCONN Failed, and the memory associated with the bufring
+ * is still connected. Callers must _not_ free the the
+ * memory associated with the bufring, if this error
+ * happens.
+ * other values Failed. The memory associated with the bufring is
+ * no longer connected. Callers are free to do anything
+ * with the memory associated with the bufring.
*/
int vmbus_chan_open(struct vmbus_channel *chan,
int txbr_size, int rxbr_size, const void *udata, int udlen,
@@ -147,6 +166,7 @@ int vmbus_chan_open_br(struct vmbus_channel *chan,
const struct vmbus_chan_br *cbr, const void *udata,
int udlen, vmbus_chan_callback_t cb, void *cbarg);
void vmbus_chan_close(struct vmbus_channel *chan);
+int vmbus_chan_close_direct(struct vmbus_channel *chan);
void vmbus_chan_intr_drain(struct vmbus_channel *chan);
void vmbus_chan_run_task(struct vmbus_channel *chan,
struct task *task);