| 
									
										
										
										
											2011-03-14 11:29:37 -04:00
										 |  |  | /******************************************************************************
 | 
					
						
							|  |  |  |  * Xen balloon functionality | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define RETRY_UNLIMITED	0
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct balloon_stats { | 
					
						
							|  |  |  | 	/* We aim for 'current allocation' == 'target allocation'. */ | 
					
						
							|  |  |  | 	unsigned long current_pages; | 
					
						
							|  |  |  | 	unsigned long target_pages; | 
					
						
							|  |  |  | 	/* Number of pages in high- and low-memory balloons. */ | 
					
						
							|  |  |  | 	unsigned long balloon_low; | 
					
						
							|  |  |  | 	unsigned long balloon_high; | 
					
						
							|  |  |  | 	unsigned long schedule_delay; | 
					
						
							|  |  |  | 	unsigned long max_schedule_delay; | 
					
						
							|  |  |  | 	unsigned long retry_count; | 
					
						
							|  |  |  | 	unsigned long max_retry_count; | 
					
						
							| 
									
										
										
										
											2011-07-25 17:12:06 -07:00
										 |  |  | #ifdef CONFIG_XEN_BALLOON_MEMORY_HOTPLUG
 | 
					
						
							|  |  |  | 	unsigned long hotplug_pages; | 
					
						
							|  |  |  | 	unsigned long balloon_hotplug; | 
					
						
							|  |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2011-03-14 11:29:37 -04:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern struct balloon_stats balloon_stats; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void balloon_set_new_target(unsigned long target); | 
					
						
							| 
									
										
										
										
											2011-03-15 10:23:57 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-29 11:57:55 +01:00
										 |  |  | int alloc_xenballooned_pages(int nr_pages, struct page **pages, | 
					
						
							|  |  |  | 		bool highmem); | 
					
						
							|  |  |  | void free_xenballooned_pages(int nr_pages, struct page **pages); | 
					
						
							| 
									
										
										
										
											2011-07-08 12:26:21 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-12-14 15:32:50 -08:00
										 |  |  | struct device; | 
					
						
							| 
									
										
										
										
											2011-07-08 12:26:21 -06:00
										 |  |  | #ifdef CONFIG_XEN_SELFBALLOONING
 | 
					
						
							| 
									
										
										
										
											2011-12-14 15:32:50 -08:00
										 |  |  | extern int register_xen_selfballooning(struct device *dev); | 
					
						
							| 
									
										
										
										
											2011-07-08 12:26:21 -06:00
										 |  |  | #else
 | 
					
						
							| 
									
										
										
										
											2011-12-14 15:32:50 -08:00
										 |  |  | static inline int register_xen_selfballooning(struct device *dev) | 
					
						
							| 
									
										
										
										
											2011-07-08 12:26:21 -06:00
										 |  |  | { | 
					
						
							|  |  |  | 	return -ENOSYS; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | #endif
 |