mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
xen: arm: initialise dom_{xen,io,cow}
Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Tim Deegan <tim@xen.org> Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Committed-by: Ian Campbell <ian.campbell@citrix.com>
This commit is contained in:
1 parent
cce935c61d
commit
6d31f5491a
4 files changed
+31
-2
No files matched your search
@@ -10,6 +10,5 @@ x: mov pc, lr
|
||||
DUMMY(nr_irqs_gsi);
|
||||
|
||||
/* Other */
|
||||
DUMMY(dom_cow);
|
||||
DUMMY(send_timer_event);
|
||||
DUMMY(share_xen_page_with_privileged_guests);
|
||||
+27
-1
@@ -30,12 +30,13 @@
|
||||
#include <xen/event.h>
|
||||
#include <xen/guest_access.h>
|
||||
#include <xen/domain_page.h>
|
||||
#include <xen/err.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/current.h>
|
||||
#include <public/memory.h>
|
||||
#include <xen/sched.h>
|
||||
|
||||
struct domain *dom_xen, *dom_io;
|
||||
struct domain *dom_xen, *dom_io, *dom_cow;
|
||||
|
||||
/* Static start-of-day pagetables that we use before the allocators are up */
|
||||
lpae_t xen_pgtable[LPAE_ENTRIES] __attribute__((__aligned__(4096)));
|
||||
@@ -206,6 +207,31 @@ void unmap_domain_page(const void *va)
|
||||
local_irq_restore(flags);
|
||||
}
|
||||
|
||||
void __init arch_init_memory(void)
|
||||
{
|
||||
/*
|
||||
* Initialise our DOMID_XEN domain.
|
||||
* Any Xen-heap pages that we will allow to be mapped will have
|
||||
* their domain field set to dom_xen.
|
||||
*/
|
||||
dom_xen = domain_create(DOMID_XEN, DOMCRF_dummy, 0);
|
||||
BUG_ON(IS_ERR(dom_xen));
|
||||
|
||||
/*
|
||||
* Initialise our DOMID_IO domain.
|
||||
* This domain owns I/O pages that are within the range of the page_info
|
||||
* array. Mappings occur at the priv of the caller.
|
||||
*/
|
||||
dom_io = domain_create(DOMID_IO, DOMCRF_dummy, 0);
|
||||
BUG_ON(IS_ERR(dom_io));
|
||||
|
||||
/*
|
||||
* Initialise our COW domain.
|
||||
* This domain owns sharable pages.
|
||||
*/
|
||||
dom_cow = domain_create(DOMID_COW, DOMCRF_dummy, 0);
|
||||
BUG_ON(IS_ERR(dom_cow));
|
||||
}
|
||||
|
||||
/* Boot-time pagetable setup.
|
||||
* Changes here may need matching changes in head.S */
|
||||
|
||||
@@ -265,6 +265,8 @@ void __init start_xen(unsigned long boot_phys_offset,
|
||||
|
||||
rcu_init();
|
||||
|
||||
arch_init_memory();
|
||||
|
||||
local_irq_enable();
|
||||
|
||||
smp_prepare_cpus(cpus);
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
|
||||
#include <public/version.h>
|
||||
|
||||
void arch_init_memory(void);
|
||||
|
||||
void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len, int attrindx);
|
||||
|
||||
void arch_get_xen_caps(xen_capabilities_info_t *info);
|
||||
|
||||