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