blob: a50ecd1b81a2acce1da35758767d3abcf0b06a99 [file] [log] [blame]
Rusty Russell6b35e402008-02-04 23:50:12 -05001#ifndef _LINUX_VIRTIO_BALLOON_H
2#define _LINUX_VIRTIO_BALLOON_H
Rusty Russell674bfc22008-07-25 12:06:03 -05003/* This header is BSD licensed so anyone can use the definitions to implement
4 * compatible drivers/servers. */
Christian Borntraegere95646c2009-09-30 11:17:21 +02005#include <linux/virtio_ids.h>
Rusty Russell6b35e402008-02-04 23:50:12 -05006#include <linux/virtio_config.h>
7
Rusty Russell6b35e402008-02-04 23:50:12 -05008/* The feature bitmap for virtio balloon */
9#define VIRTIO_BALLOON_F_MUST_TELL_HOST 0 /* Tell before reclaiming pages */
Adam Litke9564e132009-11-30 10:14:15 -060010#define VIRTIO_BALLOON_F_STATS_VQ 1 /* Memory Stats virtqueue */
Rusty Russell6b35e402008-02-04 23:50:12 -050011
Hollis Blanchard1b4aa2f2008-11-13 15:48:33 -060012/* Size of a PFN in the balloon interface. */
13#define VIRTIO_BALLOON_PFN_SHIFT 12
14
Rusty Russell6b35e402008-02-04 23:50:12 -050015struct virtio_balloon_config
16{
17 /* Number of pages host wants Guest to give up. */
18 __le32 num_pages;
19 /* Number of pages we've actually got in balloon. */
20 __le32 actual;
21};
Adam Litke9564e132009-11-30 10:14:15 -060022
23#define VIRTIO_BALLOON_S_SWAP_IN 0 /* Amount of memory swapped in */
24#define VIRTIO_BALLOON_S_SWAP_OUT 1 /* Amount of memory swapped out */
25#define VIRTIO_BALLOON_S_MAJFLT 2 /* Number of major faults */
26#define VIRTIO_BALLOON_S_MINFLT 3 /* Number of minor faults */
27#define VIRTIO_BALLOON_S_MEMFREE 4 /* Total amount of free memory */
28#define VIRTIO_BALLOON_S_MEMTOT 5 /* Total amount of memory */
29#define VIRTIO_BALLOON_S_NR 6
30
31struct virtio_balloon_stat {
32 u16 tag;
33 u64 val;
34} __attribute__((packed));
35
Rusty Russell6b35e402008-02-04 23:50:12 -050036#endif /* _LINUX_VIRTIO_BALLOON_H */