1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef _ASM_POWERPC_SLICE_H 3#define _ASM_POWERPC_SLICE_H 4 5#ifdef CONFIG_PPC_BOOK3S_64 6#include <asm/book3s/64/slice.h> 7#elif defined(CONFIG_PPC_MMU_NOHASH_32) 8#include <asm/nohash/32/slice.h> 9#endif 10 11#ifndef __ASSEMBLY__ 12 13struct mm_struct; 14 15#ifdef CONFIG_PPC_MM_SLICES 16 17#ifdef CONFIG_HUGETLB_PAGE 18#define HAVE_ARCH_HUGETLB_UNMAPPED_AREA 19#endif 20#define HAVE_ARCH_UNMAPPED_AREA 21#define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN 22 23unsigned long slice_get_unmapped_area(unsigned long addr, unsigned long len, 24 unsigned long flags, unsigned int psize, 25 int topdown); 26 27unsigned int get_slice_psize(struct mm_struct *mm, unsigned long addr); 28 29void slice_set_range_psize(struct mm_struct *mm, unsigned long start, 30 unsigned long len, unsigned int psize); 31 32void slice_init_new_context_exec(struct mm_struct *mm); 33void slice_setup_new_exec(void); 34 35#else /* CONFIG_PPC_MM_SLICES */ 36 37static inline void slice_init_new_context_exec(struct mm_struct *mm) {} 38 39static inline unsigned int get_slice_psize(struct mm_struct *mm, unsigned long addr) 40{ 41 return 0; 42} 43 44#endif /* CONFIG_PPC_MM_SLICES */ 45 46#endif /* __ASSEMBLY__ */ 47 48#endif /* _ASM_POWERPC_SLICE_H */ 49