Signed-off-by: Andrew Jones <drjones@xxxxxxxxxx> --- lib/asm-generic/io.h | 13 +++++++++++++ lib/asm-generic/page.h | 28 ++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 lib/asm-generic/page.h diff --git a/lib/asm-generic/io.h b/lib/asm-generic/io.h index f00f4d3e68fe1..a9939d3a5921f 100644 --- a/lib/asm-generic/io.h +++ b/lib/asm-generic/io.h @@ -10,6 +10,7 @@ * This work is licensed under the terms of the GNU LGPL, version 2. */ #include "libcflat.h" +#include "asm/page.h" #ifndef __raw_readb static inline u8 __raw_readb(const volatile void *addr) @@ -159,4 +160,16 @@ static inline void *ioremap(u64 phys_addr, size_t size __unused) } #endif +#ifndef virt_to_phys +static inline unsigned long virt_to_phys(volatile void *address) +{ + return __pa((unsigned long)address); +} + +static inline void *phys_to_virt(unsigned long address) +{ + return __va(address); +} +#endif + #endif /* _ASM_GENERIC_IO_H_ */ diff --git a/lib/asm-generic/page.h b/lib/asm-generic/page.h new file mode 100644 index 0000000000000..559938fcf0b3f --- /dev/null +++ b/lib/asm-generic/page.h @@ -0,0 +1,28 @@ +#ifndef _ASM_GENERIC_PAGE_H_ +#define _ASM_GENERIC_PAGE_H_ +/* + * asm-generic/page.h + * adapted from the Linux kernel's include/asm-generic/page.h + * + * Copyright (C) 2014, Red Hat Inc, Andrew Jones <drjones@xxxxxxxxxx> + * + * This work is licensed under the terms of the GNU LGPL, version 2. + */ + +#define PAGE_SHIFT 12 +#ifndef __ASSEMBLY__ +#define PAGE_SIZE (1UL << PAGE_SHIFT) +#else +#define PAGE_SIZE (1 << PAGE_SHIFT) +#endif +#define PAGE_MASK (~(PAGE_SIZE-1)) +#define PAGE_ALIGN(addr) (((addr) + (PAGE_SIZE-1)) & PAGE_MASK) + +#ifndef __ASSEMBLY__ +#define __va(x) ((void *)((unsigned long) (x))) +#define __pa(x) ((unsigned long) (x)) +#define virt_to_pfn(kaddr) (__pa(kaddr) >> PAGE_SHIFT) +#define pfn_to_virt(pfn) __va((pfn) << PAGE_SHIFT) +#endif + +#endif -- 1.9.3 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html