Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-30 10:25:34

0001 /*
0002    This file is part of Valgrind, a dynamic binary instrumentation
0003    framework.
0004 
0005    Copyright (C) 2012-2017 Citrix
0006 
0007    This program is free software; you can redistribute it and/or
0008    modify it under the terms of the GNU General Public License as
0009    published by the Free Software Foundation; either version 2 of the
0010    License, or (at your option) any later version.
0011 
0012    This program is distributed in the hope that it will be useful, but
0013    WITHOUT ANY WARRANTY; without even the implied warranty of
0014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0015    General Public License for more details.
0016 
0017    You should have received a copy of the GNU General Public License
0018    along with this program; if not, see <http://www.gnu.org/licenses/>.
0019 
0020    The GNU General Public License is contained in the file COPYING.
0021 */
0022 
0023 /* Contributed by Andrew Cooper <andrew.cooper3@citrix.com>
0024    and Ian Campbell <ian.campbell@citrix.com> */
0025 
0026 #ifndef __VKI_XEN_MEMORY_H
0027 #define __VKI_XEN_MEMORY_H
0028 
0029 #define VKI_XENMEM_increase_reservation 0
0030 #define VKI_XENMEM_decrease_reservation 1
0031 #define VKI_XENMEM_maximum_ram_page     2
0032 #define VKI_XENMEM_current_reservation  3
0033 #define VKI_XENMEM_maximum_reservation  4
0034 #define VKI_XENMEM_machphys_mfn_list    5
0035 #define VKI_XENMEM_populate_physmap     6
0036 #define VKI_XENMEM_add_to_physmap       7
0037 #define VKI_XENMEM_memory_map           9
0038 #define VKI_XENMEM_machine_memory_map   10
0039 #define VKI_XENMEM_exchange             11
0040 #define VKI_XENMEM_machphys_mapping     12
0041 #define VKI_XENMEM_set_memory_map       13
0042 #define VKI_XENMEM_maximum_gpfn         14
0043 #define VKI_XENMEM_remove_from_physmap  15
0044 #define VKI_XENMEM_set_pod_target       16
0045 #define VKI_XENMEM_get_pod_target       17
0046 #define VKI_XENMEM_get_sharing_freed_pages    18
0047 #define VKI_XENMEM_get_sharing_shared_pages   19
0048 #define VKI_XENMEM_access_op                  21
0049 #define VKI_XENMEM_claim_pages                24
0050 #define VKI_XENMEM_machphys_compat_mfn_list   25
0051 
0052 struct vki_xen_memory_map {
0053     unsigned int nr_entries;
0054     VKI_XEN_GUEST_HANDLE(void) buffer;
0055 };
0056 
0057 struct vki_xen_foreign_memory_map {
0058     vki_xen_domid_t domid;
0059     struct vki_xen_memory_map map;
0060 };
0061 
0062 struct xen_memory_reservation {
0063     VKI_XEN_GUEST_HANDLE(vki_xen_pfn_t) extent_start;
0064     vki_xen_ulong_t    nr_extents;
0065     unsigned int   extent_order;
0066     unsigned int   mem_flags;
0067     vki_xen_domid_t domid;
0068 };
0069 
0070 struct vki_xen_machphys_mfn_list {
0071     unsigned int max_extents; /* IN */
0072     VKI_XEN_GUEST_HANDLE(vki_xen_pfn_t) extent_start; /* OUT */
0073     unsigned int nr_extents; /* OUT */
0074 };
0075 
0076 struct vki_xen_add_to_physmap {
0077     vki_xen_domid_t domid;
0078     vki_uint16_t size;
0079 
0080 #define VKI_XENMAPSPACE_shared_info  0
0081 #define VKI_XENMAPSPACE_grant_table  1
0082 #define VKI_XENMAPSPACE_gmfn         2
0083 #define VKI_XENMAPSPACE_gmfn_range   3
0084 #define VKI_XENMAPSPACE_gmfn_foreign 4
0085 
0086     unsigned int space;
0087     vki_xen_ulong_t idx;
0088     vki_xen_pfn_t gpfn;
0089 };
0090 
0091 struct vki_xen_remove_from_physmap {
0092     vki_xen_domid_t domid;
0093     vki_xen_pfn_t gpfn;
0094 };
0095 
0096 struct vki_xen_mem_event_op {
0097     vki_uint8_t     op;
0098     vki_xen_domid_t     domain;
0099     vki_uint64_t    buffer;
0100     vki_uint64_t    gfn;
0101 };
0102 
0103 #endif // __VKI_XEN_MEMORY_H
0104 
0105 /*--------------------------------------------------------------------*/
0106 /*--- end                                                          ---*/
0107 /*--------------------------------------------------------------------*/