diff options
| author | Sepherosa Ziehau <sephe@FreeBSD.org> | 2016-11-25 09:13:10 +0000 |
|---|---|---|
| committer | Sepherosa Ziehau <sephe@FreeBSD.org> | 2016-11-25 09:13:10 +0000 |
| commit | 2641e757426b0b92d46421eeceb63f24ac002566 (patch) | |
| tree | b2544e2fbeafc60579b74657633e0f48b157624d /sys/dev/hyperv/include | |
| parent | 892b35bc36c3b931d99301cbf751c503726db0ce (diff) | |
Notes
Diffstat (limited to 'sys/dev/hyperv/include')
| -rw-r--r-- | sys/dev/hyperv/include/vmbus.h | 20 |
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); |
