Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
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  * From nommu.h:
0036  *  Copyright (C) 2002, David McCullough <davidm@snapgear.com>
0037  *  modified for 2.6 by Hyok S. Choi <hyok.choi@samsung.com>
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