diff mbox series

[Xen-devel,v2,01/24] xen/x86: mm: Introduce {G, M}FN <-> {G, M}ADDR helpers

Message ID 20170912100330.2168-2-julien.grall@arm.com
State Accepted
Commit caa8d100b923f2abfb6ba54dbe20ab3f37f8bd91
Headers show
Series xen/arm: Memory subsystem clean-up | expand

Commit Message

Julien Grall Sept. 12, 2017, 10:03 a.m. UTC
The new wrappers will add more safety when converting an address to a
frame number (either machine or guest). They are already existing for
Arm and could be useful in common code.

Signed-off-by: Julien Grall <julien.grall@arm.com>
---

Changes in v2:
    - Implement it in arch specific rather than in common code. Hence
    rename the patch.

Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>
---
 xen/include/asm-x86/page.h | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Andrew Cooper Sept. 12, 2017, 10:14 a.m. UTC | #1
On 12/09/17 11:03, Julien Grall wrote:
> The new wrappers will add more safety when converting an address to a
> frame number (either machine or guest). They are already existing for
> Arm and could be useful in common code.
>
> Signed-off-by: Julien Grall <julien.grall@arm.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Wei Liu Sept. 12, 2017, 10:29 a.m. UTC | #2
On Tue, Sep 12, 2017 at 11:03:07AM +0100, Julien Grall wrote:
> The new wrappers will add more safety when converting an address to a
> frame number (either machine or guest). They are already existing for
> Arm and could be useful in common code.
> 
> Signed-off-by: Julien Grall <julien.grall@arm.com>

Reviewed-by: Wei Liu <wei.liu2@citrix.com>
diff mbox series

Patch

diff --git a/xen/include/asm-x86/page.h b/xen/include/asm-x86/page.h
index cde5c6b89b..45ca742678 100644
--- a/xen/include/asm-x86/page.h
+++ b/xen/include/asm-x86/page.h
@@ -250,6 +250,10 @@  void copy_page_sse2(void *, const void *);
 /* Convert between frame number and address formats.  */
 #define __pfn_to_paddr(pfn) ((paddr_t)(pfn) << PAGE_SHIFT)
 #define __paddr_to_pfn(pa)  ((unsigned long)((pa) >> PAGE_SHIFT))
+#define gfn_to_gaddr(gfn)   __pfn_to_paddr(gfn_x(gfn))
+#define gaddr_to_gfn(ga)    _gfn(__paddr_to_pfn(ga))
+#define mfn_to_maddr(mfn)   __pfn_to_paddr(mfn_x(mfn))
+#define maddr_to_mfn(ma)    _mfn(__paddr_to_pfn(ma))
 
 /*
  * We define non-underscored wrappers for above conversion functions. These are