xref: /openbmc/linux/arch/sh/include/asm/pgtable-2level.h (revision 4b4193256c8d3bc3a5397b5cd9494c2ad386317d)
1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
2e44d6c40SPaul Mundt #ifndef __ASM_SH_PGTABLE_2LEVEL_H
3e44d6c40SPaul Mundt #define __ASM_SH_PGTABLE_2LEVEL_H
4e44d6c40SPaul Mundt 
5e44d6c40SPaul Mundt #include <asm-generic/pgtable-nopmd.h>
6e44d6c40SPaul Mundt 
7e44d6c40SPaul Mundt /*
8e44d6c40SPaul Mundt  * traditional two-level paging structure
9e44d6c40SPaul Mundt  */
10e44d6c40SPaul Mundt #define PAGETABLE_LEVELS	2
11e44d6c40SPaul Mundt 
12e44d6c40SPaul Mundt /* PTE bits */
13e44d6c40SPaul Mundt #define PTE_MAGNITUDE		2	/* 32-bit PTEs */
14e44d6c40SPaul Mundt 
15e44d6c40SPaul Mundt #define PTE_SHIFT		PAGE_SHIFT
16e44d6c40SPaul Mundt #define PTE_BITS		(PTE_SHIFT - PTE_MAGNITUDE)
17e44d6c40SPaul Mundt 
18e44d6c40SPaul Mundt /* PGD bits */
19e44d6c40SPaul Mundt #define PGDIR_SHIFT		(PTE_SHIFT + PTE_BITS)
20e44d6c40SPaul Mundt 
21e44d6c40SPaul Mundt #define PTRS_PER_PGD		(PAGE_SIZE / (1 << PTE_MAGNITUDE))
22e44d6c40SPaul Mundt #define USER_PTRS_PER_PGD	(TASK_SIZE/PGDIR_SIZE)
23e44d6c40SPaul Mundt 
24e44d6c40SPaul Mundt #endif /* __ASM_SH_PGTABLE_2LEVEL_H */
25