# There are a few fundamentally different strategies for handling compat
# (sub-)hypercalls:
#
# 1) Wrap a translation layer around the native hypercall. Structures involved
# in this model should use translation (xlat) macros generated by adding
# !-prefixed lines here.
#
# 2) Compile the entire hypercall function a second time, arranging for the
# compat structures to get used in place of the native ones. There are no xlat
# macros involved here, all that's needed are correctly translated structures.
#
# 3) Adhoc translation, which may or may not involve adding entries here.
#
# 4) Any mixture of the above.
#
# In all models any structures re-used in their native form should have
# ?-mark prefixed lines added here, with the resulting checking macros invoked
# somewhere in the code handling the hypercall or its translation.
#
# First column indicator:
# ! - needs translation
# ? - needs checking

?	dom0_vga_console_info		xen.h
?	mmu_update			xen.h
!	mmuext_op			xen.h
!	start_info			xen.h
?	vcpu_time_info			xen.h
?	xenctl_bitmap			xen.h

?	pmu_amd_ctxt			arch-x86/pmu.h
?	pmu_arch			arch-x86/pmu.h
?	pmu_cntr_pair			arch-x86/pmu.h
?	pmu_intel_ctxt			arch-x86/pmu.h
?	pmu_regs			arch-x86/pmu.h

?	cpu_offline_action		arch-x86/xen-mca.h
?	mc				arch-x86/xen-mca.h
!	mc_fetch			arch-x86/xen-mca.h
?	mc_info				arch-x86/xen-mca.h
?	mc_inject_v2			arch-x86/xen-mca.h
?	mc_mceinject			arch-x86/xen-mca.h
?	mc_msrinject			arch-x86/xen-mca.h
?	mc_notifydomain			arch-x86/xen-mca.h
!	mc_physcpuinfo			arch-x86/xen-mca.h
?	mcinfo_bank			arch-x86/xen-mca.h
?	mcinfo_common			arch-x86/xen-mca.h
?	mcinfo_extended			arch-x86/xen-mca.h
?	mcinfo_global			arch-x86/xen-mca.h
?	mcinfo_logical_cpu		arch-x86/xen-mca.h
?	mcinfo_msr			arch-x86/xen-mca.h
?	mcinfo_recovery			arch-x86/xen-mca.h
?	page_offline_action		arch-x86/xen-mca.h

!	trap_info			arch-x86/xen.h

?	argo_addr			argo.h
!	argo_iov			argo.h
?	argo_register_ring		argo.h
?	argo_ring			argo.h
?	argo_ring_data			argo.h
?	argo_ring_data_ent		argo.h
?	argo_ring_message_header	argo.h
?	argo_send_addr			argo.h
?	argo_unregister_ring		argo.h

?	evtchn_alloc_unbound		event_channel.h
?	evtchn_bind_interdomain		event_channel.h
?	evtchn_bind_ipi			event_channel.h
?	evtchn_bind_pirq		event_channel.h
?	evtchn_bind_vcpu		event_channel.h
?	evtchn_bind_virq		event_channel.h
?	evtchn_close			event_channel.h
?	evtchn_expand_array		event_channel.h
?	evtchn_init_control		event_channel.h
?	evtchn_op			event_channel.h
?	evtchn_reset			event_channel.h
?	evtchn_send			event_channel.h
?	evtchn_set_priority		event_channel.h
?	evtchn_status			event_channel.h
?	evtchn_unmask			event_channel.h

?	gnttab_cache_flush		grant_table.h
!	gnttab_copy			grant_table.h
?	gnttab_dump_table		grant_table.h
!	gnttab_get_status_frames	grant_table.h
?	gnttab_get_version		grant_table.h
?	gnttab_map_grant_ref		grant_table.h
?	gnttab_query_size		grant_table.h
?	gnttab_set_version		grant_table.h
!	gnttab_setup_table		grant_table.h
?	gnttab_swap_grant_ref		grant_table.h
!	gnttab_transfer			grant_table.h
?	gnttab_unmap_and_replace	grant_table.h
?	gnttab_unmap_grant_ref		grant_table.h
?	grant_entry_header		grant_table.h
?	grant_entry_v1			grant_table.h
?	grant_entry_v2			grant_table.h

