1# There are a few fundamentally different strategies for handling compat
2# (sub-)hypercalls:
3#
4# 1) Wrap a translation layer around the native hypercall. Structures involved
5# in this model should use translation (xlat) macros generated by adding
6# !-prefixed lines here.
7#
8# 2) Compile the entire hypercall function a second time, arranging for the
9# compat structures to get used in place of the native ones. There are no xlat
10# macros involved here, all that's needed are correctly translated structures.
11#
12# 3) Adhoc translation, which may or may not involve adding entries here.
13#
14# 4) Any mixture of the above.
15#
16# In all models any structures re-used in their native form should have
17# ?-mark prefixed lines added here, with the resulting checking macros invoked
18# somewhere in the code handling the hypercall or its translation.
19#
20# First column indicator:
21# ! - needs translation
22# ? - needs checking
23
24?	dom0_vga_console_info		xen.h
25?	mmu_update			xen.h
26!	mmuext_op			xen.h
27!	start_info			xen.h
28?	vcpu_time_info			xen.h
29?	xenctl_bitmap			xen.h
30
31?	pmu_amd_ctxt			arch-x86/pmu.h
32?	pmu_arch			arch-x86/pmu.h
33?	pmu_cntr_pair			arch-x86/pmu.h
34?	pmu_intel_ctxt			arch-x86/pmu.h
35?	pmu_regs			arch-x86/pmu.h
36
37?	cpu_offline_action		arch-x86/xen-mca.h
38?	mc				arch-x86/xen-mca.h
39!	mc_fetch			arch-x86/xen-mca.h
40?	mc_info				arch-x86/xen-mca.h
41?	mc_inject_v2			arch-x86/xen-mca.h
42?	mc_mceinject			arch-x86/xen-mca.h
43?	mc_msrinject			arch-x86/xen-mca.h
44?	mc_notifydomain			arch-x86/xen-mca.h
45!	mc_physcpuinfo			arch-x86/xen-mca.h
46?	mcinfo_bank			arch-x86/xen-mca.h
47?	mcinfo_common			arch-x86/xen-mca.h
48?	mcinfo_extended			arch-x86/xen-mca.h
49?	mcinfo_global			arch-x86/xen-mca.h
50?	mcinfo_logical_cpu		arch-x86/xen-mca.h
51?	mcinfo_msr			arch-x86/xen-mca.h
52?	mcinfo_recovery			arch-x86/xen-mca.h
53?	page_offline_action		arch-x86/xen-mca.h
54
55!	trap_info			arch-x86/xen.h
56
57?	argo_addr			argo.h
58!	argo_iov			argo.h
59?	argo_register_ring		argo.h
60?	argo_ring			argo.h
61?	argo_ring_data			argo.h
62?	argo_ring_data_ent		argo.h
63?	argo_ring_message_header	argo.h
64?	argo_send_addr			argo.h
65?	argo_unregister_ring		argo.h
66
67?	evtchn_alloc_unbound		event_channel.h
68?	evtchn_bind_interdomain		event_channel.h
69?	evtchn_bind_ipi			event_channel.h
70?	evtchn_bind_pirq		event_channel.h
71?	evtchn_bind_vcpu		event_channel.h
72?	evtchn_bind_virq		event_channel.h
73?	evtchn_close			event_channel.h
74?	evtchn_expand_array		event_channel.h
75?	evtchn_init_control		event_channel.h
76?	evtchn_op			event_channel.h
77?	evtchn_reset			event_channel.h
78?	evtchn_send			event_channel.h
79?	evtchn_set_priority		event_channel.h
80?	evtchn_status			event_channel.h
81?	evtchn_unmask			event_channel.h
82
83?	gnttab_cache_flush		grant_table.h
84!	gnttab_copy			grant_table.h
85?	gnttab_dump_table		grant_table.h
86!	gnttab_get_status_frames	grant_table.h
87?	gnttab_get_version		grant_table.h
88?	gnttab_map_grant_ref		grant_table.h
89?	gnttab_query_size		grant_table.h
90?	gnttab_set_version		grant_table.h
91!	gnttab_setup_table		grant_table.h
92?	gnttab_swap_grant_ref		grant_table.h
93!	gnttab_transfer			grant_table.h
94?	gnttab_unmap_and_replace	grant_table.h
95?	gnttab_unmap_grant_ref		grant_table.h
96?	grant_entry_header		grant_table.h
97?	grant_entry_v1			grant_table.h
98?	grant_entry_v2			grant_table.h
99
100!	dm_op_buf			hvm/dm_op.h
101?	dm_op_create_ioreq_server	hvm/dm_op.h
102?	dm_op_destroy_ioreq_server	hvm/dm_op.h
103?	dm_op_get_ioreq_server_info	hvm/dm_op.h
104?	dm_op_inject_event		hvm/dm_op.h
105?	dm_op_inject_msi		hvm/dm_op.h
106?	dm_op_ioreq_server_range	hvm/dm_op.h
107?	dm_op_map_mem_type_to_ioreq_server hvm/dm_op.h
108?	dm_op_modified_memory		hvm/dm_op.h
109?	dm_op_nr_vcpus			hvm/dm_op.h
110?	dm_op_pin_memory_cacheattr	hvm/dm_op.h
111?	dm_op_relocate_memory		hvm/dm_op.h
112?	dm_op_remote_shutdown		hvm/dm_op.h
113?	dm_op_set_ioreq_server_state	hvm/dm_op.h
114?	dm_op_set_isa_irq_level		hvm/dm_op.h
115?	dm_op_set_mem_type		hvm/dm_op.h
116?	dm_op_set_pci_intx_level	hvm/dm_op.h
117?	dm_op_set_pci_link_route	hvm/dm_op.h
118?	dm_op_track_dirty_vram		hvm/dm_op.h
119
120!	hvm_altp2m_set_mem_access_multi	hvm/hvm_op.h
121
122?	vcpu_hvm_context		hvm/hvm_vcpu.h
123?	vcpu_hvm_x86_32			hvm/hvm_vcpu.h
124?	vcpu_hvm_x86_64			hvm/hvm_vcpu.h
125
126?	hypfs_direntry			hypfs.h
127?	hypfs_dirlistentry		hypfs.h
128
129?	kexec_exec			kexec.h
130!	kexec_image			kexec.h
131!	kexec_range			kexec.h
132
133!	add_to_physmap			memory.h
134!	add_to_physmap_batch		memory.h
135!	foreign_memory_map		memory.h
136!	mem_access_op			memory.h
137!	mem_acquire_resource		memory.h
138!	memory_exchange			memory.h
139!	memory_map			memory.h
140!	memory_reservation		memory.h
141!	pod_target			memory.h
142!	remove_from_physmap		memory.h
143!	reserved_device_memory_map	memory.h
144?	vmemrange			memory.h
145!	vnuma_topology_info		memory.h
146
147?	physdev_eoi			physdev.h
148?	physdev_get_free_pirq		physdev.h
149?	physdev_irq			physdev.h
150?	physdev_irq_status_query	physdev.h
151?	physdev_manage_pci		physdev.h
152?	physdev_manage_pci_ext		physdev.h
153?	physdev_pci_device		physdev.h
154?	physdev_pci_device_add		physdev.h
155?	physdev_pci_mmcfg_reserved	physdev.h
156?	physdev_restore_msi		physdev.h
157?	physdev_set_iopl		physdev.h
158?	physdev_setup_gsi		physdev.h
159?	physdev_unmap_pirq		physdev.h
160
161!	pct_register			platform.h
162!	power_register			platform.h
163?	processor_csd			platform.h
164!	processor_cx			platform.h
165!	processor_flags			platform.h
166!	processor_performance		platform.h
167!	processor_power			platform.h
168?	processor_px			platform.h
169!	psd_package			platform.h
170?	xenpf_enter_acpi_sleep		platform.h
171?	xenpf_pcpu_version		platform.h
172?	xenpf_pcpuinfo			platform.h
173?	xenpf_resource_entry		platform.h
174!	xenpf_symdata			platform.h
175?	xenpf_ucode_revision		platform.h
176
177?	pmu_data			pmu.h
178?	pmu_params			pmu.h
179
180?	sched_pin_override		sched.h
181!	sched_poll			sched.h
182?	sched_remote_shutdown		sched.h
183?	sched_shutdown			sched.h
184
185?	t_buf				trace.h
186
187?	vcpu_get_physid			vcpu.h
188?	vcpu_register_vcpu_info		vcpu.h
189!	vcpu_runstate_info		vcpu.h
190?	vcpu_set_periodic_timer		vcpu.h
191!	vcpu_set_singleshot_timer	vcpu.h
192
193?	build_id			version.h
194?	compile_info			version.h
195?	feature_info			version.h
196?	varbuf                          version.h
197
198?	xenoprof_init			xenoprof.h
199?	xenoprof_passive		xenoprof.h
200
201?	flask_access			xsm/flask_op.h
202?	flask_cache_stats		xsm/flask_op.h
203?	flask_hash_stats		xsm/flask_op.h
204?	flask_ocontext			xsm/flask_op.h
205?	flask_peersid			xsm/flask_op.h
206?	flask_relabel			xsm/flask_op.h
207?	flask_setavc_threshold		xsm/flask_op.h
208?	flask_setenforce		xsm/flask_op.h
209?	flask_transition		xsm/flask_op.h
210