33 #ifndef _ASM_IA64_XEN_HYPERCALL_H
34 #define _ASM_IA64_XEN_HYPERCALL_H
40 struct xencomm_handle;
42 unsigned long a3,
unsigned long a4,
43 unsigned long a5,
unsigned long cmd);
49 #define _hypercall0(type, name) \
52 __res = __hypercall(0, 0, 0, 0, 0, __HYPERVISOR_##name);\
56 #define _hypercall1(type, name, a1) \
59 __res = __hypercall((unsigned long)a1, \
60 0, 0, 0, 0, __HYPERVISOR_##name); \
64 #define _hypercall2(type, name, a1, a2) \
67 __res = __hypercall((unsigned long)a1, \
69 0, 0, 0, __HYPERVISOR_##name); \
73 #define _hypercall3(type, name, a1, a2, a3) \
76 __res = __hypercall((unsigned long)a1, \
79 0, 0, __HYPERVISOR_##name); \
83 #define _hypercall4(type, name, a1, a2, a3, a4) \
86 __res = __hypercall((unsigned long)a1, \
90 0, __HYPERVISOR_##name); \
94 #define _hypercall5(type, name, a1, a2, a3, a4, a5) \
97 __res = __hypercall((unsigned long)a1, \
102 __HYPERVISOR_##name); \
108 xencomm_arch_hypercall_sched_op(
int cmd,
struct xencomm_handle *
arg)
114 HYPERVISOR_set_timer_op(
u64 timeout)
116 unsigned long timeout_hi = (
unsigned long)(timeout >> 32);
117 unsigned long timeout_lo = (
unsigned long)timeout;
118 return _hypercall2(
long, set_timer_op, timeout_lo, timeout_hi);
122 xencomm_arch_hypercall_multicall(
struct xencomm_handle *call_list,
125 return _hypercall2(
int, multicall, call_list, nr_calls);
129 xencomm_arch_hypercall_memory_op(
unsigned int cmd,
struct xencomm_handle *
arg)
135 xencomm_arch_hypercall_event_channel_op(
int cmd,
struct xencomm_handle *
arg)
137 return _hypercall2(
int, event_channel_op, cmd, arg);
141 xencomm_arch_hypercall_xen_version(
int cmd,
struct xencomm_handle *
arg)
147 xencomm_arch_hypercall_console_io(
int cmd,
int count,
148 struct xencomm_handle *
str)
150 return _hypercall3(
int, console_io, cmd, count, str);
154 xencomm_arch_hypercall_physdev_op(
int cmd,
struct xencomm_handle *
arg)
160 xencomm_arch_hypercall_grant_table_op(
unsigned int cmd,
161 struct xencomm_handle *uop,
164 return _hypercall3(
int, grant_table_op, cmd, uop, count);
172 xencomm_arch_hypercall_callback_op(
int cmd,
struct xencomm_handle *
arg)
178 xencomm_arch_hypercall_vcpu_op(
int cmd,
int cpu,
void *
arg)
196 xencomm_arch_hypercall_opt_feature(
struct xencomm_handle *arg)
202 #define HYPERVISOR_update_va_mapping(va, new_val, flags) (0)
205 #define HYPERVISOR_sched_op xencomm_hypercall_sched_op
206 #define HYPERVISOR_event_channel_op xencomm_hypercall_event_channel_op
207 #define HYPERVISOR_callback_op xencomm_hypercall_callback_op
208 #define HYPERVISOR_multicall xencomm_hypercall_multicall
209 #define HYPERVISOR_xen_version xencomm_hypercall_xen_version
210 #define HYPERVISOR_console_io xencomm_hypercall_console_io
211 #define HYPERVISOR_memory_op xencomm_hypercall_memory_op
212 #define HYPERVISOR_suspend xencomm_hypercall_suspend
213 #define HYPERVISOR_vcpu_op xencomm_hypercall_vcpu_op
214 #define HYPERVISOR_opt_feature xencomm_hypercall_opt_feature
217 #define HYPERVISOR_mmu_update(req, count, success_count, domid) ({ BUG(); 0; })
233 #define MULTI_UVMFLAGS_INDEX 0
236 MULTI_update_va_mapping(
246 void *uop,
unsigned int count)
261 mcl->
args[2] = (
unsigned long)success_count;