diff options
Diffstat (limited to 'include/asm-um/mmu_context.h')
-rw-r--r-- | include/asm-um/mmu_context.h | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/include/asm-um/mmu_context.h b/include/asm-um/mmu_context.h new file mode 100644 index 000000000000..89bff310b7a9 --- /dev/null +++ b/include/asm-um/mmu_context.h | |||
@@ -0,0 +1,76 @@ | |||
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 | */ | ||