linux/arch/powerpc/include/asm/slice.h
<<
>>
Prefs
   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