1 #ifndef _ASM_GENERIC_PAGE_H_ 2 #define _ASM_GENERIC_PAGE_H_ 3 /* 4 * asm-generic/page.h 5 * adapted from the Linux kernel's include/asm-generic/page.h 6 * 7 * Copyright (C) 2014, Red Hat Inc, Andrew Jones <drjones@redhat.com> 8 * 9 * This work is licensed under the terms of the GNU LGPL, version 2. 10 */ 11 12 #define PAGE_SHIFT 12 13 #ifndef __ASSEMBLY__ 14 #define PAGE_SIZE (1UL << PAGE_SHIFT) 15 #else 16 #define PAGE_SIZE (1 << PAGE_SHIFT) 17 #endif 18 #define PAGE_MASK (~(PAGE_SIZE-1)) 19 #define PAGE_ALIGN(addr) (((addr) + (PAGE_SIZE-1)) & PAGE_MASK) 20 21 #ifndef __ASSEMBLY__ 22 #define __va(x) ((void *)((unsigned long) (x))) 23 #define __pa(x) ((unsigned long) (x)) 24 #define virt_to_pfn(kaddr) (__pa(kaddr) >> PAGE_SHIFT) 25 #define pfn_to_virt(pfn) __va((pfn) << PAGE_SHIFT) 26 #endif 27 28 #endif 29