Deleted Added
full compact
vmbus_reg.h (307310) vmbus_reg.h (307448)
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 307310 2016-10-14 09:10:41Z sephe $
26 * $FreeBSD: stable/11/sys/dev/hyperv/vmbus/vmbus_reg.h 307448 2016-10-17 01:47:49Z sephe $
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>
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 */
34
35/*
36 * Hyper-V SynIC message format.
37 */
38
39#define VMBUS_MSG_DSIZE_MAX 240
40#define VMBUS_MSG_SIZE 256
41

--- 70 unchanged lines hidden (view full) ---

112struct vmbus_gpa_range {
113 uint32_t gpa_len;
114 uint32_t gpa_ofs;
115 uint64_t gpa_page[];
116} __packed;
117
118/*
119 * Channel messages
35
36/*
37 * Hyper-V SynIC message format.
38 */
39
40#define VMBUS_MSG_DSIZE_MAX 240
41#define VMBUS_MSG_SIZE 256
42

--- 70 unchanged lines hidden (view full) ---

113struct vmbus_gpa_range {
114 uint32_t gpa_len;
115 uint32_t gpa_ofs;
116 uint64_t gpa_page[];
117} __packed;
118
119/*
120 * Channel messages
120 * - Embedded in vmbus_message.msg_data, e.g. response.
121 * - Embedded in vmbus_message.msg_data, e.g. response and notification.
121 * - Embedded in hypercall_postmsg_in.hc_data, e.g. request.
122 */
123
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 */
124#define VMBUS_CHANMSG_TYPE_CHREQUEST 3 /* REQ */
127#define VMBUS_CHANMSG_TYPE_CHREQUEST 3 /* REQ */
128#define VMBUS_CHANMSG_TYPE_CHOFFER_DONE 4 /* NOTE */
125#define VMBUS_CHANMSG_TYPE_CHOPEN 5 /* REQ */
126#define VMBUS_CHANMSG_TYPE_CHOPEN_RESP 6 /* RESP */
127#define VMBUS_CHANMSG_TYPE_CHCLOSE 7 /* REQ */
128#define VMBUS_CHANMSG_TYPE_GPADL_CONN 8 /* REQ */
129#define VMBUS_CHANMSG_TYPE_GPADL_SUBCONN 9 /* REQ */
130#define VMBUS_CHANMSG_TYPE_GPADL_CONNRESP 10 /* RESP */
131#define VMBUS_CHANMSG_TYPE_GPADL_DISCONN 11 /* REQ */
132#define VMBUS_CHANMSG_TYPE_GPADL_DISCONNRESP 12 /* RESP */
133#define VMBUS_CHANMSG_TYPE_CHFREE 13 /* REQ */
134#define VMBUS_CHANMSG_TYPE_CONNECT 14 /* REQ */
135#define VMBUS_CHANMSG_TYPE_CONNECT_RESP 15 /* RESP */
136#define VMBUS_CHANMSG_TYPE_DISCONNECT 16 /* REQ */
129#define VMBUS_CHANMSG_TYPE_CHOPEN 5 /* REQ */
130#define VMBUS_CHANMSG_TYPE_CHOPEN_RESP 6 /* RESP */
131#define VMBUS_CHANMSG_TYPE_CHCLOSE 7 /* REQ */
132#define VMBUS_CHANMSG_TYPE_GPADL_CONN 8 /* REQ */
133#define VMBUS_CHANMSG_TYPE_GPADL_SUBCONN 9 /* REQ */
134#define VMBUS_CHANMSG_TYPE_GPADL_CONNRESP 10 /* RESP */
135#define VMBUS_CHANMSG_TYPE_GPADL_DISCONN 11 /* REQ */
136#define VMBUS_CHANMSG_TYPE_GPADL_DISCONNRESP 12 /* RESP */
137#define VMBUS_CHANMSG_TYPE_CHFREE 13 /* REQ */
138#define VMBUS_CHANMSG_TYPE_CONNECT 14 /* REQ */
139#define VMBUS_CHANMSG_TYPE_CONNECT_RESP 15 /* RESP */
140#define VMBUS_CHANMSG_TYPE_DISCONNECT 16 /* REQ */
141#define VMBUS_CHANMSG_TYPE_MAX 22
137
138struct vmbus_chanmsg_hdr {
139 uint32_t chm_type; /* VMBUS_CHANMSG_TYPE_ */
140 uint32_t chm_rsvd;
141} __packed;
142
143/* VMBUS_CHANMSG_TYPE_CONNECT */
144struct vmbus_chanmsg_connect {

--- 91 unchanged lines hidden (view full) ---

236} __packed;
237
238/* VMBUS_CHANMSG_TYPE_CHFREE */
239struct vmbus_chanmsg_chfree {
240 struct vmbus_chanmsg_hdr chm_hdr;
241 uint32_t chm_chanid;
242} __packed;
243
142
143struct vmbus_chanmsg_hdr {
144 uint32_t chm_type; /* VMBUS_CHANMSG_TYPE_ */
145 uint32_t chm_rsvd;
146} __packed;
147
148/* VMBUS_CHANMSG_TYPE_CONNECT */
149struct vmbus_chanmsg_connect {

--- 91 unchanged lines hidden (view full) ---

241} __packed;
242
243/* VMBUS_CHANMSG_TYPE_CHFREE */
244struct vmbus_chanmsg_chfree {
245 struct vmbus_chanmsg_hdr chm_hdr;
246 uint32_t chm_chanid;
247} __packed;
248
249/* VMBUS_CHANMSG_TYPE_CHRESCIND */
250struct vmbus_chanmsg_chrescind {
251 struct vmbus_chanmsg_hdr chm_hdr;
252 uint32_t chm_chanid;
253} __packed;
254
255/* VMBUS_CHANMSG_TYPE_CHOFFER */
256struct vmbus_chanmsg_choffer {
257 struct vmbus_chanmsg_hdr chm_hdr;
258 struct hyperv_guid chm_chtype;
259 struct hyperv_guid chm_chinst;
260 uint64_t chm_chlat; /* unit: 100ns */
261 uint32_t chm_chrev;
262 uint32_t chm_svrctx_sz;
263 uint16_t chm_chflags;
264 uint16_t chm_mmio_sz; /* unit: MB */
265 uint8_t chm_udata[120];
266 uint16_t chm_subidx;
267 uint16_t chm_rsvd;
268 uint32_t chm_chanid;
269 uint8_t chm_montrig;
270 uint8_t chm_flags1; /* VMBUS_CHOFFER_FLAG1_ */
271 uint16_t chm_flags2;
272 uint32_t chm_connid;
273} __packed;
274CTASSERT(sizeof(struct vmbus_chanmsg_choffer) <= VMBUS_MSG_DSIZE_MAX);
275
276#define VMBUS_CHOFFER_FLAG1_HASMNF 0x01
277
244#endif /* !_VMBUS_REG_H_ */
278#endif /* !_VMBUS_REG_H_ */