/*
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_MEMORY_H
#define __VKI_XEN_MEMORY_H
#define VKI_XENMEM_increase_reservation 0
#define VKI_XENMEM_decrease_reservation 1
#define VKI_XENMEM_maximum_ram_page 2
#define VKI_XENMEM_current_reservation 3
#define VKI_XENMEM_maximum_reservation 4
#define VKI_XENMEM_machphys_mfn_list 5
#define VKI_XENMEM_populate_physmap 6
#define VKI_XENMEM_add_to_physmap 7
#define VKI_XENMEM_memory_map 9
#define VKI_XENMEM_machine_memory_map 10
#define VKI_XENMEM_exchange 11
#define VKI_XENMEM_machphys_mapping 12
#define VKI_XENMEM_set_memory_map 13
#define VKI_XENMEM_maximum_gpfn 14
#define VKI_XENMEM_remove_from_physmap 15
#define VKI_XENMEM_set_pod_target 16
#define VKI_XENMEM_get_pod_target 17
#define VKI_XENMEM_get_sharing_freed_pages 18
#define VKI_XENMEM_get_sharing_shared_pages 19
#define VKI_XENMEM_access_op 21
#define VKI_XENMEM_claim_pages 24
#define VKI_XENMEM_machphys_compat_mfn_list 25
struct vki_xen_memory_map {
unsigned int nr_entries;
VKI_XEN_GUEST_HANDLE(void) buffer;
};
struct vki_xen_foreign_memory_map {
vki_xen_domid_t domid;
struct vki_xen_memory_map map;
};
struct xen_memory_reservation {
VKI_XEN_GUEST_HANDLE(vki_xen_pfn_t) extent_start;
vki_xen_ulong_t nr_extents;
unsigned int extent_order;
unsigned int mem_flags;
vki_xen_domid_t domid;
};
struct vki_xen_machphys_mfn_list {
unsigned int max_extents; /* IN */
VKI_XEN_GUEST_HANDLE(vki_xen_pfn_t) extent_start; /* OUT */
unsigned int nr_extents; /* OUT */
};
struct vki_xen_add_to_physmap {
vki_xen_domid_t domid;
vki_uint16_t size;
#define VKI_XENMAPSPACE_shared_info 0
#define VKI_XENMAPSPACE_grant_table 1
#define VKI_XENMAPSPACE_gmfn 2
#define VKI_XENMAPSPACE_gmfn_range 3
#define VKI_XENMAPSPACE_gmfn_foreign 4
unsigned int space;
vki_xen_ulong_t idx;
vki_xen_pfn_t gpfn;
};
struct vki_xen_remove_from_physmap {
vki_xen_domid_t domid;
vki_xen_pfn_t gpfn;
};
struct vki_xen_mem_event_op {
vki_uint8_t op;
vki_xen_domid_t domain;
vki_uint64_t buffer;
vki_uint64_t gfn;
};
#endif // __VKI_XEN_MEMORY_H
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/