18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci#ifndef __ASM_MMU_H 38c2ecf20Sopenharmony_ci#define __ASM_MMU_H 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ci#include <linux/atomic.h> 68c2ecf20Sopenharmony_ci#include <linux/spinlock.h> 78c2ecf20Sopenharmony_ci#include <linux/wait.h> 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_citypedef struct { 108c2ecf20Sopenharmony_ci union { 118c2ecf20Sopenharmony_ci u64 asid[NR_CPUS]; 128c2ecf20Sopenharmony_ci atomic64_t mmid; 138c2ecf20Sopenharmony_ci }; 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci void *vdso; 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ci /* lock to be held whilst modifying fp_bd_emupage_allocmap */ 188c2ecf20Sopenharmony_ci spinlock_t bd_emupage_lock; 198c2ecf20Sopenharmony_ci /* bitmap tracking allocation of fp_bd_emupage */ 208c2ecf20Sopenharmony_ci unsigned long *bd_emupage_allocmap; 218c2ecf20Sopenharmony_ci /* wait queue for threads requiring an emuframe */ 228c2ecf20Sopenharmony_ci wait_queue_head_t bd_emupage_queue; 238c2ecf20Sopenharmony_ci} mm_context_t; 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ci#endif /* __ASM_MMU_H */ 26