2005-04-17 06:20:36 +08:00
|
|
|
/*
|
2007-10-16 16:26:57 +08:00
|
|
|
* Copyright (C) 2002 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)
|
2005-04-17 06:20:36 +08:00
|
|
|
* Licensed under the GPL
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __ARCH_UM_MMU_H
|
|
|
|
#define __ARCH_UM_MMU_H
|
|
|
|
|
|
|
|
#include "uml-config.h"
|
2007-10-16 16:27:06 +08:00
|
|
|
#include "mm_id.h"
|
|
|
|
#include "asm/ldt.h"
|
2005-04-17 06:20:36 +08:00
|
|
|
|
2007-10-16 16:27:06 +08:00
|
|
|
typedef struct mm_context {
|
|
|
|
struct mm_id id;
|
|
|
|
unsigned long last_page_table;
|
|
|
|
#ifdef CONFIG_3_LEVEL_PGTABLES
|
|
|
|
unsigned long last_pmd;
|
|
|
|
#endif
|
|
|
|
struct uml_ldt ldt;
|
2005-04-17 06:20:36 +08:00
|
|
|
} mm_context_t;
|
|
|
|
|
2007-10-16 16:27:06 +08:00
|
|
|
extern void __switch_mm(struct mm_id * mm_idp);
|
|
|
|
|
|
|
|
/* Avoid tangled inclusion with asm/ldt.h */
|
|
|
|
extern long init_new_ldt(struct mm_context *to_mm, struct mm_context *from_mm);
|
|
|
|
extern void free_ldt(struct mm_context *mm);
|
|
|
|
|
2005-04-17 06:20:36 +08:00
|
|
|
#endif
|