1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Copyright (C) 2012 Regents of the University of California 4 */ 5 6 7 #ifndef _ASM_RISCV_MMU_H 8 #define _ASM_RISCV_MMU_H 9 10 #ifndef __ASSEMBLY__ 11 12 typedef struct { 13 #ifndef CONFIG_MMU 14 unsigned long end_brk; 15 #else 16 atomic_long_t id; 17 #endif 18 void *vdso; 19 #ifdef CONFIG_SMP 20 /* A local icache flush is needed before user execution can resume. */ 21 cpumask_t icache_stale_mask; 22 /* Force local icache flush on all migrations. */ 23 bool force_icache_flush; 24 #endif 25 #ifdef CONFIG_BINFMT_ELF_FDPIC 26 unsigned long exec_fdpic_loadmap; 27 unsigned long interp_fdpic_loadmap; 28 #endif 29 } mm_context_t; 30 31 #define cntx2asid(cntx) ((cntx) & SATP_ASID_MASK) 32 #define cntx2version(cntx) ((cntx) & ~SATP_ASID_MASK) 33 34 void __meminit create_pgd_mapping(pgd_t *pgdp, uintptr_t va, phys_addr_t pa, phys_addr_t sz, 35 pgprot_t prot); 36 #endif /* __ASSEMBLY__ */ 37 38 #endif /* _ASM_RISCV_MMU_H */ 39