xref: /freebsd/sys/dev/hyperv/vmbus/i386/vmbus_vector.S (revision 95ee2897e98f5d444f26ed2334cc7c439f9c16c6)
1b7bb4816SSepherosa Ziehau/*-
2b7bb4816SSepherosa Ziehau * Copyright (c) 2016 Microsoft Corp.
3b7bb4816SSepherosa Ziehau * All rights reserved.
4b7bb4816SSepherosa Ziehau *
5b7bb4816SSepherosa Ziehau * Redistribution and use in source and binary forms, with or without
6b7bb4816SSepherosa Ziehau * modification, are permitted provided that the following conditions
7b7bb4816SSepherosa Ziehau * are met:
8b7bb4816SSepherosa Ziehau * 1. Redistributions of source code must retain the above copyright
9b7bb4816SSepherosa Ziehau *    notice unmodified, this list of conditions, and the following
10b7bb4816SSepherosa Ziehau *    disclaimer.
11b7bb4816SSepherosa Ziehau * 2. Redistributions in binary form must reproduce the above copyright
12b7bb4816SSepherosa Ziehau *    notice, this list of conditions and the following disclaimer in the
13b7bb4816SSepherosa Ziehau *    documentation and/or other materials provided with the distribution.
14b7bb4816SSepherosa Ziehau *
15b7bb4816SSepherosa Ziehau * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16b7bb4816SSepherosa Ziehau * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17b7bb4816SSepherosa Ziehau * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18b7bb4816SSepherosa Ziehau * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19b7bb4816SSepherosa Ziehau * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20b7bb4816SSepherosa Ziehau * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21b7bb4816SSepherosa Ziehau * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22b7bb4816SSepherosa Ziehau * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23b7bb4816SSepherosa Ziehau * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24b7bb4816SSepherosa Ziehau * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25b7bb4816SSepherosa Ziehau */
26b7bb4816SSepherosa Ziehau
27d86c1f0dSKonstantin Belousov#include "assym.inc"
28d86c1f0dSKonstantin Belousov
29d86c1f0dSKonstantin Belousov#include <machine/psl.h>
30b7bb4816SSepherosa Ziehau#include <machine/asmacros.h>
31b7bb4816SSepherosa Ziehau#include <machine/specialreg.h>
32b7bb4816SSepherosa Ziehau
33b7bb4816SSepherosa Ziehau/*
34b7bb4816SSepherosa Ziehau * This is the Hyper-V vmbus channel direct callback interrupt.
35b7bb4816SSepherosa Ziehau * Only used when it is running on Hyper-V.
3697993d1eSMark Johnston *
37*b0e54e61SWarner Losh * Note that this file is not assembled directly, it is included into
3897993d1eSMark Johnston * i386/exception.s.
39b7bb4816SSepherosa Ziehau */
40b7bb4816SSepherosa Ziehau	.text
41b7bb4816SSepherosa Ziehau	SUPERALIGN_TEXT
42bd50262fSKonstantin BelousovIDTVEC(vmbus_isr_pti)
43b7bb4816SSepherosa ZiehauIDTVEC(vmbus_isr)
44b7bb4816SSepherosa Ziehau	PUSH_FRAME
45b7bb4816SSepherosa Ziehau	SET_KERNEL_SREGS
46b7bb4816SSepherosa Ziehau	cld
47d86c1f0dSKonstantin Belousov	KENTER
48b7bb4816SSepherosa Ziehau	pushl	%esp
4997993d1eSMark Johnston	mov	$vmbus_handle_intr, %eax
5097993d1eSMark Johnston	call	*%eax
51b7bb4816SSepherosa Ziehau	add	$4, %esp
52b7bb4816SSepherosa Ziehau	jmp	doreti
53