]> rtime.felk.cvut.cz Git - l4.git/blobdiff - kernel/fiasco/src/kern/ia32/main-ia32.cpp
update
[l4.git] / kernel / fiasco / src / kern / ia32 / main-ia32.cpp
index bf7479f6b27512f13f27c9ec50a03ae2d592b2b8..024ee1e8ea090fc4f23b90cfeecc4a865516ee2e 100644 (file)
@@ -8,12 +8,12 @@ IMPLEMENTATION[ia32,amd64]:
 #include <cstdio>
 #include <cstring>
 #include <cstdlib>
-#include "cmdline.h"
 #include "config.h"
 #include "io.h"
 #include "idt.h"
 #include "kdb_ke.h"
 #include "kernel_console.h"
+#include "koptions.h"
 #include "pic.h"
 #include "processor.h"
 #include "reset.h"
@@ -93,6 +93,7 @@ IMPLEMENTATION[(ia32,amd64) && mp]:
 #include "div32.h"
 #include "fpu.h"
 #include "globals.h"
+#include "ipi.h"
 #include "kernel_task.h"
 #include "processor.h"
 #include "per_cpu_data_alloc.h"
@@ -106,7 +107,7 @@ int boot_ap_cpu(unsigned _cpu)
 {
   if (!Per_cpu_data_alloc::alloc(_cpu))
     {
-      extern Spin_lock _tramp_mp_spinlock;
+      extern Spin_lock<Mword> _tramp_mp_spinlock;
       printf("CPU allocation failed for CPU%u, disabling CPU.\n", _cpu);
       _tramp_mp_spinlock.clear();
       while (1)
@@ -120,6 +121,7 @@ int boot_ap_cpu(unsigned _cpu)
   Utcb_init::init_ap(cpu);
 
   Apic::init_ap();
+  Ipi::cpu(_cpu).init();
   Timer::init();
   Apic::check_still_getting_interrupts();
 
@@ -129,7 +131,7 @@ int boot_ap_cpu(unsigned _cpu)
   cpu.print();
   cpu.show_cache_tlb_info("");
 
-  if (strstr(Cmdline::cmdline(), " -loadcnt"))
+  if (Koptions::o()->opt(Koptions::F_loadcnt))
     Perf_cnt::init_ap();
 
   puts("");
@@ -137,7 +139,7 @@ int boot_ap_cpu(unsigned _cpu)
   // create kernel thread
   App_cpu_thread *kernel = new (Ram_quota::root) App_cpu_thread();
   set_cpu_of(kernel, _cpu);
-  check(kernel->bind(Kernel_task::kernel_task(), 0));
+  check(kernel->bind(Kernel_task::kernel_task(), User<Utcb>::Ptr(0)));
 
   main_switch_ap_cpu_stack(kernel);
   return 0;