29#ifndef __XEN_PUBLIC_XEN_H__
30#define __XEN_PUBLIC_XEN_H__
32#if defined(CONFIG_ARM64)
35#error "Unsupported architecture"
41__DEFINE_XEN_GUEST_HANDLE(uchar,
unsigned char);
43__DEFINE_XEN_GUEST_HANDLE(uint,
unsigned int);
44#if CONFIG_XEN_INTERFACE_VERSION < 0x00040300
46__DEFINE_XEN_GUEST_HANDLE(ulong,
unsigned long);
56#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
57#define XEN_FLEX_ARRAY_DIM
58#elif defined(__GNUC__)
59#define XEN_FLEX_ARRAY_DIM 0
61#define XEN_FLEX_ARRAY_DIM 1
65#define __xen_mk_uint(x) x ## U
66#define __xen_mk_ulong(x) x ## UL
67#ifndef __xen_mk_ullong
68#define __xen_mk_ullong(x) x ## ULL
70#define xen_mk_uint(x) __xen_mk_uint(x)
71#define xen_mk_ulong(x) __xen_mk_ulong(x)
72#define xen_mk_ullong(x) __xen_mk_ullong(x)
77#define xen_mk_uint(x) x
78#define xen_mk_ulong(x) x
79#define xen_mk_ullong(x) x
91#define __HYPERVISOR_set_trap_table 0
92#define __HYPERVISOR_mmu_update 1
93#define __HYPERVISOR_set_gdt 2
94#define __HYPERVISOR_stack_switch 3
95#define __HYPERVISOR_set_callbacks 4
96#define __HYPERVISOR_fpu_taskswitch 5
99#define __HYPERVISOR_sched_op_compat 6
100#define __HYPERVISOR_platform_op 7
101#define __HYPERVISOR_set_debugreg 8
102#define __HYPERVISOR_get_debugreg 9
103#define __HYPERVISOR_update_descriptor 10
104#define __HYPERVISOR_memory_op 12
105#define __HYPERVISOR_multicall 13
106#define __HYPERVISOR_update_va_mapping 14
107#define __HYPERVISOR_set_timer_op 15
110#define __HYPERVISOR_event_channel_op_compat 16
111#define __HYPERVISOR_xen_version 17
112#define __HYPERVISOR_console_io 18
115#define __HYPERVISOR_physdev_op_compat 19
116#define __HYPERVISOR_grant_table_op 20
117#define __HYPERVISOR_vm_assist 21
118#define __HYPERVISOR_update_va_mapping_otherdomain 22
121#define __HYPERVISOR_iret 23
122#define __HYPERVISOR_vcpu_op 24
125#define __HYPERVISOR_set_segment_base 25
126#define __HYPERVISOR_mmuext_op 26
127#define __HYPERVISOR_xsm_op 27
128#define __HYPERVISOR_nmi_op 28
129#define __HYPERVISOR_sched_op 29
130#define __HYPERVISOR_callback_op 30
131#define __HYPERVISOR_xenoprof_op 31
132#define __HYPERVISOR_event_channel_op 32
133#define __HYPERVISOR_physdev_op 33
134#define __HYPERVISOR_hvm_op 34
135#define __HYPERVISOR_sysctl 35
136#define __HYPERVISOR_domctl 36
137#define __HYPERVISOR_kexec_op 37
138#define __HYPERVISOR_tmem_op 38
139#define __HYPERVISOR_argo_op 39
140#define __HYPERVISOR_xenpmu_op 40
141#define __HYPERVISOR_dm_op 41
142#define __HYPERVISOR_hypfs_op 42
168#define CONSOLEIO_write 0
169#define CONSOLEIO_read 1
172#define DOMID_FIRST_RESERVED xen_mk_uint(0x7FF0)
175#define DOMID_SELF xen_mk_uint(0x7FF0)
188#define DOMID_IO xen_mk_uint(0x7FF1)
199#define DOMID_XEN xen_mk_uint(0x7FF2)
204#define DOMID_COW xen_mk_uint(0x7FF3)
207#define DOMID_INVALID xen_mk_uint(0x7FF4)
210#define DOMID_IDLE xen_mk_uint(0x7FFF)
213#define DOMID_MASK xen_mk_uint(0x7FFF)
219#if CONFIG_XEN_INTERFACE_VERSION < 0x00040400
224#define NR_EVENT_CHANNELS EVTCHN_2L_NR_CHANNELS
251#if CONFIG_XEN_INTERFACE_VERSION > 0x040600
260#define XEN_PVCLOCK_TSC_STABLE_BIT (1 << 0)
261#define XEN_PVCLOCK_GUEST_STOPPED (1 << 1)
290#ifdef XEN_HAVE_PV_UPCALL_MASK
361#if !defined(__i386__)
363# define xen_wc_sec_hi wc_sec_hi
364#elif !defined(__XEN__) && !defined(__XEN_TOOLS__)
365# define xen_wc_sec_hi arch.wc_sec_hi
377#ifndef int64_aligned_t
378#define int64_aligned_t int64_t
380#ifndef uint64_aligned_t
381#define uint64_aligned_t uint64_t
383#ifndef XEN_GUEST_HANDLE_64
384#define XEN_GUEST_HANDLE_64(name) XEN_GUEST_HANDLE(name)
uint64_t xen_pfn_t
Definition arch-arm.h:204
#define XEN_LEGACY_MAX_VCPUS
Definition arch-arm.h:212
uint64_t xen_ulong_t
Definition arch-arm.h:214
flags
Definition parser.h:96
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINT64_TYPE__ uint64_t
Definition stdint.h:91
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
__UINT16_TYPE__ uint16_t
Definition stdint.h:89
__INT8_TYPE__ int8_t
Definition stdint.h:72
Definition arch-arm.h:344
Definition arch-arm.h:340
uint32_t wc_sec_hi
Definition xen.h:362
uint32_t wc_nsec
Definition xen.h:360
uint32_t wc_sec
Definition xen.h:359
xen_ulong_t evtchn_mask[sizeof(xen_ulong_t) *8]
Definition xen.h:347
struct arch_shared_info arch
Definition xen.h:368
xen_ulong_t evtchn_pending[sizeof(xen_ulong_t) *8]
Definition xen.h:346
uint32_t wc_version
Definition xen.h:358
uint8_t pad0
Definition xen.h:293
xen_ulong_t evtchn_pending_sel
Definition xen.h:295
uint8_t evtchn_upcall_pending
Definition xen.h:289
struct arch_vcpu_info arch
Definition xen.h:296
vcpu_time_info_t time
Definition xen.h:297
uint32_t tsc_to_system_mul
Definition xen.h:249
uint32_t pad0
Definition xen.h:239
uint64_t tsc_timestamp
Definition xen.h:240
uint32_t version
Definition xen.h:238
int8_t pad1[3]
Definition xen.h:255
uint64_t system_time
Definition xen.h:241
int8_t tsc_shift
Definition xen.h:250
uint32_t nr_bits
Definition xen.h:390
bitmap
Definition xen.h:389
DEFINE_XEN_GUEST_HANDLE(void)
uint16_t domid_t
Definition xen.h:217
uint8_t xen_domain_handle_t[16]
Definition xen.h:375