!	dm_op_buf			hvm/dm_op.h
?	dm_op_create_ioreq_server	hvm/dm_op.h
?	dm_op_destroy_ioreq_server	hvm/dm_op.h
?	dm_op_get_ioreq_server_info	hvm/dm_op.h
?	dm_op_inject_event		hvm/dm_op.h
?	dm_op_inject_msi		hvm/dm_op.h
?	dm_op_ioreq_server_range	hvm/dm_op.h
?	dm_op_map_mem_type_to_ioreq_server hvm/dm_op.h
?	dm_op_modified_memory		hvm/dm_op.h
?	dm_op_nr_vcpus			hvm/dm_op.h
?	dm_op_pin_memory_cacheattr	hvm/dm_op.h
?	dm_op_relocate_memory		hvm/dm_op.h
?	dm_op_remote_shutdown		hvm/dm_op.h
?	dm_op_set_ioreq_server_state	hvm/dm_op.h
?	dm_op_set_isa_irq_level		hvm/dm_op.h
?	dm_op_set_mem_type		hvm/dm_op.h
?	dm_op_set_pci_intx_level	hvm/dm_op.h
?	dm_op_set_pci_link_route	hvm/dm_op.h
?	dm_op_track_dirty_vram		hvm/dm_op.h

!	hvm_altp2m_set_mem_access_multi	hvm/hvm_op.h

?	vcpu_hvm_context		hvm/hvm_vcpu.h
?	vcpu_hvm_x86_32			hvm/hvm_vcpu.h
?	vcpu_hvm_x86_64			hvm/hvm_vcpu.h

?	hypfs_direntry			hypfs.h
?	hypfs_dirlistentry		hypfs.h

?	kexec_exec			kexec.h
!	kexec_image			kexec.h
!	kexec_range			kexec.h

!	add_to_physmap			memory.h
!	add_to_physmap_batch		memory.h
!	foreign_memory_map		memory.h
!	mem_access_op			memory.h
!	mem_acquire_resource		memory.h
!	memory_exchange			memory.h
!	memory_map			memory.h
!	memory_reservation		memory.h
!	pod_target			memory.h
!	remove_from_physmap		memory.h
!	reserved_device_memory_map	memory.h
?	vmemrange			memory.h
!	vnuma_topology_info		memory.h

?	physdev_eoi			physdev.h
?	physdev_get_free_pirq		physdev.h
?	physdev_irq			physdev.h
?	physdev_irq_status_query	physdev.h
?	physdev_manage_pci		physdev.h
?	physdev_manage_pci_ext		physdev.h
?	physdev_pci_device		physdev.h
?	physdev_pci_device_add		physdev.h
?	physdev_pci_mmcfg_reserved	physdev.h
?	physdev_restore_msi		physdev.h
?	physdev_set_iopl		physdev.h
?	physdev_setup_gsi		physdev.h
?	physdev_unmap_pirq		physdev.h

!	pct_register			platform.h
!	power_register			platform.h
!	processor_cppc			platform.h
?	processor_csd			platform.h
!	processor_cx			platform.h
!	processor_flags			platform.h
!	processor_performance		platform.h
!	processor_power			platform.h
?	processor_px			platform.h
!	psd_package			platform.h
?	xenpf_enter_acpi_sleep		platform.h
?	xenpf_pcpu_version		platform.h
?	xenpf_pcpuinfo			platform.h
?	xenpf_resource_entry		platform.h
!	xenpf_symdata			platform.h
?	xenpf_ucode_revision		platform.h

?	pmu_data			pmu.h
?	pmu_params			pmu.h

?	sched_pin_override		sched.h
!	sched_poll			sched.h
?	sched_remote_shutdown		sched.h
?	sched_shutdown			sched.h

?	t_buf				trace.h

?	vcpu_get_physid			vcpu.h
?	vcpu_register_vcpu_info		vcpu.h
!	vcpu_runstate_info		vcpu.h
?	vcpu_set_periodic_timer		vcpu.h
!	vcpu_set_singleshot_timer	vcpu.h

?	build_id			version.h
?	compile_info			version.h
?	feature_info			version.h
?	varbuf                          version.h

?	xenoprof_init			xenoprof.h
?	xenoprof_passive		xenoprof.h

?	flask_access			xsm/flask_op.h
?	flask_cache_stats		xsm/flask_op.h
?	flask_hash_stats		xsm/flask_op.h
?	flask_ocontext			xsm/flask_op.h
?	flask_peersid			xsm/flask_op.h
?	flask_relabel			xsm/flask_op.h
?	flask_setavc_threshold		xsm/flask_op.h
?	flask_setenforce		xsm/flask_op.h
?	flask_transition		xsm/flask_op.h
