1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * Copyright (C) 2002 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) 4*4882a593Smuzhiyun */ 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun #ifndef __ARCH_UM_MMU_H 7*4882a593Smuzhiyun #define __ARCH_UM_MMU_H 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #include <mm_id.h> 10*4882a593Smuzhiyun #include <asm/mm_context.h> 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun typedef struct mm_context { 13*4882a593Smuzhiyun struct mm_id id; 14*4882a593Smuzhiyun struct uml_arch_mm_context arch; 15*4882a593Smuzhiyun struct page *stub_pages[2]; 16*4882a593Smuzhiyun } mm_context_t; 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun extern void __switch_mm(struct mm_id * mm_idp); 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun /* Avoid tangled inclusion with asm/ldt.h */ 21*4882a593Smuzhiyun extern long init_new_ldt(struct mm_context *to_mm, struct mm_context *from_mm); 22*4882a593Smuzhiyun extern void free_ldt(struct mm_context *mm); 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun #endif 25