1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef __ASM_MMU_H 3*4882a593Smuzhiyun #define __ASM_MMU_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #include <linux/atomic.h> 6*4882a593Smuzhiyun #include <linux/spinlock.h> 7*4882a593Smuzhiyun #include <linux/wait.h> 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun typedef struct { 10*4882a593Smuzhiyun union { 11*4882a593Smuzhiyun u64 asid[NR_CPUS]; 12*4882a593Smuzhiyun atomic64_t mmid; 13*4882a593Smuzhiyun }; 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun void *vdso; 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun /* lock to be held whilst modifying fp_bd_emupage_allocmap */ 18*4882a593Smuzhiyun spinlock_t bd_emupage_lock; 19*4882a593Smuzhiyun /* bitmap tracking allocation of fp_bd_emupage */ 20*4882a593Smuzhiyun unsigned long *bd_emupage_allocmap; 21*4882a593Smuzhiyun /* wait queue for threads requiring an emuframe */ 22*4882a593Smuzhiyun wait_queue_head_t bd_emupage_queue; 23*4882a593Smuzhiyun } mm_context_t; 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun #endif /* __ASM_MMU_H */ 26