#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"
#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"
{
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)
Utcb_init::init_ap(cpu);
Apic::init_ap();
+ Ipi::cpu(_cpu).init();
Timer::init();
Apic::check_still_getting_interrupts();
cpu.print();
cpu.show_cache_tlb_info("");
- if (strstr(Cmdline::cmdline(), " -loadcnt"))
+ if (Koptions::o()->opt(Koptions::F_loadcnt))
Perf_cnt::init_ap();
puts("");
// 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;