2008-06-18 23:08:48 +08:00
|
|
|
#ifndef ASM_X86__MMU_H
|
|
|
|
#define ASM_X86__MMU_H
|
2007-10-20 14:56:59 +08:00
|
|
|
|
|
|
|
#include <linux/spinlock.h>
|
|
|
|
#include <linux/mutex.h>
|
|
|
|
|
|
|
|
/*
|
|
|
|
* The x86 doesn't have a mmu context, but
|
|
|
|
* we put the segment information here.
|
|
|
|
*
|
|
|
|
* cpu_vm_mask is used to optimize ldt flushing.
|
|
|
|
*/
|
2008-03-23 16:02:44 +08:00
|
|
|
typedef struct {
|
2007-10-20 14:56:59 +08:00
|
|
|
void *ldt;
|
|
|
|
#ifdef CONFIG_X86_64
|
2008-03-23 16:02:44 +08:00
|
|
|
rwlock_t ldtlock;
|
2007-10-11 17:20:03 +08:00
|
|
|
#endif
|
2007-10-20 14:56:59 +08:00
|
|
|
int size;
|
|
|
|
struct mutex lock;
|
|
|
|
void *vdso;
|
|
|
|
} mm_context_t;
|
|
|
|
|
2008-01-30 20:32:01 +08:00
|
|
|
#ifdef CONFIG_SMP
|
|
|
|
void leave_mm(int cpu);
|
|
|
|
#else
|
|
|
|
static inline void leave_mm(int cpu)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2008-06-18 23:08:48 +08:00
|
|
|
#endif /* ASM_X86__MMU_H */
|