| #ifndef _LINUX_VIRTIO_BALLOON_H | 
 | #define _LINUX_VIRTIO_BALLOON_H | 
 | /* This header is BSD licensed so anyone can use the definitions to implement | 
 |  * compatible drivers/servers. */ | 
 | #include <linux/virtio_ids.h> | 
 | #include <linux/virtio_config.h> | 
 |  | 
 | /* The feature bitmap for virtio balloon */ | 
 | #define VIRTIO_BALLOON_F_MUST_TELL_HOST	0 /* Tell before reclaiming pages */ | 
 | #define VIRTIO_BALLOON_F_STATS_VQ	1 /* Memory Stats virtqueue */ | 
 |  | 
 | /* Size of a PFN in the balloon interface. */ | 
 | #define VIRTIO_BALLOON_PFN_SHIFT 12 | 
 |  | 
 | struct virtio_balloon_config | 
 | { | 
 | 	/* Number of pages host wants Guest to give up. */ | 
 | 	__le32 num_pages; | 
 | 	/* Number of pages we've actually got in balloon. */ | 
 | 	__le32 actual; | 
 | }; | 
 |  | 
 | #define VIRTIO_BALLOON_S_SWAP_IN  0   /* Amount of memory swapped in */ | 
 | #define VIRTIO_BALLOON_S_SWAP_OUT 1   /* Amount of memory swapped out */ | 
 | #define VIRTIO_BALLOON_S_MAJFLT   2   /* Number of major faults */ | 
 | #define VIRTIO_BALLOON_S_MINFLT   3   /* Number of minor faults */ | 
 | #define VIRTIO_BALLOON_S_MEMFREE  4   /* Total amount of free memory */ | 
 | #define VIRTIO_BALLOON_S_MEMTOT   5   /* Total amount of memory */ | 
 | #define VIRTIO_BALLOON_S_NR       6 | 
 |  | 
 | struct virtio_balloon_stat { | 
 | 	u16 tag; | 
 | 	u64 val; | 
 | } __attribute__((packed)); | 
 |  | 
 | #endif /* _LINUX_VIRTIO_BALLOON_H */ |