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"
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)
13 return _hypercall3(int, set_callbacks,
14 event_address, failsafe_address, syscall_address);
18 static inline long __must_check
19 HYPERVISOR_set_timer_op(
22 return _hypercall1(long, set_timer_op, timeout);
25 static inline int __must_check
26 HYPERVISOR_update_descriptor(
27 unsigned long ma, unsigned long word)
29 return _hypercall2(int, update_descriptor, ma, word);
32 static inline int __must_check
33 HYPERVISOR_update_va_mapping(
34 unsigned long va, pte_t new_val, unsigned long flags)
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);
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)
45 return _hypercall4(int, update_va_mapping_otherdomain, va,
46 new_val.pte, flags, domid);
49 static inline int __must_check
50 HYPERVISOR_set_segment_base(
51 int reg, unsigned long value)
53 return _hypercall2(int, set_segment_base, reg, value);