Linux-2.6.12-rc2
[linux-flexiantxendom0-natty.git] / include / asm-um / mmu_context.h
1 /* 
2  * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
3  * Licensed under the GPL
4  */
5
6 #ifndef __UM_MMU_CONTEXT_H
7 #define __UM_MMU_CONTEXT_H
8
9 #include "linux/sched.h"
10 #include "choose-mode.h"
11
12 #define get_mmu_context(task) do ; while(0)
13 #define activate_context(tsk) do ; while(0)
14
15 #define deactivate_mm(tsk,mm)   do { } while (0)
16
17 static inline void activate_mm(struct mm_struct *old, struct mm_struct *new)
18 {
19 }
20
21 extern void switch_mm_skas(int mm_fd);
22
23 static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next, 
24                              struct task_struct *tsk)
25 {
26         unsigned cpu = smp_processor_id();
27
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));
34         }
35 }
36
37 static inline void enter_lazy_tlb(struct mm_struct *mm, 
38                                   struct task_struct *tsk)
39 {
40 }
41
42 extern int init_new_context_skas(struct task_struct *task, 
43                                  struct mm_struct *mm);
44
45 static inline int init_new_context_tt(struct task_struct *task, 
46                                       struct mm_struct *mm)
47 {
48         return(0);
49 }
50
51 static inline int init_new_context(struct task_struct *task, 
52                                    struct mm_struct *mm)
53 {
54         return(CHOOSE_MODE_PROC(init_new_context_tt, init_new_context_skas, 
55                                 task, mm));
56 }
57
58 extern void destroy_context_skas(struct mm_struct *mm);
59
60 static inline void destroy_context(struct mm_struct *mm)
61 {
62         CHOOSE_MODE((void) 0, destroy_context_skas(mm));
63 }
64
65 #endif
66
67 /*
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:
76  */