xref: /openbmc/linux/include/xen/balloon.h (revision 8ee90c5c)
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