| /* |
| 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 ---*/ |
| /*--------------------------------------------------------------------*/ |