/root/src/xen/xen/include/xen/hypercall.h
Line | Count | Source |
1 | | /****************************************************************************** |
2 | | * hypercall.h |
3 | | */ |
4 | | |
5 | | #ifndef __XEN_HYPERCALL_H__ |
6 | | #define __XEN_HYPERCALL_H__ |
7 | | |
8 | | #include <xen/types.h> |
9 | | #include <xen/time.h> |
10 | | #include <public/xen.h> |
11 | | #include <public/domctl.h> |
12 | | #include <public/sysctl.h> |
13 | | #include <public/platform.h> |
14 | | #include <public/event_channel.h> |
15 | | #include <public/tmem.h> |
16 | | #include <public/version.h> |
17 | | #include <public/pmu.h> |
18 | | #include <public/hvm/dm_op.h> |
19 | | #include <asm/hypercall.h> |
20 | | #include <xsm/xsm.h> |
21 | | |
22 | | extern long |
23 | | do_sched_op( |
24 | | int cmd, |
25 | | XEN_GUEST_HANDLE_PARAM(void) arg); |
26 | | |
27 | | extern long |
28 | | do_domctl( |
29 | | XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl); |
30 | | |
31 | | extern long |
32 | | arch_do_domctl( |
33 | | struct xen_domctl *domctl, struct domain *d, |
34 | | XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl); |
35 | | |
36 | | extern long |
37 | | do_sysctl( |
38 | | XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl); |
39 | | |
40 | | extern long |
41 | | arch_do_sysctl( |
42 | | struct xen_sysctl *sysctl, |
43 | | XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl); |
44 | | |
45 | | extern long |
46 | | do_platform_op( |
47 | | XEN_GUEST_HANDLE_PARAM(xen_platform_op_t) u_xenpf_op); |
48 | | |
49 | | /* |
50 | | * To allow safe resume of do_memory_op() after preemption, we need to know |
51 | | * at what point in the page list to resume. For this purpose I steal the |
52 | | * high-order bits of the @cmd parameter, which are otherwise unused and zero. |
53 | | * |
54 | | * Note that both of these values are effectively part of the ABI, even if |
55 | | * we don't need to make them a formal part of it: A guest suspended for |
56 | | * migration in the middle of a continuation would fail to work if resumed on |
57 | | * a hypervisor using different values. |
58 | | */ |
59 | 16 | #define MEMOP_EXTENT_SHIFT 6 /* cmd[:6] == start_extent */ |
60 | 12 | #define MEMOP_CMD_MASK ((1 << MEMOP_EXTENT_SHIFT) - 1) |
61 | | |
62 | | extern long |
63 | | do_memory_op( |
64 | | unsigned long cmd, |
65 | | XEN_GUEST_HANDLE_PARAM(void) arg); |
66 | | |
67 | | extern long |
68 | | do_multicall( |
69 | | XEN_GUEST_HANDLE_PARAM(multicall_entry_t) call_list, |
70 | | unsigned int nr_calls); |
71 | | |
72 | | extern long |
73 | | do_set_timer_op( |
74 | | s_time_t timeout); |
75 | | |
76 | | extern long |
77 | | do_event_channel_op( |
78 | | int cmd, XEN_GUEST_HANDLE_PARAM(void) arg); |
79 | | |
80 | | extern long |
81 | | do_xen_version( |
82 | | int cmd, |
83 | | XEN_GUEST_HANDLE_PARAM(void) arg); |
84 | | |
85 | | extern long |
86 | | do_console_io( |
87 | | int cmd, |
88 | | int count, |
89 | | XEN_GUEST_HANDLE_PARAM(char) buffer); |
90 | | |
91 | | extern long |
92 | | do_grant_table_op( |
93 | | unsigned int cmd, |
94 | | XEN_GUEST_HANDLE_PARAM(void) uop, |
95 | | unsigned int count); |
96 | | |
97 | | extern long |
98 | | do_vm_assist( |
99 | | unsigned int cmd, |
100 | | unsigned int type); |
101 | | |
102 | | extern long |
103 | | do_vcpu_op( |
104 | | int cmd, |
105 | | unsigned int vcpuid, |
106 | | XEN_GUEST_HANDLE_PARAM(void) arg); |
107 | | |
108 | | struct vcpu; |
109 | | extern long |
110 | | arch_do_vcpu_op(int cmd, |
111 | | struct vcpu *v, |
112 | | XEN_GUEST_HANDLE_PARAM(void) arg); |
113 | | |
114 | | extern long |
115 | | do_nmi_op( |
116 | | unsigned int cmd, |
117 | | XEN_GUEST_HANDLE_PARAM(void) arg); |
118 | | |
119 | | extern long |
120 | | do_hvm_op( |
121 | | unsigned long op, |
122 | | XEN_GUEST_HANDLE_PARAM(void) arg); |
123 | | |
124 | | extern long |
125 | | do_kexec_op( |
126 | | unsigned long op, |
127 | | XEN_GUEST_HANDLE_PARAM(void) uarg); |
128 | | |
129 | | extern long |
130 | | do_xsm_op( |
131 | | XEN_GUEST_HANDLE_PARAM(xsm_op_t) u_xsm_op); |
132 | | |
133 | | #ifdef CONFIG_TMEM |
134 | | extern long |
135 | | do_tmem_op( |
136 | | XEN_GUEST_HANDLE_PARAM(tmem_op_t) uops); |
137 | | #endif |
138 | | |
139 | | extern long |
140 | | do_xenoprof_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg); |
141 | | |
142 | | extern long |
143 | | do_xenpmu_op(unsigned int op, XEN_GUEST_HANDLE_PARAM(xen_pmu_params_t) arg); |
144 | | |
145 | | extern long |
146 | | do_dm_op( |
147 | | domid_t domid, |
148 | | unsigned int nr_bufs, |
149 | | XEN_GUEST_HANDLE_PARAM(xen_dm_op_buf_t) bufs); |
150 | | |
151 | | #ifdef CONFIG_COMPAT |
152 | | |
153 | | extern int |
154 | | compat_memory_op( |
155 | | unsigned int cmd, |
156 | | XEN_GUEST_HANDLE_PARAM(void) arg); |
157 | | |
158 | | extern int |
159 | | compat_grant_table_op( |
160 | | unsigned int cmd, |
161 | | XEN_GUEST_HANDLE_PARAM(void) uop, |
162 | | unsigned int count); |
163 | | |
164 | | extern int |
165 | | compat_vcpu_op( |
166 | | int cmd, |
167 | | unsigned int vcpuid, |
168 | | XEN_GUEST_HANDLE_PARAM(void) arg); |
169 | | |
170 | | extern int |
171 | | compat_xenoprof_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg); |
172 | | |
173 | | extern int |
174 | | compat_xen_version( |
175 | | int cmd, |
176 | | XEN_GUEST_HANDLE_PARAM(void) arg); |
177 | | |
178 | | extern int |
179 | | compat_sched_op( |
180 | | int cmd, |
181 | | XEN_GUEST_HANDLE_PARAM(void) arg); |
182 | | |
183 | | extern int |
184 | | compat_set_timer_op( |
185 | | u32 lo, |
186 | | s32 hi); |
187 | | |
188 | | extern int compat_xsm_op( |
189 | | XEN_GUEST_HANDLE_PARAM(xsm_op_t) op); |
190 | | |
191 | | extern int compat_kexec_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) uarg); |
192 | | |
193 | | extern int compat_vm_assist(unsigned int cmd, unsigned int type); |
194 | | |
195 | | DEFINE_XEN_GUEST_HANDLE(multicall_entry_compat_t); |
196 | | extern int compat_multicall( |
197 | | XEN_GUEST_HANDLE_PARAM(multicall_entry_compat_t) call_list, |
198 | | uint32_t nr_calls); |
199 | | |
200 | | #include <compat/hvm/dm_op.h> |
201 | | |
202 | | extern int |
203 | | compat_dm_op( |
204 | | domid_t domid, |
205 | | unsigned int nr_bufs, |
206 | | XEN_GUEST_HANDLE_PARAM(void) bufs); |
207 | | |
208 | | #endif |
209 | | |
210 | | void arch_get_xen_caps(xen_capabilities_info_t *info); |
211 | | |
212 | | #endif /* __XEN_HYPERCALL_H__ */ |