1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef _ASM_POWERPC_BOOK3S_64_SLICE_H 3 #define _ASM_POWERPC_BOOK3S_64_SLICE_H 4 5 #ifdef CONFIG_PPC_MM_SLICES 6 7 #define SLICE_LOW_SHIFT 28 8 #define SLICE_LOW_TOP (0x100000000ul) 9 #define SLICE_NUM_LOW (SLICE_LOW_TOP >> SLICE_LOW_SHIFT) 10 #define GET_LOW_SLICE_INDEX(addr) ((addr) >> SLICE_LOW_SHIFT) 11 12 #define SLICE_HIGH_SHIFT 40 13 #define SLICE_NUM_HIGH (H_PGTABLE_RANGE >> SLICE_HIGH_SHIFT) 14 #define GET_HIGH_SLICE_INDEX(addr) ((addr) >> SLICE_HIGH_SHIFT) 15 16 #else /* CONFIG_PPC_MM_SLICES */ 17 18 #define get_slice_psize(mm, addr) ((mm)->context.user_psize) 19 #define slice_set_user_psize(mm, psize) \ 20 do { \ 21 (mm)->context.user_psize = (psize); \ 22 (mm)->context.sllp = SLB_VSID_USER | mmu_psize_defs[(psize)].sllp; \ 23 } while (0) 24 25 #endif /* CONFIG_PPC_MM_SLICES */ 26 27 #endif /* _ASM_POWERPC_BOOK3S_64_SLICE_H */ 28