1 /* 2 * Based on arch/arm/include/asm/page.h 3 * 4 * Copyright (C) 1995-2003 Russell King 5 * Copyright (C) 2012 ARM Ltd. 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License version 2 as 9 * published by the Free Software Foundation. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 #ifndef __ASM_PAGE_H 20 #define __ASM_PAGE_H 21 22 #include <asm/page-def.h> 23 24 #ifndef __ASSEMBLY__ 25 26 #include <linux/personality.h> /* for READ_IMPLIES_EXEC */ 27 #include <asm/pgtable-types.h> 28 29 extern void __cpu_clear_user_page(void *p, unsigned long user); 30 extern void __cpu_copy_user_page(void *to, const void *from, 31 unsigned long user); 32 extern void copy_page(void *to, const void *from); 33 extern void clear_page(void *to); 34 35 #define clear_user_page(addr,vaddr,pg) __cpu_clear_user_page(addr, vaddr) 36 #define copy_user_page(to,from,vaddr,pg) __cpu_copy_user_page(to, from, vaddr) 37 38 typedef struct page *pgtable_t; 39 40 #ifdef CONFIG_HAVE_ARCH_PFN_VALID 41 extern int pfn_valid(unsigned long); 42 #endif 43 44 #include <asm/memory.h> 45 46 #endif /* !__ASSEMBLY__ */ 47 48 #define VM_DATA_DEFAULT_FLAGS \ 49 (((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0) | \ 50 VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) 51 52 #include <asm-generic/getorder.h> 53 54 #endif 55