1302629Ssephe#-
2302629Ssephe# Copyright (c) 2016 Microsoft Corp.
3302629Ssephe# All rights reserved.
4302629Ssephe#
5302629Ssephe# Redistribution and use in source and binary forms, with or without
6302629Ssephe# modification, are permitted provided that the following conditions
7302629Ssephe# are met:
8302629Ssephe# 1. Redistributions of source code must retain the above copyright
9302629Ssephe#    notice unmodified, this list of conditions, and the following
10302629Ssephe#    disclaimer.
11302629Ssephe# 2. Redistributions in binary form must reproduce the above copyright
12302629Ssephe#    notice, this list of conditions and the following disclaimer in the
13302629Ssephe#    documentation and/or other materials provided with the distribution.
14302629Ssephe#
15302629Ssephe# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16302629Ssephe# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17302629Ssephe# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18302629Ssephe# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19302629Ssephe# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20302629Ssephe# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21302629Ssephe# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22302629Ssephe# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23302629Ssephe# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24302629Ssephe# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25302629Ssephe#
26302629Ssephe# $FreeBSD: stable/11/sys/dev/hyperv/vmbus/vmbus_if.m 311368 2017-01-05 05:51:00Z sephe $
27302629Ssephe#
28302629Ssephe
29302629Ssephe#include <sys/param.h>
30302629Ssephe#include <sys/bus.h>
31302629Ssephe
32302629SsepheINTERFACE vmbus;
33302629Ssephe
34307307SsepheHEADER {
35307448Ssephe	struct hyperv_guid;
36311368Ssephe	struct taskqueue;
37307307Ssephe};
38307307Ssephe
39302629SsepheMETHOD uint32_t get_version {
40302629Ssephe	device_t bus;
41302629Ssephe	device_t dev;
42302629Ssephe};
43307307Ssephe
44307307SsepheMETHOD int probe_guid {
45307307Ssephe	device_t bus;
46307307Ssephe	device_t dev;
47307448Ssephe	const struct hyperv_guid *guid;
48307307Ssephe};
49309312Sdexuan
50309312SdexuanMETHOD uint32_t get_vcpu_id {
51309312Sdexuan	device_t bus;
52309312Sdexuan	device_t dev;
53309312Sdexuan	int cpu;
54309312Sdexuan};
55311368Ssephe
56311368SsepheMETHOD struct taskqueue * get_event_taskq {
57311368Ssephe	device_t bus;
58311368Ssephe	device_t dev;
59311368Ssephe	int cpu;
60311368Ssephe};
61