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# notice unmodified, this list of conditions, and the following 10# disclaimer. 11# 2. Redistributions in binary form must reproduce the above copyright 12# notice, this list of conditions and the following disclaimer in the 13# documentation and/or other materials provided with the distribution. 14# 15# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 16# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 17# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 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# 27 28#include <sys/param.h> 29#include <sys/bus.h> 30 31INTERFACE vmbus; 32 33HEADER { 34 struct hyperv_guid; 35 struct taskqueue; 36}; 37 38METHOD uint32_t get_version { 39 device_t bus; 40 device_t dev; 41}; 42 43METHOD int probe_guid { 44 device_t bus; 45 device_t dev; 46 const struct hyperv_guid *guid; 47}; 48 49METHOD uint32_t get_vcpu_id { 50 device_t bus; 51 device_t dev; 52 int cpu; 53}; 54 55METHOD struct taskqueue * get_event_taskq { 56 device_t bus; 57 device_t dev; 58 int cpu; 59}; 60