Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
at v4.15-rc5 51 lines 1.3 kB view raw
1/* SPDX-License-Identifier: GPL-2.0 */ 2/****************************************************************************** 3 * Xen balloon functionality 4 */ 5 6#define RETRY_UNLIMITED 0 7 8struct balloon_stats { 9 /* We aim for 'current allocation' == 'target allocation'. */ 10 unsigned long current_pages; 11 unsigned long target_pages; 12 unsigned long target_unpopulated; 13 /* Number of pages in high- and low-memory balloons. */ 14 unsigned long balloon_low; 15 unsigned long balloon_high; 16 unsigned long total_pages; 17 unsigned long schedule_delay; 18 unsigned long max_schedule_delay; 19 unsigned long retry_count; 20 unsigned long max_retry_count; 21}; 22 23extern struct balloon_stats balloon_stats; 24 25void balloon_set_new_target(unsigned long target); 26 27int alloc_xenballooned_pages(int nr_pages, struct page **pages); 28void free_xenballooned_pages(int nr_pages, struct page **pages); 29 30struct device; 31#ifdef CONFIG_XEN_SELFBALLOONING 32extern int register_xen_selfballooning(struct device *dev); 33#else 34static inline int register_xen_selfballooning(struct device *dev) 35{ 36 return -ENOSYS; 37} 38#endif 39 40#ifdef CONFIG_XEN_BALLOON 41void xen_balloon_init(void); 42#else 43static inline void xen_balloon_init(void) 44{ 45} 46#endif 47 48#ifdef CONFIG_XEN_BALLOON_MEMORY_HOTPLUG 49struct resource; 50void arch_xen_balloon_init(struct resource *hostmem_resource); 51#endif