Update to 3.4-final.
[linux-flexiantxendom0-3.2.10.git] / arch / x86 / include / mach-xen / asm / hypercall_64.h
1 #define HYPERCALL_arg1 "rdi"
2 #define HYPERCALL_arg2 "rsi"
3 #define HYPERCALL_arg3 "rdx"
4 #define HYPERCALL_arg4 "r10"
5 #define HYPERCALL_arg5 "r8"
6
7 #if CONFIG_XEN_COMPAT <= 0x030002
8 static inline int __must_check
9 HYPERVISOR_set_callbacks(
10         unsigned long event_address, unsigned long failsafe_address, 
11         unsigned long syscall_address)
12 {
13         return _hypercall3(int, set_callbacks,
14                            event_address, failsafe_address, syscall_address);
15 }
16 #endif
17
18 static inline long __must_check
19 HYPERVISOR_set_timer_op(
20         u64 timeout)
21 {
22         return _hypercall1(long, set_timer_op, timeout);
23 }
24
25 static inline int __must_check
26 HYPERVISOR_update_descriptor(
27         unsigned long ma, unsigned long word)
28 {
29         return _hypercall2(int, update_descriptor, ma, word);
30 }
31
32 static inline int __must_check
33 HYPERVISOR_update_va_mapping(
34         unsigned long va, pte_t new_val, unsigned long flags)
35 {
36         if (arch_use_lazy_mmu_mode())
37                 return xen_multi_update_va_mapping(va, new_val, flags);
38         return _hypercall3(int, update_va_mapping, va, new_val.pte, flags);
39 }
40
41 static inline int __must_check
42 HYPERVISOR_update_va_mapping_otherdomain(
43         unsigned long va, pte_t new_val, unsigned long flags, domid_t domid)
44 {
45         return _hypercall4(int, update_va_mapping_otherdomain, va,
46                            new_val.pte, flags, domid);
47 }
48
49 static inline int __must_check
50 HYPERVISOR_set_segment_base(
51         int reg, unsigned long value)
52 {
53         return _hypercall2(int, set_segment_base, reg, value);
54 }