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