xref: /openbmc/linux/arch/arc/include/asm/pgtable.h (revision 887069f4)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
4  */
5 
6 #ifndef _ASM_ARC_PGTABLE_H
7 #define _ASM_ARC_PGTABLE_H
8 
9 #include <linux/bits.h>
10 
11 #include <asm/pgtable-levels.h>
12 #include <asm/pgtable-bits-arcv2.h>
13 #include <asm/page.h>
14 #include <asm/mmu.h>
15 
16 /*
17  * Number of entries a user land program use.
18  * TASK_SIZE is the maximum vaddr that can be used by a userland program.
19  */
20 #define	USER_PTRS_PER_PGD	(TASK_SIZE / PGDIR_SIZE)
21 
22 #ifndef __ASSEMBLY__
23 
24 extern char empty_zero_page[PAGE_SIZE];
25 #define ZERO_PAGE(vaddr)	(virt_to_page(empty_zero_page))
26 
27 extern pgd_t swapper_pg_dir[] __aligned(PAGE_SIZE);
28 
29 /* Macro to mark a page protection as uncacheable */
30 #define pgprot_noncached(prot)	(__pgprot(pgprot_val(prot) & ~_PAGE_CACHEABLE))
31 
32 extern pgd_t swapper_pg_dir[] __aligned(PAGE_SIZE);
33 
34 /* to cope with aliasing VIPT cache */
35 #define HAVE_ARCH_UNMAPPED_AREA
36 
37 #endif /* __ASSEMBLY__ */
38 
39 #endif
40