| /* SPDX-License-Identifier: GPL-2.0 */ | |
| /* | |
| * Copyright (C) 2002 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) | |
| */ | |
| #ifndef __ARCH_UM_MMU_H | |
| #define __ARCH_UM_MMU_H | |
| #include "linux/types.h" | |
| #include <linux/mutex.h> | |
| #include <linux/spinlock.h> | |
| #include <mm_id.h> | |
| typedef struct mm_context { | |
| struct mm_id id; | |
| struct mutex turnstile; | |
| struct list_head list; | |
| /* Address range in need of a TLB sync */ | |
| spinlock_t sync_tlb_lock; | |
| unsigned long sync_tlb_range_from; | |
| unsigned long sync_tlb_range_to; | |
| } mm_context_t; | |
| #define INIT_MM_CONTEXT(mm) \ | |
| .context = { \ | |
| .turnstile = __MUTEX_INITIALIZER(mm.context.turnstile), \ | |
| .sync_tlb_lock = __SPIN_LOCK_INITIALIZER(mm.context.sync_tlb_lock), \ | |
| } | |
| #endif |