4 void xen_preinit(void);
5 void xen_ramsize_preinit(void);
6 void xen_hypercall_setup(void);
7 void xen_biostable_setup(void);
9 extern unsigned long xen_hypercall_page;
11 #define _hypercall0(type, name) \
13 unsigned long __hentry = xen_hypercall_page+__HYPERVISOR_##name*32; \
23 #define _hypercall1(type, name, a1) \
25 unsigned long __hentry = xen_hypercall_page+__HYPERVISOR_##name*32; \
29 : "=a" (__res), "=b" (__ign1) \
30 : "0" (__hentry), "1" ((long)(a1)) \
35 #define _hypercall2(type, name, a1, a2) \
37 unsigned long __hentry = xen_hypercall_page+__HYPERVISOR_##name*32; \
38 long __res, __ign1, __ign2; \
41 : "=a" (__res), "=b" (__ign1), "=c" (__ign2) \
42 : "0" (__hentry), "1" ((long)(a1)), "2" ((long)(a2)) \
47 #define _hypercall3(type, name, a1, a2, a3) \
49 unsigned long __hentry = xen_hypercall_page+__HYPERVISOR_##name*32; \
50 long __res, __ign1, __ign2, __ign3; \
53 : "=a" (__res), "=b" (__ign1), "=c" (__ign2), \
55 : "0" (__hentry), "1" ((long)(a1)), "2" ((long)(a2)), \
61 #define _hypercall4(type, name, a1, a2, a3, a4) \
63 unsigned long __hentry = xen_hypercall_page+__HYPERVISOR_##name*32; \
64 long __res, __ign1, __ign2, __ign3, __ign4; \
67 : "=a" (__res), "=b" (__ign1), "=c" (__ign2), \
68 "=d" (__ign3), "=S" (__ign4) \
69 : "0" (__hentry), "1" ((long)(a1)), "2" ((long)(a2)), \
70 "3" ((long)(a3)), "4" ((long)(a4)) \
75 #define _hypercall5(type, name, a1, a2, a3, a4, a5) \
77 unsigned long __hentry = xen_hypercall_page+__HYPERVISOR_##name*32; \
78 long __res, __ign1, __ign2, __ign3, __ign4, __ign5; \
81 : "=a" (__res), "=b" (__ign1), "=c" (__ign2), \
82 "=d" (__ign3), "=S" (__ign4), "=D" (__ign5) \
83 : "0" (__hentry), "1" ((long)(a1)), "2" ((long)(a2)), \
84 "3" ((long)(a3)), "4" ((long)(a4)), \
90 /******************************************************************************
92 * The following interface definitions are taken from Xen and have the
95 * Permission is hereby granted, free of charge, to any person obtaining a copy
96 * of this software and associated documentation files (the "Software"), to
97 * deal in the Software without restriction, including without limitation the
98 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
99 * sell copies of the Software, and to permit persons to whom the Software is
100 * furnished to do so, subject to the following conditions:
102 * The above copyright notice and this permission notice shall be included in
103 * all copies or substantial portions of the Software.
105 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
106 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
107 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
108 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
109 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
110 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
111 * DEALINGS IN THE SOFTWARE.
116 #define __HYPERVISOR_xen_version 17
120 /* arg == xen_extraversion_t. */
121 #define XENVER_extraversion 1
122 typedef char xen_extraversion_t[16];
123 #define XEN_EXTRAVERSION_LEN (sizeof(xen_extraversion_t))