Linux 5.7.7
[linux/fpc-iii.git] / arch / arm / include / asm / mmu.h
blob1592a4264488e2c0646c5500fc6e4b8c44d5247a
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __ARM_MMU_H
3 #define __ARM_MMU_H
5 #ifdef CONFIG_MMU
7 typedef 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;
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
32 #else
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>
39 typedef 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;
47 #endif
49 #endif