]> git.kernelconcepts.de Git - karo-tx-linux.git/blob - include/xen/balloon.h
Merge tag 'for-linus-20170812' of git://git.infradead.org/linux-mtd
[karo-tx-linux.git] / include / xen / balloon.h
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