]>
Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
803eb047 DDG |
2 | /****************************************************************************** |
3 | * Xen balloon functionality | |
4 | */ | |
aecb2016 RPM |
5 | #ifndef _XEN_BALLOON_H |
6 | #define _XEN_BALLOON_H | |
803eb047 DDG |
7 | |
8 | #define RETRY_UNLIMITED 0 | |
9 | ||
10 | struct balloon_stats { | |
11 | /* We aim for 'current allocation' == 'target allocation'. */ | |
12 | unsigned long current_pages; | |
13 | unsigned long target_pages; | |
1cf6a6c8 | 14 | unsigned long target_unpopulated; |
803eb047 DDG |
15 | /* Number of pages in high- and low-memory balloons. */ |
16 | unsigned long balloon_low; | |
17 | unsigned long balloon_high; | |
de5a77d8 | 18 | unsigned long total_pages; |
803eb047 DDG |
19 | unsigned long schedule_delay; |
20 | unsigned long max_schedule_delay; | |
21 | unsigned long retry_count; | |
22 | unsigned long max_retry_count; | |
23 | }; | |
24 | ||
25 | extern struct balloon_stats balloon_stats; | |
26 | ||
27 | void balloon_set_new_target(unsigned long target); | |
b6f30679 | 28 | |
81b286e0 | 29 | int alloc_xenballooned_pages(int nr_pages, struct page **pages); |
693394b8 | 30 | void free_xenballooned_pages(int nr_pages, struct page **pages); |
a50777c7 | 31 | |
96edd61d JG |
32 | #ifdef CONFIG_XEN_BALLOON |
33 | void xen_balloon_init(void); | |
34 | #else | |
35 | static inline void xen_balloon_init(void) | |
36 | { | |
37 | } | |
38 | #endif | |
aecb2016 RPM |
39 | |
40 | #endif /* _XEN_BALLOON_H */ |