blob: ab402f09c87431594c6e3e9ef71d44d899b48cdd [file] [log] [blame]
bart3b35a082013-12-01 10:52:22 +00001#ifndef __VKI_XEN_TMEM_H
2#define __VKI_XEN_TMEM_H
3
4typedef VKI_XEN_GUEST_HANDLE(char) vki_xen_tmem_cli_va_t;
5
6
7/* version of ABI */
8#define VKI_XEN_TMEM_spec_version 1
9
10/* Commands to HYPERVISOR_tmem_op() */
11#define VKI_XEN_TMEM_control 0
12#define VKI_XEN_TMEM_new_pool 1
13#define VKI_XEN_TMEM_destroy_pool 2
14#define VKI_XEN_TMEM_new_page 3
15#define VKI_XEN_TMEM_put_page 4
16#define VKI_XEN_TMEM_get_page 5
17#define VKI_XEN_TMEM_flush_page 6
18#define VKI_XEN_TMEM_flush_object 7
19#define VKI_XEN_TMEM_read 8
20#define VKI_XEN_TMEM_write 9
21#define VKI_XEN_TMEM_xchg 10
22/* Privileged commands to HYPERVISOR_tmem_op() */
23#define VKI_XEN_tmem_auth 101
24#define VKI_XEN_tmem_restore_new 102
25
26/* for cmd = TMEM_CONTROL */
27struct vki_xen_tmem_ctrl {
28 vki_uint32_t subop;
29
30/* Subops for HYPERVISOR_tmem_op(TMEM_CONTROL) */
31#define VKI_XEN_TMEMC_thaw 0
32#define VKI_XEN_TMEMC_freeze 1
33#define VKI_XEN_TMEMC_flush 2
34#define VKI_XEN_TMEMC_destroy 3
35#define VKI_XEN_TMEMC_list 4
36#define VKI_XEN_TMEMC_set_weight 5
37#define VKI_XEN_TMEMC_set_cap 6
38#define VKI_XEN_TMEMC_set_compress 7
39#define VKI_XEN_TMEMC_query_freeable_mb 8
40#define VKI_XEN_TMEMC_save_begin 10
41#define VKI_XEN_TMEMC_save_get_version 11
42#define VKI_XEN_TMEMC_save_get_maxpools 12
43#define VKI_XEN_TMEMC_save_get_client_weight 13
44#define VKI_XEN_TMEMC_save_get_client_cap 14
45#define VKI_XEN_TMEMC_save_get_client_flags 15
46#define VKI_XEN_TMEMC_save_get_pool_flags 16
47#define VKI_XEN_TMEMC_save_get_pool_npages 17
48#define VKI_XEN_TMEMC_save_get_pool_uuid 18
49#define VKI_XEN_TMEMC_save_get_next_page 19
50#define VKI_XEN_TMEMC_save_get_next_inv 20
51#define VKI_XEN_TMEMC_save_end 21
52#define VKI_XEN_TMEMC_restore_begin 30
53#define VKI_XEN_TMEMC_restore_put_page 32
54#define VKI_XEN_TMEMC_restore_flush_page 33
55
56 vki_uint32_t cli_id;
57 vki_uint32_t arg1;
58 vki_uint32_t arg2;
59 vki_uint64_t oid[3];
60 vki_xen_tmem_cli_va_t buf;
61};
62
63struct vki_xen_tmem_op {
64 vki_uint32_t cmd;
65 vki_int32_t pool_id;
66 union {
67 struct vki_xen_tmem_ctrl ctrl;
68 } u;
69};
70
71#endif // __VKI_XEN_TMEM_H
72
73/*--------------------------------------------------------------------*/
74/*--- end ---*/
75/*--------------------------------------------------------------------*/