ia64/xen-unstable

view xen/include/xen/hypercall.h @ 19800:78962f85c562

IOMMU: Add two generic functions to vendor neutral interface

Add 2 generic functions into the vendor neutral iommu interface, The
reason is that from changeset 19732, there is only one global flag
"iommu_enabled" that controls iommu enablement for both vtd and amd
systems, so we need different code paths for vtd and amd iommu systems
if this flag has been turned on. Also, the early checking of
"iommu_enabled" in iommu_setup() is removed to prevent iommu
functionalities from been disabled on amd systems.

Signed-off-by: Wei Wang <wei.wang2@amd.com>
author Keir Fraser <keir.fraser@citrix.com>
date Fri Jun 19 08:41:50 2009 +0100 (2009-06-19)
parents f210a633571c
children
line source
1 /******************************************************************************
2 * hypercall.h
3 */
5 #ifndef __XEN_HYPERCALL_H__
6 #define __XEN_HYPERCALL_H__
8 #include <xen/config.h>
9 #include <xen/types.h>
10 #include <xen/time.h>
11 #include <public/xen.h>
12 #include <public/domctl.h>
13 #include <public/sysctl.h>
14 #include <public/platform.h>
15 #include <public/event_channel.h>
16 #include <public/tmem.h>
17 #include <asm/hypercall.h>
18 #include <xsm/xsm.h>
20 extern long
21 do_ni_hypercall(
22 void);
24 extern long
25 do_sched_op_compat(
26 int cmd,
27 unsigned long arg);
29 extern long
30 do_sched_op(
31 int cmd,
32 XEN_GUEST_HANDLE(void) arg);
34 extern long
35 do_domctl(
36 XEN_GUEST_HANDLE(xen_domctl_t) u_domctl);
38 extern long
39 do_sysctl(
40 XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl);
42 extern long
43 do_platform_op(
44 XEN_GUEST_HANDLE(xen_platform_op_t) u_xenpf_op);
46 /*
47 * To allow safe resume of do_memory_op() after preemption, we need to know
48 * at what point in the page list to resume. For this purpose I steal the
49 * high-order bits of the @cmd parameter, which are otherwise unused and zero.
50 */
51 #define MEMOP_EXTENT_SHIFT 6 /* cmd[:6] == start_extent */
52 #define MEMOP_CMD_MASK ((1 << MEMOP_EXTENT_SHIFT) - 1)
54 extern long
55 do_memory_op(
56 unsigned long cmd,
57 XEN_GUEST_HANDLE(void) arg);
59 extern long
60 do_multicall(
61 XEN_GUEST_HANDLE(multicall_entry_t) call_list,
62 unsigned int nr_calls);
64 extern long
65 do_set_timer_op(
66 s_time_t timeout);
68 extern long
69 do_event_channel_op(
70 int cmd, XEN_GUEST_HANDLE(void) arg);
72 extern long
73 do_xen_version(
74 int cmd,
75 XEN_GUEST_HANDLE(void) arg);
77 extern long
78 do_console_io(
79 int cmd,
80 int count,
81 XEN_GUEST_HANDLE(char) buffer);
83 extern long
84 do_grant_table_op(
85 unsigned int cmd,
86 XEN_GUEST_HANDLE(void) uop,
87 unsigned int count);
89 extern long
90 do_vm_assist(
91 unsigned int cmd,
92 unsigned int type);
94 extern long
95 do_vcpu_op(
96 int cmd,
97 int vcpuid,
98 XEN_GUEST_HANDLE(void) arg);
100 extern long
101 do_nmi_op(
102 unsigned int cmd,
103 XEN_GUEST_HANDLE(void) arg);
105 extern long
106 do_hvm_op(
107 unsigned long op,
108 XEN_GUEST_HANDLE(void) arg);
110 extern long
111 do_kexec_op(
112 unsigned long op,
113 int arg1,
114 XEN_GUEST_HANDLE(void) arg);
116 extern long
117 do_xsm_op(
118 XEN_GUEST_HANDLE(xsm_op_t) u_xsm_op);
120 extern long
121 do_tmem_op(
122 XEN_GUEST_HANDLE(tmem_op_t) uops);
124 #ifdef CONFIG_COMPAT
126 extern int
127 compat_memory_op(
128 unsigned int cmd,
129 XEN_GUEST_HANDLE(void) arg);
131 extern int
132 compat_vcpu_op(
133 int cmd,
134 int vcpuid,
135 XEN_GUEST_HANDLE(void) arg);
137 #endif
139 #endif /* __XEN_HYPERCALL_H__ */