xref: /freebsd/sys/xen/privcmd.h (revision bf7313e3b79a97459a499380221cde238271b028)
1*bf7313e3SRoger Pau Monné /******************************************************************************
2*bf7313e3SRoger Pau Monné  * privcmd.h
3*bf7313e3SRoger Pau Monné  *
4*bf7313e3SRoger Pau Monné  * Interface to /proc/xen/privcmd.
5*bf7313e3SRoger Pau Monné  *
6*bf7313e3SRoger Pau Monné  * Copyright (c) 2003-2005, K A Fraser
7*bf7313e3SRoger Pau Monné  *
8*bf7313e3SRoger Pau Monné  * This program is free software; you can redistribute it and/or
9*bf7313e3SRoger Pau Monné  * modify it under the terms of the GNU General Public License version 2
10*bf7313e3SRoger Pau Monné  * as published by the Free Software Foundation; or, when distributed
11*bf7313e3SRoger Pau Monné  * separately from the Linux kernel or incorporated into other
12*bf7313e3SRoger Pau Monné  * software packages, subject to the following license:
13*bf7313e3SRoger Pau Monné  *
14*bf7313e3SRoger Pau Monné  * Permission is hereby granted, free of charge, to any person obtaining a copy
15*bf7313e3SRoger Pau Monné  * of this source file (the "Software"), to deal in the Software without
16*bf7313e3SRoger Pau Monné  * restriction, including without limitation the rights to use, copy, modify,
17*bf7313e3SRoger Pau Monné  * merge, publish, distribute, sublicense, and/or sell copies of the Software,
18*bf7313e3SRoger Pau Monné  * and to permit persons to whom the Software is furnished to do so, subject to
19*bf7313e3SRoger Pau Monné  * the following conditions:
20*bf7313e3SRoger Pau Monné  *
21*bf7313e3SRoger Pau Monné  * The above copyright notice and this permission notice shall be included in
22*bf7313e3SRoger Pau Monné  * all copies or substantial portions of the Software.
23*bf7313e3SRoger Pau Monné  *
24*bf7313e3SRoger Pau Monné  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
25*bf7313e3SRoger Pau Monné  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
26*bf7313e3SRoger Pau Monné  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
27*bf7313e3SRoger Pau Monné  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
28*bf7313e3SRoger Pau Monné  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
29*bf7313e3SRoger Pau Monné  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
30*bf7313e3SRoger Pau Monné  * IN THE SOFTWARE.
31*bf7313e3SRoger Pau Monné  *
32*bf7313e3SRoger Pau Monné  * $FreeBSD$
33*bf7313e3SRoger Pau Monné  */
34*bf7313e3SRoger Pau Monné 
35*bf7313e3SRoger Pau Monné #ifndef __XEN_PRIVCMD_H__
36*bf7313e3SRoger Pau Monné #define __XEN_PRIVCMD_H__
37*bf7313e3SRoger Pau Monné 
38*bf7313e3SRoger Pau Monné struct ioctl_privcmd_hypercall
39*bf7313e3SRoger Pau Monné {
40*bf7313e3SRoger Pau Monné 	unsigned long op; /* hypercall number */
41*bf7313e3SRoger Pau Monné 	unsigned long arg[5]; /* arguments */
42*bf7313e3SRoger Pau Monné 	long retval; /* return value */
43*bf7313e3SRoger Pau Monné };
44*bf7313e3SRoger Pau Monné 
45*bf7313e3SRoger Pau Monné struct ioctl_privcmd_mmapbatch {
46*bf7313e3SRoger Pau Monné 	int num;     /* number of pages to populate */
47*bf7313e3SRoger Pau Monné 	domid_t dom; /* target domain */
48*bf7313e3SRoger Pau Monné 	unsigned long addr;  /* virtual address */
49*bf7313e3SRoger Pau Monné 	const xen_pfn_t *arr; /* array of mfns */
50*bf7313e3SRoger Pau Monné 	int *err; /* array of error codes */
51*bf7313e3SRoger Pau Monné };
52*bf7313e3SRoger Pau Monné 
53*bf7313e3SRoger Pau Monné #define IOCTL_PRIVCMD_HYPERCALL					\
54*bf7313e3SRoger Pau Monné 	_IOWR('E', 0, struct ioctl_privcmd_hypercall)
55*bf7313e3SRoger Pau Monné #define IOCTL_PRIVCMD_MMAPBATCH					\
56*bf7313e3SRoger Pau Monné 	_IOWR('E', 1, struct ioctl_privcmd_mmapbatch)
57*bf7313e3SRoger Pau Monné 
58*bf7313e3SRoger Pau Monné #endif /* !__XEN_PRIVCMD_H__ */
59