[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH RFC 09/13] x86/mm: export a bunch of {get, put}_page functions
They will be needed by common code and PV specific code later. No functional change. Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx> --- xen/arch/x86/mm.c | 41 ++++++++++++++++++----------------------- xen/include/asm-x86/mm.h | 16 ++++++++++++++++ 2 files changed, 34 insertions(+), 23 deletions(-) diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c index 3e4ad22513..13c8dd8ac0 100644 --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -678,7 +678,7 @@ int map_ldt_shadow_page(unsigned int off) } -static int get_page_from_pagenr(unsigned long page_nr, struct domain *d) +int get_page_from_pagenr(unsigned long page_nr, struct domain *d) { struct page_info *page = mfn_to_page(page_nr); @@ -692,11 +692,11 @@ static int get_page_from_pagenr(unsigned long page_nr, struct domain *d) } -static int get_page_and_type_from_pagenr(unsigned long page_nr, - unsigned long type, - struct domain *d, - int partial, - int preemptible) +int get_page_and_type_from_pagenr(unsigned long page_nr, + unsigned long type, + struct domain *d, + int partial, + int preemptible) { struct page_info *page = mfn_to_page(page_nr); int rc; @@ -853,9 +853,8 @@ static int print_mmio_emul_range(unsigned long s, unsigned long e, void *arg) } #endif -int -get_page_from_l1e( - l1_pgentry_t l1e, struct domain *l1e_owner, struct domain *pg_owner) +int get_page_from_l1e(l1_pgentry_t l1e, struct domain *l1e_owner, + struct domain *pg_owner) { unsigned long mfn = l1e_get_pfn(l1e); struct page_info *page = mfn_to_page(mfn); @@ -1057,9 +1056,7 @@ get_page_from_l1e( /* NB. Virtual address 'l2e' maps to a machine address within frame 'pfn'. */ define_get_linear_pagetable(l2); -static int -get_page_from_l2e( - l2_pgentry_t l2e, unsigned long pfn, struct domain *d) +int get_page_from_l2e(l2_pgentry_t l2e, unsigned long pfn, struct domain *d) { unsigned long mfn = l2e_get_pfn(l2e); int rc; @@ -1099,9 +1096,8 @@ get_page_from_l2e( define_get_linear_pagetable(l3); -static int -get_page_from_l3e( - l3_pgentry_t l3e, unsigned long pfn, struct domain *d, int partial) +int get_page_from_l3e(l3_pgentry_t l3e, unsigned long pfn, struct domain *d, + int partial) { int rc; @@ -1125,9 +1121,8 @@ get_page_from_l3e( } define_get_linear_pagetable(l4); -static int -get_page_from_l4e( - l4_pgentry_t l4e, unsigned long pfn, struct domain *d, int partial) +int get_page_from_l4e(l4_pgentry_t l4e, unsigned long pfn, struct domain *d, + int partial) { int rc; @@ -1209,7 +1204,7 @@ void put_page_from_l1e(l1_pgentry_t l1e, struct domain *l1e_owner) * NB. Virtual address 'l2e' maps to a machine address within frame 'pfn'. * Note also that this automatically deals correctly with linear p.t.'s. */ -static int put_page_from_l2e(l2_pgentry_t l2e, unsigned long pfn) +int put_page_from_l2e(l2_pgentry_t l2e, unsigned long pfn) { if ( !(l2e_get_flags(l2e) & _PAGE_PRESENT) || (l2e_get_pfn(l2e) == pfn) ) return 1; @@ -1224,8 +1219,8 @@ static int put_page_from_l2e(l2_pgentry_t l2e, unsigned long pfn) static int __put_page_type(struct page_info *, int preemptible); -static int put_page_from_l3e(l3_pgentry_t l3e, unsigned long pfn, - int partial, bool_t defer) +int put_page_from_l3e(l3_pgentry_t l3e, unsigned long pfn, + int partial, bool_t defer) { struct page_info *pg; @@ -1262,8 +1257,8 @@ static int put_page_from_l3e(l3_pgentry_t l3e, unsigned long pfn, return put_page_and_type_preemptible(pg); } -static int put_page_from_l4e(l4_pgentry_t l4e, unsigned long pfn, - int partial, bool_t defer) +int put_page_from_l4e(l4_pgentry_t l4e, unsigned long pfn, + int partial, bool_t defer) { if ( (l4e_get_flags(l4e) & _PAGE_PRESENT) && (l4e_get_pfn(l4e) != pfn) ) diff --git a/xen/include/asm-x86/mm.h b/xen/include/asm-x86/mm.h index 4a5730e412..5e808c5c66 100644 --- a/xen/include/asm-x86/mm.h +++ b/xen/include/asm-x86/mm.h @@ -364,6 +364,22 @@ int put_old_guest_table(struct vcpu *); int get_page_from_l1e( l1_pgentry_t l1e, struct domain *l1e_owner, struct domain *pg_owner); void put_page_from_l1e(l1_pgentry_t l1e, struct domain *l1e_owner); +int get_page_from_l2e( l2_pgentry_t l2e, unsigned long pfn, struct domain *d); +int put_page_from_l2e(l2_pgentry_t l2e, unsigned long pfn); +int get_page_from_l3e(l3_pgentry_t l3e, unsigned long pfn, struct domain *d, + int partial); +int put_page_from_l3e(l3_pgentry_t l3e, unsigned long pfn, + int partial, bool_t defer); +int get_page_from_l4e(l4_pgentry_t l4e, unsigned long pfn, struct domain *d, + int partial); +int put_page_from_l4e(l4_pgentry_t l4e, unsigned long pfn, + int partial, bool_t defer); +int get_page_from_pagenr(unsigned long page_nr, struct domain *d); +int get_page_and_type_from_pagenr(unsigned long page_nr, + unsigned long type, + struct domain *d, + int partial, + int preemptible); static inline void put_page_and_type(struct page_info *page) { -- 2.11.0 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |