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