aboutsummaryrefslogtreecommitdiffstats
path: root/arch/um/kernel/process.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/um/kernel/process.c')
-rw-r--r--arch/um/kernel/process.c19
1 files changed, 7 insertions, 12 deletions
diff --git a/arch/um/kernel/process.c b/arch/um/kernel/process.c
index 005ed44d4a8e..22ad46fd2c08 100644
--- a/arch/um/kernel/process.c
+++ b/arch/um/kernel/process.c
@@ -45,7 +45,6 @@
45#include "os.h" 45#include "os.h"
46#include "mode.h" 46#include "mode.h"
47#include "mode_kern.h" 47#include "mode_kern.h"
48#include "choose-mode.h"
49 48
50/* This is a per-cpu array. A processor only modifies its entry and it only 49/* This is a per-cpu array. A processor only modifies its entry and it only
51 * cares about its entry, so it's OK if another processor is modifying its 50 * cares about its entry, so it's OK if another processor is modifying its
@@ -55,7 +54,7 @@ struct cpu_task cpu_tasks[NR_CPUS] = { [0 ... NR_CPUS - 1] = { -1, NULL } };
55 54
56static inline int external_pid(struct task_struct *task) 55static inline int external_pid(struct task_struct *task)
57{ 56{
58 return CHOOSE_MODE_PROC(external_pid_tt, external_pid_skas, task); 57 return external_pid_skas(task);
59} 58}
60 59
61int pid_to_processor_id(int pid) 60int pid_to_processor_id(int pid)
@@ -114,8 +113,8 @@ void *_switch_to(void *prev, void *next, void *last)
114 set_current(to); 113 set_current(to);
115 114
116 do { 115 do {
117 current->thread.saved_task = NULL ; 116 current->thread.saved_task = NULL;
118 CHOOSE_MODE_PROC(switch_to_tt, switch_to_skas, prev, next); 117 switch_to_skas(prev, next);
119 if(current->thread.saved_task) 118 if(current->thread.saved_task)
120 show_regs(&(current->thread.regs)); 119 show_regs(&(current->thread.regs));
121 next= current->thread.saved_task; 120 next= current->thread.saved_task;
@@ -136,7 +135,7 @@ void interrupt_end(void)
136 135
137void release_thread(struct task_struct *task) 136void release_thread(struct task_struct *task)
138{ 137{
139 CHOOSE_MODE(release_thread_tt(task), release_thread_skas(task)); 138 release_thread_skas(task);
140} 139}
141 140
142void exit_thread(void) 141void exit_thread(void)
@@ -155,8 +154,7 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long sp,
155 int ret; 154 int ret;
156 155
157 p->thread = (struct thread_struct) INIT_THREAD; 156 p->thread = (struct thread_struct) INIT_THREAD;
158 ret = CHOOSE_MODE_PROC(copy_thread_tt, copy_thread_skas, nr, 157 ret = copy_thread_skas(nr, clone_flags, sp, stack_top, p, regs);
159 clone_flags, sp, stack_top, p, regs);
160 158
161 if (ret || !current->thread.forking) 159 if (ret || !current->thread.forking)
162 goto out; 160 goto out;
@@ -178,15 +176,12 @@ void initial_thread_cb(void (*proc)(void *), void *arg)
178 int save_kmalloc_ok = kmalloc_ok; 176 int save_kmalloc_ok = kmalloc_ok;
179 177
180 kmalloc_ok = 0; 178 kmalloc_ok = 0;
181 CHOOSE_MODE_PROC(initial_thread_cb_tt, initial_thread_cb_skas, proc, 179 initial_thread_cb_skas(proc, arg);
182 arg);
183 kmalloc_ok = save_kmalloc_ok; 180 kmalloc_ok = save_kmalloc_ok;
184} 181}
185 182
186void default_idle(void) 183void default_idle(void)
187{ 184{
188 CHOOSE_MODE(uml_idle_timer(), (void) 0);
189
190 while(1){ 185 while(1){
191 /* endless idle loop with no priority at all */ 186 /* endless idle loop with no priority at all */
192 187
@@ -203,7 +198,7 @@ void default_idle(void)
203 198
204void cpu_idle(void) 199void cpu_idle(void)
205{ 200{
206 CHOOSE_MODE(init_idle_tt(), init_idle_skas()); 201 init_idle_skas();
207} 202}
208 203
209void *um_virt_to_phys(struct task_struct *task, unsigned long addr, 204void *um_virt_to_phys(struct task_struct *task, unsigned long addr,