This source file includes following definitions.
- destroy_context
- enter_lazy_tlb
- deactivate_mm
- init_new_context
- switch_mm
- activate_mm
1
2
3
4
5
6
7
8 #ifndef _ASM_MMU_CONTEXT_H
9 #define _ASM_MMU_CONTEXT_H
10
11 #include <linux/mm_types.h>
12
13 #include <asm/setup.h>
14 #include <asm/page.h>
15 #include <asm/pgalloc.h>
16 #include <asm/mem-layout.h>
17
18 static inline void destroy_context(struct mm_struct *mm)
19 {
20 }
21
22
23
24
25
26
27 static inline void enter_lazy_tlb(struct mm_struct *mm,
28 struct task_struct *tsk)
29 {
30 }
31
32
33
34
35 static inline void deactivate_mm(struct task_struct *tsk,
36 struct mm_struct *mm)
37 {
38 }
39
40
41
42
43
44
45 static inline int init_new_context(struct task_struct *tsk,
46 struct mm_struct *mm)
47 {
48
49 return 0;
50 }
51
52
53
54
55 static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
56 struct task_struct *tsk)
57 {
58 int l1;
59
60
61
62
63
64 if (next->context.generation < prev->context.generation) {
65 for (l1 = MIN_KERNEL_SEG; l1 <= max_kernel_seg; l1++)
66 next->pgd[l1] = init_mm.pgd[l1];
67
68 next->context.generation = prev->context.generation;
69 }
70
71 __vmnewmap((void *)next->context.ptbase);
72 }
73
74
75
76
77 static inline void activate_mm(struct mm_struct *prev, struct mm_struct *next)
78 {
79 unsigned long flags;
80
81 local_irq_save(flags);
82 switch_mm(prev, next, current_thread_info()->task);
83 local_irq_restore(flags);
84 }
85
86
87 #include <asm-generic/mm_hooks.h>
88
89 #endif