0001
0002 #ifndef __ARM_MMU_H
0003 #define __ARM_MMU_H
0004
0005 #ifdef CONFIG_MMU
0006
0007 typedef struct {
0008 #ifdef CONFIG_CPU_HAS_ASID
0009 atomic64_t id;
0010 #else
0011 int switch_pending;
0012 #endif
0013 atomic_t vmalloc_seq;
0014 unsigned long sigpage;
0015 #ifdef CONFIG_VDSO
0016 unsigned long vdso;
0017 #endif
0018 #ifdef CONFIG_BINFMT_ELF_FDPIC
0019 unsigned long exec_fdpic_loadmap;
0020 unsigned long interp_fdpic_loadmap;
0021 #endif
0022 } mm_context_t;
0023
0024 #ifdef CONFIG_CPU_HAS_ASID
0025 #define ASID_BITS 8
0026 #define ASID_MASK ((~0ULL) << ASID_BITS)
0027 #define ASID(mm) ((unsigned int)((mm)->context.id.counter & ~ASID_MASK))
0028 #else
0029 #define ASID(mm) (0)
0030 #endif
0031
0032 #else
0033
0034
0035
0036
0037
0038
0039 typedef struct {
0040 unsigned long end_brk;
0041 #ifdef CONFIG_BINFMT_ELF_FDPIC
0042 unsigned long exec_fdpic_loadmap;
0043 unsigned long interp_fdpic_loadmap;
0044 #endif
0045 } mm_context_t;
0046
0047 #endif
0048
0049 #endif