xref: /linux/arch/um/include/asm/mmu.h (revision 399ead3a6d76cbdd29a716660db5c84a314dab70)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Copyright (C) 2002 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)
4  */
5 
6 #ifndef __ARCH_UM_MMU_H
7 #define __ARCH_UM_MMU_H
8 
9 #include "linux/types.h"
10 #include <linux/mutex.h>
11 #include <linux/spinlock.h>
12 #include <mm_id.h>
13 
14 typedef struct mm_context {
15 	struct mm_id id;
16 	struct mutex turnstile;
17 
18 	struct list_head list;
19 
20 	/* Address range in need of a TLB sync */
21 	spinlock_t sync_tlb_lock;
22 	unsigned long sync_tlb_range_from;
23 	unsigned long sync_tlb_range_to;
24 } mm_context_t;
25 
26 #define INIT_MM_CONTEXT(mm)						\
27 	.context = {							\
28 		.turnstile = __MUTEX_INITIALIZER(mm.context.turnstile),	\
29 		.sync_tlb_lock = __SPIN_LOCK_INITIALIZER(mm.context.sync_tlb_lock), \
30 	}
31 
32 #endif
33