vmbus_reg.h (307448) | vmbus_reg.h (307455) |
---|---|
1/*- 2 * Copyright (c) 2016 Microsoft Corp. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 9 unchanged lines hidden (view full) --- 18 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * | 1/*- 2 * Copyright (c) 2016 Microsoft Corp. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 9 unchanged lines hidden (view full) --- 18 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * |
26 * $FreeBSD: stable/11/sys/dev/hyperv/vmbus/vmbus_reg.h 307448 2016-10-17 01:47:49Z sephe $ | 26 * $FreeBSD: stable/11/sys/dev/hyperv/vmbus/vmbus_reg.h 307455 2016-10-17 02:30:45Z sephe $ |
27 */ 28 29#ifndef _VMBUS_REG_H_ 30#define _VMBUS_REG_H_ 31 32#include <sys/param.h> | 27 */ 28 29#ifndef _VMBUS_REG_H_ 30#define _VMBUS_REG_H_ 31 32#include <sys/param.h> |
33#include <dev/hyperv/vmbus/hyperv_reg.h> | |
34#include <dev/hyperv/include/hyperv.h> /* XXX for hyperv_guid */ | 33#include <dev/hyperv/include/hyperv.h> /* XXX for hyperv_guid */ |
34#include <dev/hyperv/include/vmbus.h> 35#include <dev/hyperv/vmbus/hyperv_reg.h> |
|
35 36/* 37 * Hyper-V SynIC message format. 38 */ 39 40#define VMBUS_MSG_DSIZE_MAX 240 41#define VMBUS_MSG_SIZE 256 42 --- 60 unchanged lines hidden (view full) --- 103/* 104 * Channel 105 */ 106 107#define VMBUS_CHAN_MAX_COMPAT 256 108#define VMBUS_CHAN_MAX (VMBUS_EVTFLAG_LEN * VMBUS_EVTFLAGS_MAX) 109 110/* | 36 37/* 38 * Hyper-V SynIC message format. 39 */ 40 41#define VMBUS_MSG_DSIZE_MAX 240 42#define VMBUS_MSG_SIZE 256 43 --- 60 unchanged lines hidden (view full) --- 104/* 105 * Channel 106 */ 107 108#define VMBUS_CHAN_MAX_COMPAT 256 109#define VMBUS_CHAN_MAX (VMBUS_EVTFLAG_LEN * VMBUS_EVTFLAGS_MAX) 110 111/* |
111 * GPA range. | 112 * Channel packets |
112 */ | 113 */ |
113struct vmbus_gpa_range { 114 uint32_t gpa_len; 115 uint32_t gpa_ofs; 116 uint64_t gpa_page[]; | 114 115#define VMBUS_CHANPKT_SIZE_SHIFT 3 116#define VMBUS_CHANPKT_SIZE_ALIGN (1 << VMBUS_CHANPKT_SIZE_SHIFT) 117 118struct vmbus_chanpkt_hdr { 119 uint16_t cph_type; 120 uint16_t cph_data_ofs; /* in 8 bytes */ 121 uint16_t cph_len; /* in 8 bytes */ 122 uint16_t cph_flags; 123 uint64_t cph_xactid; |
117} __packed; 118 | 124} __packed; 125 |
126struct vmbus_chanpkt { 127 struct vmbus_chanpkt_hdr cp_hdr; 128} __packed; 129 130struct vmbus_chanpkt_sglist { 131 struct vmbus_chanpkt_hdr cp_hdr; 132 uint32_t cp_rsvd; 133 uint32_t cp_gpa_cnt; 134 struct vmbus_gpa cp_gpa[]; 135} __packed; 136 137struct vmbus_chanpkt_prplist { 138 struct vmbus_chanpkt_hdr cp_hdr; 139 uint32_t cp_rsvd; 140 uint32_t cp_range_cnt; 141 struct vmbus_gpa_range cp_range[]; 142} __packed; 143 |
|
119/* 120 * Channel messages 121 * - Embedded in vmbus_message.msg_data, e.g. response and notification. 122 * - Embedded in hypercall_postmsg_in.hc_data, e.g. request. 123 */ 124 125#define VMBUS_CHANMSG_TYPE_CHOFFER 1 /* NOTE */ 126#define VMBUS_CHANMSG_TYPE_CHRESCIND 2 /* NOTE */ --- 152 unchanged lines hidden --- | 144/* 145 * Channel messages 146 * - Embedded in vmbus_message.msg_data, e.g. response and notification. 147 * - Embedded in hypercall_postmsg_in.hc_data, e.g. request. 148 */ 149 150#define VMBUS_CHANMSG_TYPE_CHOFFER 1 /* NOTE */ 151#define VMBUS_CHANMSG_TYPE_CHRESCIND 2 /* NOTE */ --- 152 unchanged lines hidden --- |