summaryrefslogtreecommitdiff
path: root/src/stem/task
diff options
context:
space:
mode:
authorAlexis211 <alexis211@gmail.com>2010-02-05 20:49:34 +0100
committerAlexis211 <alexis211@gmail.com>2010-02-05 20:49:34 +0100
commit893244c8b5272df86da5d333332eec26ae8f15f2 (patch)
tree066a20bc1cca70f1aa97df616b2b4fc31d698b40 /src/stem/task
parentf9fd53ccbb1bb38ed21360179f44b27e2a729701 (diff)
downloadTCE-893244c8b5272df86da5d333332eec26ae8f15f2.tar.gz
TCE-893244c8b5272df86da5d333332eec26ae8f15f2.zip
More work, does not work
Diffstat (limited to 'src/stem/task')
-rw-r--r--src/stem/task/task.c6
-rw-r--r--src/stem/task/task.h2
2 files changed, 3 insertions, 5 deletions
diff --git a/src/stem/task/task.c b/src/stem/task/task.c
index 5ab001c..0352308 100644
--- a/src/stem/task/task.c
+++ b/src/stem/task/task.c
@@ -25,7 +25,7 @@ struct thread *threads = 0, *current_thread = 0, *idle_thread;
uint32_t tasking_tmpStack[0x4000];
-void tasking_init(thread_entry whereToGo, void *data) {
+void tasking_init() {
cli();
kernel_process = kmalloc(sizeof(struct process)); //This process must be hidden to users
kernel_process->pid = kernel_process->uid = kernel_process->threads = 0;
@@ -36,10 +36,8 @@ void tasking_init(thread_entry whereToGo, void *data) {
current_thread = 0;
idle_thread = thread_new(kernel_process, task_idle, 0);
threads = 0; //Do not include idle thread in threads
- thread_new(kernel_process, whereToGo, data);
sti();
- monitor_write("Tasking starting\n");
- tasking_switch();
+ monitor_write("Tasking set up\n");
}
static struct thread *thread_next() {
diff --git a/src/stem/task/task.h b/src/stem/task/task.h
index 1d1d121..c9f1794 100644
--- a/src/stem/task/task.h
+++ b/src/stem/task/task.h
@@ -41,7 +41,7 @@ struct thread {
extern struct thread *current_thread;
-void tasking_init(thread_entry whereToGo, void *data);
+void tasking_init();
void tasking_switch();
void tasking_updateKernelPagetable(uint32_t idx, struct page_table *table, uint32_t tablePhysical);
uint32_t tasking_handleException(struct registers *regs);