0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033 #ifndef _ASM_ARM_XEN_HYPERCALL_H
0034 #define _ASM_ARM_XEN_HYPERCALL_H
0035
0036 #include <linux/bug.h>
0037
0038 #include <xen/interface/xen.h>
0039 #include <xen/interface/sched.h>
0040 #include <xen/interface/platform.h>
0041
0042 struct xen_dm_op_buf;
0043
0044 long privcmd_call(unsigned call, unsigned long a1,
0045 unsigned long a2, unsigned long a3,
0046 unsigned long a4, unsigned long a5);
0047 int HYPERVISOR_xen_version(int cmd, void *arg);
0048 int HYPERVISOR_console_io(int cmd, int count, char *str);
0049 int HYPERVISOR_grant_table_op(unsigned int cmd, void *uop, unsigned int count);
0050 int HYPERVISOR_sched_op(int cmd, void *arg);
0051 int HYPERVISOR_event_channel_op(int cmd, void *arg);
0052 unsigned long HYPERVISOR_hvm_op(int op, void *arg);
0053 int HYPERVISOR_memory_op(unsigned int cmd, void *arg);
0054 int HYPERVISOR_physdev_op(int cmd, void *arg);
0055 int HYPERVISOR_vcpu_op(int cmd, int vcpuid, void *extra_args);
0056 int HYPERVISOR_vm_assist(unsigned int cmd, unsigned int type);
0057 int HYPERVISOR_dm_op(domid_t domid, unsigned int nr_bufs,
0058 struct xen_dm_op_buf *bufs);
0059 int HYPERVISOR_platform_op_raw(void *arg);
0060 static inline int HYPERVISOR_platform_op(struct xen_platform_op *op)
0061 {
0062 op->interface_version = XENPF_INTERFACE_VERSION;
0063 return HYPERVISOR_platform_op_raw(op);
0064 }
0065 int HYPERVISOR_multicall(struct multicall_entry *calls, uint32_t nr);
0066
0067 static inline int
0068 HYPERVISOR_suspend(unsigned long start_info_mfn)
0069 {
0070 struct sched_shutdown r = { .reason = SHUTDOWN_suspend };
0071
0072
0073 return HYPERVISOR_sched_op(SCHEDOP_shutdown, &r);
0074 }
0075
0076 #endif