cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

slice.h (1249B)


      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#ifndef __ASSEMBLY__
      6
      7#ifdef CONFIG_PPC_64S_HASH_MMU
      8#ifdef CONFIG_HUGETLB_PAGE
      9#define HAVE_ARCH_HUGETLB_UNMAPPED_AREA
     10#endif
     11#define HAVE_ARCH_UNMAPPED_AREA
     12#define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN
     13#endif
     14
     15#define SLICE_LOW_SHIFT		28
     16#define SLICE_LOW_TOP		(0x100000000ul)
     17#define SLICE_NUM_LOW		(SLICE_LOW_TOP >> SLICE_LOW_SHIFT)
     18#define GET_LOW_SLICE_INDEX(addr)	((addr) >> SLICE_LOW_SHIFT)
     19
     20#define SLICE_HIGH_SHIFT	40
     21#define SLICE_NUM_HIGH		(H_PGTABLE_RANGE >> SLICE_HIGH_SHIFT)
     22#define GET_HIGH_SLICE_INDEX(addr)	((addr) >> SLICE_HIGH_SHIFT)
     23
     24#define SLB_ADDR_LIMIT_DEFAULT	DEFAULT_MAP_WINDOW_USER64
     25
     26struct mm_struct;
     27
     28unsigned long slice_get_unmapped_area(unsigned long addr, unsigned long len,
     29				      unsigned long flags, unsigned int psize,
     30				      int topdown);
     31
     32unsigned int get_slice_psize(struct mm_struct *mm, unsigned long addr);
     33
     34void slice_set_range_psize(struct mm_struct *mm, unsigned long start,
     35			   unsigned long len, unsigned int psize);
     36
     37void slice_init_new_context_exec(struct mm_struct *mm);
     38void slice_setup_new_exec(void);
     39
     40#endif /* __ASSEMBLY__ */
     41
     42#endif /* _ASM_POWERPC_BOOK3S_64_SLICE_H */