#ifndef _ASM_X86_XEN_INTERFACE_64_H
#define _ASM_X86_XEN_INTERFACE_64_H
#define FLAT_RING3_CS32 …
#define FLAT_RING3_CS64 …
#define FLAT_RING3_DS32 …
#define FLAT_RING3_DS64 …
#define FLAT_RING3_SS32 …
#define FLAT_RING3_SS64 …
#define FLAT_KERNEL_DS64 …
#define FLAT_KERNEL_DS32 …
#define FLAT_KERNEL_DS …
#define FLAT_KERNEL_CS64 …
#define FLAT_KERNEL_CS32 …
#define FLAT_KERNEL_CS …
#define FLAT_KERNEL_SS64 …
#define FLAT_KERNEL_SS32 …
#define FLAT_KERNEL_SS …
#define FLAT_USER_DS64 …
#define FLAT_USER_DS32 …
#define FLAT_USER_DS …
#define FLAT_USER_CS64 …
#define FLAT_USER_CS32 …
#define FLAT_USER_CS …
#define FLAT_USER_SS64 …
#define FLAT_USER_SS32 …
#define FLAT_USER_SS …
#define __HYPERVISOR_VIRT_START …
#define __HYPERVISOR_VIRT_END …
#define __MACH2PHYS_VIRT_START …
#define __MACH2PHYS_VIRT_END …
#define __MACH2PHYS_SHIFT …
#define SEGBASE_FS …
#define SEGBASE_GS_USER …
#define SEGBASE_GS_KERNEL …
#define SEGBASE_GS_USER_SEL …
#define _VGCF_in_syscall …
#define VGCF_in_syscall …
#define VGCF_IN_SYSCALL …
#ifndef __ASSEMBLY__
struct iret_context {
uint64_t rax, r11, rcx, flags, rip, cs, rflags, rsp, ss;
};
#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
#define __DECL_REG …
#else
#define __DECL_REG …
#endif
struct cpu_user_regs {
uint64_t r15;
uint64_t r14;
uint64_t r13;
uint64_t r12;
__DECL_REG(bp);
__DECL_REG(bx);
uint64_t r11;
uint64_t r10;
uint64_t r9;
uint64_t r8;
__DECL_REG(ax);
__DECL_REG(cx);
__DECL_REG(dx);
__DECL_REG(si);
__DECL_REG(di);
uint32_t error_code;
uint32_t entry_vector;
__DECL_REG(ip);
uint16_t cs, _pad0[1];
uint8_t saved_upcall_mask;
uint8_t _pad1[3];
__DECL_REG(flags);
__DECL_REG(sp);
uint16_t ss, _pad2[3];
uint16_t es, _pad3[3];
uint16_t ds, _pad4[3];
uint16_t fs, _pad5[3];
uint16_t gs, _pad6[3];
};
DEFINE_GUEST_HANDLE_STRUCT(cpu_user_regs);
#undef __DECL_REG
#define xen_pfn_to_cr3 …
#define xen_cr3_to_pfn …
struct arch_vcpu_info {
unsigned long cr2;
unsigned long pad;
};
typedef unsigned long xen_callback_t;
#define XEN_CALLBACK …
#endif
#endif