| lh | 9ed821d | 2023-04-07 01:36:19 -0700 | [diff] [blame] | 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 | /* 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 |  | 
|  | 24 | extern struct balloon_stats balloon_stats; | 
|  | 25 |  | 
|  | 26 | void balloon_set_new_target(unsigned long target); | 
|  | 27 |  | 
|  | 28 | int alloc_xenballooned_pages(int nr_pages, struct page **pages, | 
|  | 29 | bool highmem); | 
|  | 30 | void free_xenballooned_pages(int nr_pages, struct page **pages); | 
|  | 31 |  | 
|  | 32 | struct device; | 
|  | 33 | #ifdef CONFIG_XEN_SELFBALLOONING | 
|  | 34 | extern int register_xen_selfballooning(struct device *dev); | 
|  | 35 | #else | 
|  | 36 | static inline int register_xen_selfballooning(struct device *dev) | 
|  | 37 | { | 
|  | 38 | return -ENOSYS; | 
|  | 39 | } | 
|  | 40 | #endif |