blob: 7529c9c853dda226c1e42749121ed74b4b3e958e [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
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"
Jeff Diked67b5692005-07-07 17:56:49 -070010#include "linux/config.h"
Linus Torvalds1da177e2005-04-16 15:20:36 -070011#include "choose-mode.h"
Jeff Diked67b5692005-07-07 17:56:49 -070012#include "um_mmu.h"
Linus Torvalds1da177e2005-04-16 15:20:36 -070013
14#define get_mmu_context(task) do ; while(0)
15#define activate_context(tsk) do ; while(0)
16
17#define deactivate_mm(tsk,mm) do { } while (0)
18
19static inline void activate_mm(struct mm_struct *old, struct mm_struct *new)
20{
21}
22
Linus Torvalds1da177e2005-04-16 15:20:36 -070023static 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,
Jeff Diked67b5692005-07-07 17:56:49 -070033 switch_mm_skas(&next->context.skas.id));
Linus Torvalds1da177e2005-04-16 15:20:36 -070034 }
35}
36
37static inline void enter_lazy_tlb(struct mm_struct *mm,
38 struct task_struct *tsk)
39{
40}
41
42extern int init_new_context_skas(struct task_struct *task,
43 struct mm_struct *mm);
44
45static inline int init_new_context_tt(struct task_struct *task,
46 struct mm_struct *mm)
47{
48 return(0);
49}
50
51static 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
58extern void destroy_context_skas(struct mm_struct *mm);
59
60static 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 */