1/****************************************************************************** 2 * Xen balloon functionality 3 */ 4 5#define RETRY_UNLIMITED 0 6 7struct balloon_stats { 8 /* We aim for 'current allocation' == 'target allocation'. */ 9 unsigned long current_pages; 10 unsigned long target_pages; 11 /* Number of pages in high- and low-memory balloons. */ 12 unsigned long balloon_low; 13 unsigned long balloon_high; 14 unsigned long schedule_delay; 15 unsigned long max_schedule_delay; 16 unsigned long retry_count; 17 unsigned long max_retry_count; 18#ifdef CONFIG_XEN_BALLOON_MEMORY_HOTPLUG 19 unsigned long hotplug_pages; 20 unsigned long balloon_hotplug; 21#endif 22}; 23 24extern struct balloon_stats balloon_stats; 25 26void balloon_set_new_target(unsigned long target); 27 28int alloc_xenballooned_pages(int nr_pages, struct page **pages, 29 bool highmem); 30void free_xenballooned_pages(int nr_pages, struct page **pages); 31 32struct device; 33#ifdef CONFIG_XEN_SELFBALLOONING 34extern int register_xen_selfballooning(struct device *dev); 35#else 36static inline int register_xen_selfballooning(struct device *dev) 37{ 38 return -ENOSYS; 39} 40#endif 41 42#ifdef CONFIG_XEN_BALLOON 43void xen_balloon_init(void); 44#else 45static inline void xen_balloon_init(void) 46{ 47} 48#endif 49