xref: /kernel/linux/linux-5.10/arch/arm/include/asm/mmu.h (revision 8c2ecf20)
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef __ARM_MMU_H
3#define __ARM_MMU_H
4
5#ifdef CONFIG_MMU
6
7typedef struct {
8#ifdef CONFIG_CPU_HAS_ASID
9	atomic64_t	id;
10#else
11	int		switch_pending;
12#endif
13	unsigned int	vmalloc_seq;
14	unsigned long	sigpage;
15#ifdef CONFIG_VDSO
16	unsigned long	vdso;
17#endif
18#ifdef CONFIG_BINFMT_ELF_FDPIC
19	unsigned long	exec_fdpic_loadmap;
20	unsigned long	interp_fdpic_loadmap;
21#endif
22} mm_context_t;
23
24#ifdef CONFIG_CPU_HAS_ASID
25#define ASID_BITS	8
26#define ASID_MASK	((~0ULL) << ASID_BITS)
27#define ASID(mm)	((unsigned int)((mm)->context.id.counter & ~ASID_MASK))
28#else
29#define ASID(mm)	(0)
30#endif
31
32#else
33
34/*
35 * From nommu.h:
36 *  Copyright (C) 2002, David McCullough <davidm@snapgear.com>
37 *  modified for 2.6 by Hyok S. Choi <hyok.choi@samsung.com>
38 */
39typedef struct {
40	unsigned long	end_brk;
41#ifdef CONFIG_BINFMT_ELF_FDPIC
42	unsigned long	exec_fdpic_loadmap;
43	unsigned long	interp_fdpic_loadmap;
44#endif
45} mm_context_t;
46
47#endif
48
49#endif
50