vmbus.h revision 302876
1302876Ssephe/*-
2302876Ssephe * Copyright (c) 2016 Microsoft Corp.
3302876Ssephe * All rights reserved.
4302876Ssephe *
5302876Ssephe * Redistribution and use in source and binary forms, with or without
6302876Ssephe * modification, are permitted provided that the following conditions
7302876Ssephe * are met:
8302876Ssephe * 1. Redistributions of source code must retain the above copyright
9302876Ssephe *    notice unmodified, this list of conditions, and the following
10302876Ssephe *    disclaimer.
11302876Ssephe * 2. Redistributions in binary form must reproduce the above copyright
12302876Ssephe *    notice, this list of conditions and the following disclaimer in the
13302876Ssephe *    documentation and/or other materials provided with the distribution.
14302876Ssephe *
15302876Ssephe * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16302876Ssephe * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17302876Ssephe * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18302876Ssephe * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19302876Ssephe * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20302876Ssephe * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21302876Ssephe * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22302876Ssephe * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23302876Ssephe * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24302876Ssephe * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25302876Ssephe *
26302876Ssephe * $FreeBSD: head/sys/dev/hyperv/include/vmbus.h 302876 2016-07-15 06:29:19Z sephe $
27302876Ssephe */
28302876Ssephe
29302876Ssephe#ifndef _VMBUS_H_
30302876Ssephe#define _VMBUS_H_
31302876Ssephe
32302876Ssephe#include <sys/param.h>
33302876Ssephe
34302876Ssephe/* This is actually vmbus_gpa_range.gpa_page[1] */
35302876Ssephestruct vmbus_gpa {
36302876Ssephe	uint32_t	gpa_len;
37302876Ssephe	uint32_t	gpa_ofs;
38302876Ssephe	uint64_t	gpa_page;
39302876Ssephe} __packed;
40302876Ssephe
41302876Ssephe#define VMBUS_CHAN_SGLIST_MAX	32
42302876Ssephe
43302876Ssephestruct hv_vmbus_channel;
44302876Ssephe
45302876Ssepheint	vmbus_chan_send_sglist(struct hv_vmbus_channel *chan,
46302876Ssephe	    struct vmbus_gpa sg[], int sglen, void *data, int dlen,
47302876Ssephe	    uint64_t xactid);
48302876Ssephe
49302876Ssephe#endif	/* !_VMBUS_H_ */
50