123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- /*
- This file is part of Valgrind, a dynamic binary instrumentation
- framework.
- Copyright (C) 2012-2017 Citrix
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307, USA.
- The GNU General Public License is contained in the file COPYING.
- */
- /* Contributed by Andrew Cooper <andrew.cooper3@citrix.com>
- and Ian Campbell <ian.campbell@citrix.com> */
- #ifndef __VKI_XEN_H
- #define __VKI_XEN_H
- #define ENABLE_XEN 1
- #define __VKI_XEN_set_trap_table 0
- #define __VKI_XEN_mmu_update 1
- #define __VKI_XEN_set_gdt 2
- #define __VKI_XEN_stack_switch 3
- #define __VKI_XEN_set_callbacks 4
- #define __VKI_XEN_fpu_taskswitch 5
- #define __VKI_XEN_sched_op_compat 6 /* compat since 0x00030101 */
- #define __VKI_XEN_platform_op 7
- #define __VKI_XEN_set_debugreg 8
- #define __VKI_XEN_get_debugreg 9
- #define __VKI_XEN_update_descriptor 10
- #define __VKI_XEN_memory_op 12
- #define __VKI_XEN_multicall 13
- #define __VKI_XEN_update_va_mapping 14
- #define __VKI_XEN_set_timer_op 15
- #define __VKI_XEN_event_channel_op_compat 16 /* compat since 0x00030202 */
- #define __VKI_XEN_xen_version 17
- #define __VKI_XEN_console_io 18
- #define __VKI_XEN_physdev_op_compat 19 /* compat since 0x00030202 */
- #define __VKI_XEN_grant_table_op 20
- #define __VKI_XEN_vm_assist 21
- #define __VKI_XEN_update_va_mapping_otherdomain 22
- #define __VKI_XEN_iret 23 /* x86 only */
- #define __VKI_XEN_vcpu_op 24
- #define __VKI_XEN_set_segment_base 25 /* x86/64 only */
- #define __VKI_XEN_mmuext_op 26
- #define __VKI_XEN_xsm_op 27
- #define __VKI_XEN_nmi_op 28
- #define __VKI_XEN_sched_op 29
- #define __VKI_XEN_callback_op 30
- #define __VKI_XEN_xenoprof_op 31
- #define __VKI_XEN_event_channel_op 32
- #define __VKI_XEN_physdev_op 33
- #define __VKI_XEN_hvm_op 34
- #define __VKI_XEN_sysctl 35
- #define __VKI_XEN_domctl 36
- #define __VKI_XEN_kexec_op 37
- #define __VKI_XEN_tmem_op 38
- #define __VKI_XEN_xc_reserved_op 39 /* reserved for XenClient */
- #define __DEFINE_VKI_XEN_GUEST_HANDLE(name, type) \
- ___DEFINE_VKI_XEN_GUEST_HANDLE(name, type); \
- ___DEFINE_VKI_XEN_GUEST_HANDLE(const_##name, const type)
- #define DEFINE_VKI_XEN_GUEST_HANDLE(name) __DEFINE_VKI_XEN_GUEST_HANDLE(name, name)
- typedef vki_uint8_t vki_xen_domain_handle_t[16];
- typedef vki_uint16_t vki_xen_domid_t;
- #if defined(__i386__) || defined(__x86_64__)
- #include <vki/vki-xen-x86.h>
- #else
- #error "Need to define per-ARCH Xen types for this platform"
- #endif
- DEFINE_VKI_XEN_GUEST_HANDLE(void);
- DEFINE_VKI_XEN_GUEST_HANDLE(char);
- DEFINE_VKI_XEN_GUEST_HANDLE(vki_xen_pfn_t);
- __DEFINE_VKI_XEN_GUEST_HANDLE(vki_ulong, unsigned long);
- __DEFINE_VKI_XEN_GUEST_HANDLE(vki_int16, vki_int16_t);
- __DEFINE_VKI_XEN_GUEST_HANDLE(vki_int32, vki_int32_t);
- __DEFINE_VKI_XEN_GUEST_HANDLE(vki_int64, vki_int64_t);
- __DEFINE_VKI_XEN_GUEST_HANDLE(vki_uint8, vki_uint8_t);
- __DEFINE_VKI_XEN_GUEST_HANDLE(vki_uint16, vki_uint16_t);
- __DEFINE_VKI_XEN_GUEST_HANDLE(vki_uint32, vki_uint32_t);
- __DEFINE_VKI_XEN_GUEST_HANDLE(vki_uint64, vki_uint64_t);
- struct vki_xenctl_bitmap {
- VKI_XEN_GUEST_HANDLE_64(vki_uint8) bitmap;
- vki_uint32_t nr_bits;
- };
- #include <vki/vki-xen-domctl.h>
- #include <vki/vki-xen-sysctl.h>
- #include <vki/vki-xen-mmuext.h>
- #include <vki/vki-xen-schedop.h>
- #include <vki/vki-xen-memory.h>
- #include <vki/vki-xen-evtchn.h>
- #include <vki/vki-xen-gnttab.h>
- #include <vki/vki-xen-version.h>
- #include <vki/vki-xen-hvm.h>
- #include <vki/vki-xen-tmem.h>
- #include <vki/vki-xen-xsm.h>
- #include <vki/vki-xen-physdev.h>
- #endif // __VKI_XEN_H
- /*--------------------------------------------------------------------*/
- /*--- end ---*/
- /*--------------------------------------------------------------------*/
|