vmm_ioport.h revision 268976
1194701Srpaulo/*-
2194701Srpaulo * Copyright (c) 2014 Tycho Nightingale <tycho.nightingale@pluribusnetworks.com>
3194701Srpaulo * All rights reserved.
4194701Srpaulo *
5194701Srpaulo * Redistribution and use in source and binary forms, with or without
6194701Srpaulo * modification, are permitted provided that the following conditions
7194701Srpaulo * are met:
8194701Srpaulo * 1. Redistributions of source code must retain the above copyright
9194701Srpaulo *    notice, this list of conditions and the following disclaimer.
10194701Srpaulo * 2. Redistributions in binary form must reproduce the above copyright
11194701Srpaulo *    notice, this list of conditions and the following disclaimer in the
12194701Srpaulo *    documentation and/or other materials provided with the distribution.
13194701Srpaulo *
14194701Srpaulo * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
15194701Srpaulo * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16194701Srpaulo * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17194701Srpaulo * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18194701Srpaulo * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19194701Srpaulo * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20194701Srpaulo * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21194701Srpaulo * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22194701Srpaulo * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23194701Srpaulo * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24194701Srpaulo * SUCH DAMAGE.
25194701Srpaulo *
26194701Srpaulo * $FreeBSD: stable/10/sys/amd64/vmm/vmm_ioport.h 268976 2014-07-22 04:39:16Z jhb $
27194701Srpaulo */
28194701Srpaulo
29194701Srpaulo#ifndef	_VMM_IOPORT_H_
30194701Srpaulo#define	_VMM_IOPORT_H_
31194701Srpaulo
32194701Srpaulotypedef int (*ioport_handler_func_t)(void *vm, int vcpuid,
33194701Srpaulo    bool in, int port, int bytes, uint32_t *val);
34194701Srpaulo
35194701Srpauloint vm_handle_inout(struct vm *vm, int vcpuid, struct vm_exit *vme, bool *retu);
36194701Srpaulo
37194701Srpaulo#endif	/* _VMM_IOPORT_H_ */
38194701Srpaulo