10#ifndef __XEN_PUBLIC_ARCH_X86_XEN_X86_32_H__
11#define __XEN_PUBLIC_ARCH_X86_XEN_X86_32_H__
30#define FLAT_RING1_CS 0xe019
31#define FLAT_RING1_DS 0xe021
32#define FLAT_RING1_SS 0xe021
33#define FLAT_RING3_CS 0xe02b
34#define FLAT_RING3_DS 0xe033
35#define FLAT_RING3_SS 0xe033
37#define FLAT_KERNEL_CS FLAT_RING1_CS
38#define FLAT_KERNEL_DS FLAT_RING1_DS
39#define FLAT_KERNEL_SS FLAT_RING1_SS
40#define FLAT_USER_CS FLAT_RING3_CS
41#define FLAT_USER_DS FLAT_RING3_DS
42#define FLAT_USER_SS FLAT_RING3_SS
44#define __HYPERVISOR_VIRT_START_PAE 0xF5800000
45#define __MACH2PHYS_VIRT_START_PAE 0xF5800000
46#define __MACH2PHYS_VIRT_END_PAE 0xF6800000
47#define HYPERVISOR_VIRT_START_PAE xen_mk_ulong(__HYPERVISOR_VIRT_START_PAE)
48#define MACH2PHYS_VIRT_START_PAE xen_mk_ulong(__MACH2PHYS_VIRT_START_PAE)
49#define MACH2PHYS_VIRT_END_PAE xen_mk_ulong(__MACH2PHYS_VIRT_END_PAE)
52#define __HYPERVISOR_VIRT_START_NONPAE 0xFC000000
53#define __MACH2PHYS_VIRT_START_NONPAE 0xFC000000
54#define __MACH2PHYS_VIRT_END_NONPAE 0xFC400000
55#define HYPERVISOR_VIRT_START_NONPAE \
56 xen_mk_ulong(__HYPERVISOR_VIRT_START_NONPAE)
57#define MACH2PHYS_VIRT_START_NONPAE \
58 xen_mk_ulong(__MACH2PHYS_VIRT_START_NONPAE)
59#define MACH2PHYS_VIRT_END_NONPAE \
60 xen_mk_ulong(__MACH2PHYS_VIRT_END_NONPAE)
62#define __HYPERVISOR_VIRT_START __HYPERVISOR_VIRT_START_PAE
63#define __MACH2PHYS_VIRT_START __MACH2PHYS_VIRT_START_PAE
64#define __MACH2PHYS_VIRT_END __MACH2PHYS_VIRT_END_PAE
66#ifndef HYPERVISOR_VIRT_START
67#define HYPERVISOR_VIRT_START xen_mk_ulong(__HYPERVISOR_VIRT_START)
70#define MACH2PHYS_VIRT_START xen_mk_ulong(__MACH2PHYS_VIRT_START)
71#define MACH2PHYS_VIRT_END xen_mk_ulong(__MACH2PHYS_VIRT_END)
72#define MACH2PHYS_NR_ENTRIES ((MACH2PHYS_VIRT_END-MACH2PHYS_VIRT_START)>>2)
73#ifndef machine_to_phys_mapping
74#define machine_to_phys_mapping ((unsigned long *)MACH2PHYS_VIRT_START)
78#if defined(__XEN__) || defined(__XEN_TOOLS__)
79#undef ___DEFINE_XEN_GUEST_HANDLE
80#define ___DEFINE_XEN_GUEST_HANDLE(name, type) \
81 typedef struct { type *p; } \
82 __guest_handle_ ## name; \
83 typedef struct { union { type *p; uint64_aligned_t q; }; } \
84 __guest_handle_64_ ## name
85#undef set_xen_guest_handle_raw
86#define set_xen_guest_handle_raw(hnd, val) \
87 do { if ( sizeof(hnd) == 8 ) *(uint64_t *)&(hnd) = 0; \
90#define int64_aligned_t int64_t __attribute__((aligned(8)))
91#define uint64_aligned_t uint64_t __attribute__((aligned(8)))
92#define __XEN_GUEST_HANDLE_64(name) __guest_handle_64_ ## name
93#define XEN_GUEST_HANDLE_64(name) __XEN_GUEST_HANDLE_64(name)
98#if defined(XEN_GENERATING_COMPAT_HEADERS)
100#elif defined(__XEN__) || defined(__XEN_TOOLS__)
102#define __DECL_REG_LO8(which) union { \
103 uint32_t e ## which ## x; \
104 uint16_t which ## x; \
106 uint8_t which ## l; \
107 uint8_t which ## h; \
110#define __DECL_REG_LO16(name) union { \
111 uint32_t e ## name, _e ## name; \
116#define __DECL_REG_LO8(which) uint32_t e ## which ## x
117#define __DECL_REG_LO16(name) uint32_t e ## name
121#define cpu_user_regs guest_user_regs
155#undef __DECL_REG_LO16
162#define xen_pfn_to_cr3(pfn) (((unsigned)(pfn) << 12) | ((unsigned)(pfn) >> 20))
163#define xen_cr3_to_pfn(cr3) (((unsigned)(cr3) >> 12) | ((unsigned)(cr3) << 20))
struct arch_vcpu_info arch_vcpu_info_t
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
#define DEFINE_XEN_GUEST_HANDLE(name)
IP4_t ip
Destination IP address.
uint8_t saved_upcall_mask
struct cpu_user_regs cpu_user_regs_t