1436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#ifndef __VKI_XEN_MEMORY_H
2436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define __VKI_XEN_MEMORY_H
3436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
4436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XENMEM_increase_reservation 0
5436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XENMEM_decrease_reservation 1
6436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XENMEM_maximum_ram_page     2
7436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XENMEM_current_reservation  3
8436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XENMEM_maximum_reservation  4
9436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XENMEM_machphys_mfn_list    5
10436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XENMEM_populate_physmap     6
11436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XENMEM_add_to_physmap       7
12436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XENMEM_memory_map           9
13436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XENMEM_machine_memory_map   10
14436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XENMEM_exchange             11
15436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XENMEM_machphys_mapping     12
16436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XENMEM_set_memory_map       13
17436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XENMEM_maximum_gpfn         14
18436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XENMEM_remove_from_physmap  15
19436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XENMEM_set_pod_target       16
20436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XENMEM_get_pod_target       17
21436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XENMEM_get_sharing_freed_pages    18
22436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XENMEM_get_sharing_shared_pages   19
23436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XENMEM_claim_pages                24
24436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
25436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_xen_memory_map {
26436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    unsigned int nr_entries;
27436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    VKI_XEN_GUEST_HANDLE(void) buffer;
28436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov};
29436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
30436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_xen_foreign_memory_map {
31436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    vki_xen_domid_t domid;
32436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    struct vki_xen_memory_map map;
33436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov};
34436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
35436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct xen_memory_reservation {
36436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    VKI_XEN_GUEST_HANDLE(vki_xen_pfn_t) extent_start;
37436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    vki_xen_ulong_t    nr_extents;
38436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    unsigned int   extent_order;
39436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    unsigned int   mem_flags;
40436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    vki_xen_domid_t domid;
41436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov};
42436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
43436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_xen_machphys_mfn_list {
44436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    unsigned int max_extents; /* IN */
45436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    VKI_XEN_GUEST_HANDLE(vki_xen_pfn_t) extent_start; /* OUT */
46436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    unsigned int nr_extents; /* OUT */
47436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov};
48436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
49436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_xen_add_to_physmap {
50436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    vki_xen_domid_t domid;
51436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    vki_uint16_t size;
52436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
53436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XENMAPSPACE_shared_info  0
54436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XENMAPSPACE_grant_table  1
55436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XENMAPSPACE_gmfn         2
56436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XENMAPSPACE_gmfn_range   3
57436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VKI_XENMAPSPACE_gmfn_foreign 4
58436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
59436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    unsigned int space;
60436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    vki_xen_ulong_t idx;
61436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    vki_xen_pfn_t gpfn;
62436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov};
63436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
64436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstruct vki_xen_remove_from_physmap {
65436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    vki_xen_domid_t domid;
66436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov    vki_xen_pfn_t gpfn;
67436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov};
68436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
69436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#endif // __VKI_XEN_MEMORY_H
70436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
71436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/*--------------------------------------------------------------------*/
72436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/*--- end                                                          ---*/
73436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/*--------------------------------------------------------------------*/
74