diff options
author | David Vrabel <david.vrabel@citrix.com> | 2011-09-28 12:46:34 -0400 |
---|---|---|
committer | Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> | 2011-09-29 11:12:10 -0400 |
commit | 8b5d44a5ac93cd7a1b044db3ff0ba4955b4ba5ec (patch) | |
tree | 3db094063c6ae765704414a0d84bc8a009c4c2d6 /include/xen | |
parent | b1cbf9b1d6af22ba262d99abcfd71d5d90dbd57a (diff) |
xen: allow balloon driver to use more than one memory region
Allow the xen balloon driver to populate its list of extra pages from
more than one region of memory. This will allow platforms to provide
(for example) a region of low memory and a region of high memory.
The maximum possible number of extra regions is 128 (== E820MAX) which
is quite large so xen_extra_mem is placed in __initdata. This is safe
as both xen_memory_setup() and balloon_init() are in __init.
The balloon regions themselves are not altered (i.e., there is still
only the one region).
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Diffstat (limited to 'include/xen')
-rw-r--r-- | include/xen/page.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/include/xen/page.h b/include/xen/page.h index 92b61f8c772c..12765b6f9517 100644 --- a/include/xen/page.h +++ b/include/xen/page.h | |||
@@ -3,7 +3,15 @@ | |||
3 | 3 | ||
4 | #include <asm/xen/page.h> | 4 | #include <asm/xen/page.h> |
5 | 5 | ||
6 | extern phys_addr_t xen_extra_mem_start, xen_extra_mem_size; | 6 | struct xen_memory_region { |
7 | phys_addr_t start; | ||
8 | phys_addr_t size; | ||
9 | }; | ||
10 | |||
11 | #define XEN_EXTRA_MEM_MAX_REGIONS 128 /* == E820MAX */ | ||
12 | |||
13 | extern __initdata | ||
14 | struct xen_memory_region xen_extra_mem[XEN_EXTRA_MEM_MAX_REGIONS]; | ||
7 | 15 | ||
8 | extern unsigned long xen_released_pages; | 16 | extern unsigned long xen_released_pages; |
9 | 17 | ||