hyperv.h (307451) | hyperv.h (307453) |
---|---|
1/*- 2 * Copyright (c) 2009-2012,2016 Microsoft Corp. 3 * Copyright (c) 2012 NetApp Inc. 4 * Copyright (c) 2012 Citrix Inc. 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions --- 11 unchanged lines hidden (view full) --- 20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 * | 1/*- 2 * Copyright (c) 2009-2012,2016 Microsoft Corp. 3 * Copyright (c) 2012 NetApp Inc. 4 * Copyright (c) 2012 Citrix Inc. 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions --- 11 unchanged lines hidden (view full) --- 20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 * |
28 * $FreeBSD: stable/11/sys/dev/hyperv/include/hyperv.h 307451 2016-10-17 02:12:49Z sephe $ | 28 * $FreeBSD: stable/11/sys/dev/hyperv/include/hyperv.h 307453 2016-10-17 02:23:05Z sephe $ |
29 */ 30 31/** 32 * HyperV definitions for messages that are sent between instances of the 33 * Channel Management Library in separate partitions, or in some cases, 34 * back to itself. 35 */ 36 --- 215 unchanged lines hidden (view full) --- 252 253 /* 254 * These are based on the offer_msg.monitor_id. 255 * Save it here for easy access. 256 */ 257 int ch_montrig_idx; /* MNF trig index */ 258 uint32_t ch_montrig_mask;/* MNF trig mask */ 259 | 29 */ 30 31/** 32 * HyperV definitions for messages that are sent between instances of the 33 * Channel Management Library in separate partitions, or in some cases, 34 * back to itself. 35 */ 36 --- 215 unchanged lines hidden (view full) --- 252 253 /* 254 * These are based on the offer_msg.monitor_id. 255 * Save it here for easy access. 256 */ 257 int ch_montrig_idx; /* MNF trig index */ 258 uint32_t ch_montrig_mask;/* MNF trig mask */ 259 |
260 uint32_t ring_buffer_gpadl_handle; | |
261 /* | 260 /* |
262 * Allocated memory for ring buffer 263 */ 264 void* ring_buffer_pages; 265 unsigned long ring_buffer_size; 266 uint32_t ring_buffer_page_count; 267 /* | |
268 * send to parent 269 */ 270 hv_vmbus_ring_buffer_info outbound; 271 /* 272 * receive from parent 273 */ 274 hv_vmbus_ring_buffer_info inbound; 275 --- 31 unchanged lines hidden (view full) --- 307 308 /* 309 * Driver private data 310 */ 311 void *hv_chan_priv1; 312 void *hv_chan_priv2; 313 void *hv_chan_priv3; 314 | 261 * send to parent 262 */ 263 hv_vmbus_ring_buffer_info outbound; 264 /* 265 * receive from parent 266 */ 267 hv_vmbus_ring_buffer_info inbound; 268 --- 31 unchanged lines hidden (view full) --- 300 301 /* 302 * Driver private data 303 */ 304 void *hv_chan_priv1; 305 void *hv_chan_priv2; 306 void *hv_chan_priv3; 307 |
308 void *ch_bufring; /* TX+RX bufrings */ 309 struct hyperv_dma ch_bufring_dma; 310 uint32_t ch_bufring_gpadl; 311 |
|
315 struct task ch_detach_task; 316 TAILQ_ENTRY(hv_vmbus_channel) ch_prilink; /* primary chan link */ 317 uint32_t ch_subidx; /* subchan index */ 318 volatile uint32_t ch_stflags; /* atomic-op */ 319 /* VMBUS_CHAN_ST_ */ 320 struct hyperv_guid ch_guid_type; 321 struct hyperv_guid ch_guid_inst; 322 --- 81 unchanged lines hidden (view full) --- 404 /* page-size multiple */ 405 uint32_t size, 406 uint32_t* gpadl_handle); 407 408int hv_vmbus_channel_teardown_gpdal( 409 hv_vmbus_channel* channel, 410 uint32_t gpadl_handle); 411 | 312 struct task ch_detach_task; 313 TAILQ_ENTRY(hv_vmbus_channel) ch_prilink; /* primary chan link */ 314 uint32_t ch_subidx; /* subchan index */ 315 volatile uint32_t ch_stflags; /* atomic-op */ 316 /* VMBUS_CHAN_ST_ */ 317 struct hyperv_guid ch_guid_type; 318 struct hyperv_guid ch_guid_inst; 319 --- 81 unchanged lines hidden (view full) --- 401 /* page-size multiple */ 402 uint32_t size, 403 uint32_t* gpadl_handle); 404 405int hv_vmbus_channel_teardown_gpdal( 406 hv_vmbus_channel* channel, 407 uint32_t gpadl_handle); 408 |
409int vmbus_chan_gpadl_connect(struct hv_vmbus_channel *chan, 410 bus_addr_t paddr, int size, uint32_t *gpadl); 411 |
|
412struct hv_vmbus_channel* vmbus_select_outgoing_channel(struct hv_vmbus_channel *promary); 413 414void vmbus_channel_cpu_set(struct hv_vmbus_channel *chan, int cpu); 415void vmbus_channel_cpu_rr(struct hv_vmbus_channel *chan); 416struct hv_vmbus_channel ** 417 vmbus_get_subchan(struct hv_vmbus_channel *pri_chan, int subchan_cnt); 418void vmbus_rel_subchan(struct hv_vmbus_channel **subchan, int subchan_cnt); 419void vmbus_drain_subchan(struct hv_vmbus_channel *pri_chan); --- 19 unchanged lines hidden --- | 412struct hv_vmbus_channel* vmbus_select_outgoing_channel(struct hv_vmbus_channel *promary); 413 414void vmbus_channel_cpu_set(struct hv_vmbus_channel *chan, int cpu); 415void vmbus_channel_cpu_rr(struct hv_vmbus_channel *chan); 416struct hv_vmbus_channel ** 417 vmbus_get_subchan(struct hv_vmbus_channel *pri_chan, int subchan_cnt); 418void vmbus_rel_subchan(struct hv_vmbus_channel **subchan, int subchan_cnt); 419void vmbus_drain_subchan(struct hv_vmbus_channel *pri_chan); --- 19 unchanged lines hidden --- |