File Index
Files and directories
Sign in
FILE

slice.h

File preview with syntax highlighting.

linux-6.19.14/arch/powerpc/include/asm/book3s/64/slice.h C
 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 __ASSEMBLER__
 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 /* __ASSEMBLER__ */
41
42#endif /* _ASM_POWERPC_BOOK3S_64_SLICE_H */
~/ Read-only file preview.