Linux 2.6.12-rc6
[cris-mirror.git] / include / asm-um / mmu_context.h
blob89bff310b7a908befa611258e8073526a064b1dd
1 /*
2 * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
3 * Licensed under the GPL
4 */
6 #ifndef __UM_MMU_CONTEXT_H
7 #define __UM_MMU_CONTEXT_H
9 #include "linux/sched.h"
10 #include "choose-mode.h"
12 #define get_mmu_context(task) do ; while(0)
13 #define activate_context(tsk) do ; while(0)
15 #define deactivate_mm(tsk,mm) do { } while (0)
17 static inline void activate_mm(struct mm_struct *old, struct mm_struct *new)
21 extern void switch_mm_skas(int mm_fd);
23 static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
24 struct task_struct *tsk)
26 unsigned cpu = smp_processor_id();
28 if(prev != next){
29 cpu_clear(cpu, prev->cpu_vm_mask);
30 cpu_set(cpu, next->cpu_vm_mask);
31 if(next != &init_mm)
32 CHOOSE_MODE((void) 0,
33 switch_mm_skas(next->context.skas.mm_fd));
37 static inline void enter_lazy_tlb(struct mm_struct *mm,
38 struct task_struct *tsk)
42 extern int init_new_context_skas(struct task_struct *task,
43 struct mm_struct *mm);
45 static inline int init_new_context_tt(struct task_struct *task,
46 struct mm_struct *mm)
48 return(0);
51 static inline int init_new_context(struct task_struct *task,
52 struct mm_struct *mm)
54 return(CHOOSE_MODE_PROC(init_new_context_tt, init_new_context_skas,
55 task, mm));
58 extern void destroy_context_skas(struct mm_struct *mm);
60 static inline void destroy_context(struct mm_struct *mm)
62 CHOOSE_MODE((void) 0, destroy_context_skas(mm));
65 #endif
68 * Overrides for Emacs so that we follow Linus's tabbing style.
69 * Emacs will notice this stuff at the end of the file and automatically
70 * adjust the settings for this buffer only. This must remain at the end
71 * of the file.
72 * ---------------------------------------------------------------------------
73 * Local variables:
74 * c-file-style: "linux"
75 * End: