1#ifndef _LINUX_VIRTIO_BALLOON_H 2#define _LINUX_VIRTIO_BALLOON_H 3/* This header is BSD licensed so anyone can use the definitions to implement 4 * compatible drivers/servers. */ 5#include <linux/virtio_ids.h> 6#include <linux/virtio_config.h> 7 8/* The feature bitmap for virtio balloon */ 9#define VIRTIO_BALLOON_F_MUST_TELL_HOST 0 /* Tell before reclaiming pages */ 10#define VIRTIO_BALLOON_F_STATS_VQ 1 /* Memory Stats virtqueue */ 11 12/* Size of a PFN in the balloon interface. */ 13#define VIRTIO_BALLOON_PFN_SHIFT 12 14 15struct 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}; 22 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 36#endif /* _LINUX_VIRTIO_BALLOON_H */ 37