10 #ifndef __XEN_PUBLIC_XEN_H__ 11 #define __XEN_PUBLIC_XEN_H__ 18 #if defined(__i386__) || defined(__x86_64__) 20 #elif defined(__arm__) || defined (__aarch64__) 32 #if __XEN_INTERFACE_VERSION__ < 0x00040300 43 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L 44 #define XEN_FLEX_ARRAY_DIM 45 #elif defined(__GNUC__) 46 #define XEN_FLEX_ARRAY_DIM 0 48 #define XEN_FLEX_ARRAY_DIM 1 52 #define __xen_mk_uint(x) x ## U 53 #define __xen_mk_ulong(x) x ## UL 54 #ifndef __xen_mk_ullong 55 # define __xen_mk_ullong(x) x ## ULL 57 #define xen_mk_uint(x) __xen_mk_uint(x) 58 #define xen_mk_ulong(x) __xen_mk_ulong(x) 59 #define xen_mk_ullong(x) __xen_mk_ullong(x) 64 #define xen_mk_uint(x) x 65 #define xen_mk_ulong(x) x 66 #define xen_mk_ullong(x) x 78 #define __HYPERVISOR_set_trap_table 0 79 #define __HYPERVISOR_mmu_update 1 80 #define __HYPERVISOR_set_gdt 2 81 #define __HYPERVISOR_stack_switch 3 82 #define __HYPERVISOR_set_callbacks 4 83 #define __HYPERVISOR_fpu_taskswitch 5 84 #define __HYPERVISOR_sched_op_compat 6 85 #define __HYPERVISOR_platform_op 7 86 #define __HYPERVISOR_set_debugreg 8 87 #define __HYPERVISOR_get_debugreg 9 88 #define __HYPERVISOR_update_descriptor 10 89 #define __HYPERVISOR_memory_op 12 90 #define __HYPERVISOR_multicall 13 91 #define __HYPERVISOR_update_va_mapping 14 92 #define __HYPERVISOR_set_timer_op 15 93 #define __HYPERVISOR_event_channel_op_compat 16 94 #define __HYPERVISOR_xen_version 17 95 #define __HYPERVISOR_console_io 18 96 #define __HYPERVISOR_physdev_op_compat 19 97 #define __HYPERVISOR_grant_table_op 20 98 #define __HYPERVISOR_vm_assist 21 99 #define __HYPERVISOR_update_va_mapping_otherdomain 22 100 #define __HYPERVISOR_iret 23 101 #define __HYPERVISOR_vcpu_op 24 102 #define __HYPERVISOR_set_segment_base 25 103 #define __HYPERVISOR_mmuext_op 26 104 #define __HYPERVISOR_xsm_op 27 105 #define __HYPERVISOR_nmi_op 28 106 #define __HYPERVISOR_sched_op 29 107 #define __HYPERVISOR_callback_op 30 108 #define __HYPERVISOR_xenoprof_op 31 109 #define __HYPERVISOR_event_channel_op 32 110 #define __HYPERVISOR_physdev_op 33 111 #define __HYPERVISOR_hvm_op 34 112 #define __HYPERVISOR_sysctl 35 113 #define __HYPERVISOR_domctl 36 114 #define __HYPERVISOR_kexec_op 37 115 #define __HYPERVISOR_tmem_op 38 116 #define __HYPERVISOR_argo_op 39 117 #define __HYPERVISOR_xenpmu_op 40 118 #define __HYPERVISOR_dm_op 41 119 #define __HYPERVISOR_hypfs_op 42 122 #define __HYPERVISOR_arch_0 48 123 #define __HYPERVISOR_arch_1 49 124 #define __HYPERVISOR_arch_2 50 125 #define __HYPERVISOR_arch_3 51 126 #define __HYPERVISOR_arch_4 52 127 #define __HYPERVISOR_arch_5 53 128 #define __HYPERVISOR_arch_6 54 129 #define __HYPERVISOR_arch_7 55 138 #if __XEN_INTERFACE_VERSION__ < 0x00030101 139 #undef __HYPERVISOR_sched_op 140 #define __HYPERVISOR_sched_op __HYPERVISOR_sched_op_compat 144 #if __XEN_INTERFACE_VERSION__ < 0x00030202 145 #undef __HYPERVISOR_event_channel_op 146 #define __HYPERVISOR_event_channel_op __HYPERVISOR_event_channel_op_compat 147 #undef __HYPERVISOR_physdev_op 148 #define __HYPERVISOR_physdev_op __HYPERVISOR_physdev_op_compat 152 #if __XEN_INTERFACE_VERSION__ < 0x00030204 153 #define __HYPERVISOR_dom0_op __HYPERVISOR_platform_op 169 #define VIRQ_CONSOLE 2 170 #define VIRQ_DOM_EXC 3 172 #define VIRQ_DEBUGGER 6 173 #define VIRQ_XENOPROF 7 174 #define VIRQ_CON_RING 8 175 #define VIRQ_PCPU_STATE 9 176 #define VIRQ_MEM_EVENT 10 178 #define VIRQ_ENOMEM 12 179 #define VIRQ_XENPMU 13 182 #define VIRQ_ARCH_0 16 183 #define VIRQ_ARCH_1 17 184 #define VIRQ_ARCH_2 18 185 #define VIRQ_ARCH_3 19 186 #define VIRQ_ARCH_4 20 187 #define VIRQ_ARCH_5 21 188 #define VIRQ_ARCH_6 22 189 #define VIRQ_ARCH_7 23 337 #define MMU_NORMAL_PT_UPDATE 0 338 #define MMU_MACHPHYS_UPDATE 1 339 #define MMU_PT_UPDATE_PRESERVE_AD 2 340 #define MMU_PT_UPDATE_NO_TRANSLATE 3 408 #define MMUEXT_PIN_L1_TABLE 0 409 #define MMUEXT_PIN_L2_TABLE 1 410 #define MMUEXT_PIN_L3_TABLE 2 411 #define MMUEXT_PIN_L4_TABLE 3 412 #define MMUEXT_UNPIN_TABLE 4 413 #define MMUEXT_NEW_BASEPTR 5 414 #define MMUEXT_TLB_FLUSH_LOCAL 6 415 #define MMUEXT_INVLPG_LOCAL 7 416 #define MMUEXT_TLB_FLUSH_MULTI 8 417 #define MMUEXT_INVLPG_MULTI 9 418 #define MMUEXT_TLB_FLUSH_ALL 10 419 #define MMUEXT_INVLPG_ALL 11 420 #define MMUEXT_FLUSH_CACHE 12 421 #define MMUEXT_SET_LDT 13 422 #define MMUEXT_NEW_USER_BASEPTR 15 423 #define MMUEXT_CLEAR_PAGE 16 424 #define MMUEXT_COPY_PAGE 17 425 #define MMUEXT_FLUSH_CACHE_GLOBAL 18 426 #define MMUEXT_MARK_SUPER 19 427 #define MMUEXT_UNMARK_SUPER 20 444 #if __XEN_INTERFACE_VERSION__ >= 0x00030205 475 #define UVMF_NONE (xen_mk_ulong(0)<<0) 476 #define UVMF_TLB_FLUSH (xen_mk_ulong(1)<<0) 477 #define UVMF_INVLPG (xen_mk_ulong(2)<<0) 478 #define UVMF_FLUSHTYPE_MASK (xen_mk_ulong(3)<<0) 479 #define UVMF_MULTI (xen_mk_ulong(0)<<2) 480 #define UVMF_LOCAL (xen_mk_ulong(0)<<2) 481 #define UVMF_ALL (xen_mk_ulong(1)<<2) 508 #define CONSOLEIO_write 0 509 #define CONSOLEIO_read 1 514 #define VMASST_CMD_enable 0 515 #define VMASST_CMD_disable 1 518 #define VMASST_TYPE_4gb_segments 0 521 #define VMASST_TYPE_4gb_segments_notify 1 528 #define VMASST_TYPE_writable_pagetables 2 531 #define VMASST_TYPE_pae_extended_cr3 3 539 #define VMASST_TYPE_architectural_iopl 4 546 #define VMASST_TYPE_runstate_update_flag 5 558 #define VMASST_TYPE_m2p_strict 32 560 #if __XEN_INTERFACE_VERSION__ < 0x00040600 561 #define MAX_VMASST_TYPE 3 565 #define DOMID_FIRST_RESERVED xen_mk_uint(0x7FF0) 568 #define DOMID_SELF xen_mk_uint(0x7FF0) 581 #define DOMID_IO xen_mk_uint(0x7FF1) 592 #define DOMID_XEN xen_mk_uint(0x7FF2) 596 #define DOMID_COW xen_mk_uint(0x7FF3) 599 #define DOMID_INVALID xen_mk_uint(0x7FF4) 602 #define DOMID_IDLE xen_mk_uint(0x7FFF) 605 #define DOMID_MASK xen_mk_uint(0x7FFF) 638 #if __XEN_INTERFACE_VERSION__ < 0x00040400 643 #define NR_EVENT_CHANNELS EVTCHN_2L_NR_CHANNELS 669 #if __XEN_INTERFACE_VERSION__ > 0x040600 678 #define XEN_PVCLOCK_TSC_STABLE_BIT (1 << 0) 679 #define XEN_PVCLOCK_GUEST_STOPPED (1 << 1) 708 #ifdef XEN_HAVE_PV_UPCALL_MASK 779 #if !defined(__i386__) 781 # define xen_wc_sec_hi wc_sec_hi 782 #elif !defined(__XEN__) && !defined(__XEN_TOOLS__) 783 # define xen_wc_sec_hi arch.wc_sec_hi 830 #ifdef XEN_HAVE_PV_GUEST_ENTRY 834 unsigned long nr_pages;
850 unsigned long pt_base;
851 unsigned long nr_pt_frames;
852 unsigned long mfn_list;
856 unsigned long mod_len;
857 #define MAX_GUEST_CMDLINE 1024 858 int8_t cmd_line[MAX_GUEST_CMDLINE];
860 unsigned long first_p2m_pfn;
861 unsigned long nr_p2m_frames;
863 typedef struct start_info start_info_t;
866 #if __XEN_INTERFACE_VERSION__ < 0x00030203 867 #define console_mfn console.domU.mfn 868 #define console_evtchn console.domU.evtchn 873 #define SIF_PRIVILEGED (1<<0) 874 #define SIF_INITDOMAIN (1<<1) 875 #define SIF_MULTIBOOT_MOD (1<<2) 876 #define SIF_MOD_START_PFN (1<<3) 877 #define SIF_VIRT_P2M_4TOOLS (1<<4) 879 #define SIF_PM_MASK (0xFF<<8) 916 #define XEN_VGATYPE_TEXT_MODE_3 0x03 917 #define XEN_VGATYPE_VESA_LFB 0x23 918 #define XEN_VGATYPE_EFI_LFB 0x70 945 #if __XEN_INTERFACE_VERSION__ >= 0x00030206 952 #if __XEN_INTERFACE_VERSION__ >= 0x00040d00 959 #define xen_vga_console_info dom0_vga_console_info 960 #define xen_vga_console_info_t dom0_vga_console_info_t 984 #define XEN_DEFINE_UUID_(a, b, c, d, e1, e2, e3, e4, e5, e6) \ 985 {{((a) >> 24) & 0xFF, ((a) >> 16) & 0xFF, \ 986 ((a) >> 8) & 0xFF, ((a) >> 0) & 0xFF, \ 987 ((b) >> 8) & 0xFF, ((b) >> 0) & 0xFF, \ 988 ((c) >> 8) & 0xFF, ((c) >> 0) & 0xFF, \ 989 ((d) >> 8) & 0xFF, ((d) >> 0) & 0xFF, \ 990 e1, e2, e3, e4, e5, e6}} 992 #if defined(__STDC_VERSION__) ? __STDC_VERSION__ >= 199901L : defined(__GNUC__) 993 #define XEN_DEFINE_UUID(a, b, c, d, e1, e2, e3, e4, e5, e6) \ 994 ((xen_uuid_t)XEN_DEFINE_UUID_(a, b, c, d, e1, e2, e3, e4, e5, e6)) 996 #define XEN_DEFINE_UUID(a, b, c, d, e1, e2, e3, e4, e5, e6) \ 997 XEN_DEFINE_UUID_(a, b, c, d, e1, e2, e3, e4, e5, e6) 1003 #if defined(__XEN__) || defined(__XEN_TOOLS__) 1005 #ifndef int64_aligned_t 1006 #define int64_aligned_t int64_t 1008 #ifndef uint64_aligned_t 1009 #define uint64_aligned_t uint64_t 1011 #ifndef XEN_GUEST_HANDLE_64 1012 #define XEN_GUEST_HANDLE_64(name) XEN_GUEST_HANDLE(name) 1015 #ifndef __ASSEMBLY__ 1016 struct xenctl_bitmap {
1020 typedef struct xenctl_bitmap xenctl_bitmap_t;
uint16_t magic
Magic signature.
__DEFINE_XEN_GUEST_HANDLE(uchar, unsigned char)
#define XEN_LEGACY_MAX_VCPUS
unsigned long long uint64_t
union dom0_vga_console_info::@696 u
#define XEN_GUEST_HANDLE(name)
unsigned long xen_ulong_t
struct arch_shared_info arch
uint32_t tsc_to_system_mul
xen_ulong_t evtchn_pending_sel
xen_ulong_t evtchn_pending[sizeof(xen_ulong_t) *8]
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
union mmuext_op::@695 arg2
struct dom0_vga_console_info::@696::@698 vesa_lfb
union mmuext_op::@694 arg1
struct dom0_vga_console_info::@696::@697 text_mode_3
unsigned long linear_addr
DEFINE_XEN_GUEST_HANDLE(trap_info_t)
unsigned long xen_ulong_t
struct arch_vcpu_info arch
uint8_t xen_domain_handle_t[16]
xen_ulong_t evtchn_mask[sizeof(xen_ulong_t) *8]
struct dom0_vga_console_info dom0_vga_console_info_t
uint8_t evtchn_upcall_pending