]> rtime.felk.cvut.cz Git - l4.git/blobdiff - kernel/fiasco/src/kern/kernel_thread.cpp
update
[l4.git] / kernel / fiasco / src / kern / kernel_thread.cpp
index 10ddfbed7e889a2fcb6ad187f31972916ef2f28f..4a57c14acb084bf69a9a9e03acc664cb241c1711 100644 (file)
@@ -1,8 +1,8 @@
 INTERFACE:
 
-#include "thread.h"
+#include "thread_object.h"
 
-class Kernel_thread : public Thread
+class Kernel_thread : public Thread_object
 {
 private:
   /**
@@ -52,7 +52,7 @@ IMPLEMENTATION:
 
 
 PUBLIC
-Kernel_thread::Kernel_thread() : Thread(Thread::Kernel)
+Kernel_thread::Kernel_thread() : Thread_object(Thread::Kernel)
 {}
 
 PUBLIC inline
@@ -76,13 +76,17 @@ Kernel_thread::bootstrap()
   Timer::init_system_clock();
   Sched_context::rq(cpu()).set_idle(this->sched());
 
+  Kernel_task::kernel_task()->mem_space()->make_current();
+
   // Setup initial timeslice
-  set_current_sched (sched());
+  set_current_sched(sched());
 
   Timer::enable();
 
   bootstrap_arch();
 
+  Per_cpu_data::run_late_ctors(0);
+
   Proc::sti();
   printf("Calibrating timer loop... ");
   // Init delay loop, needs working timer interrupt