1 /* IA32/AMD64 specific */
12 // can access user memory directly
13 Access_user_mem = Access_user_mem_direct,
15 /// Timer vector used with APIC timer or IOAPIC
16 Apic_timer_vector = APIC_IRQ_BASE + 0,
19 static unsigned scheduler_irq_vector;
28 #ifdef CONFIG_SCHED_PIT
29 Scheduler_mode = SCHED_PIT,
30 Scheduler_granularity = 1000U,
31 Default_time_slice = 10 * Scheduler_granularity,
34 #ifdef CONFIG_ONE_SHOT
35 Scheduler_one_shot = true,
37 Scheduler_one_shot = false,
40 #ifdef CONFIG_SCHED_RTC
41 Scheduler_mode = SCHED_RTC,
42 # ifdef CONFIG_SLOW_RTC
43 Scheduler_granularity = 15625U,
45 Scheduler_granularity = 976U,
47 Default_time_slice = 10 * Scheduler_granularity,
50 #ifdef CONFIG_SCHED_APIC
51 Scheduler_mode = SCHED_APIC,
52 # ifdef CONFIG_ONE_SHOT
53 Scheduler_granularity = 1U,
54 Default_time_slice = 10000 * Scheduler_granularity,
56 Scheduler_granularity = 1000U,
57 Default_time_slice = 10 * Scheduler_granularity,
61 #ifdef CONFIG_SCHED_HPET
62 Scheduler_mode = SCHED_HPET,
63 Scheduler_granularity = 1000U,
64 Default_time_slice = 10 * Scheduler_granularity,
70 Pic_prio_modify = true,
71 #ifdef CONFIG_SYNC_TSC
72 Kip_timer_uses_rdtsc = true,
74 Kip_timer_uses_rdtsc = false,
80 #ifdef CONFIG_WATCHDOG
83 static const bool watchdog = false;
86 // static const bool hlt_works_ok = false;
87 static bool hlt_works_ok;
89 // the default uart to use for serial console
90 static const unsigned default_console_uart = 1;
91 static const unsigned default_console_uart_baudrate = 115200;
93 static char const char_micro;
95 static bool found_vmware;
102 IMPLEMENTATION[ia32,amd64]:
106 bool Config::hlt_works_ok = true;
108 bool Config::found_vmware = false;
109 char const Config::char_micro = '\265';
110 bool Config::apic = false;
111 unsigned Config::scheduler_irq_vector;
113 #ifdef CONFIG_WATCHDOG
114 bool Config::watchdog = false;
117 const char *const Config::kernel_warn_config_string =
118 #ifdef CONFIG_SCHED_RTC
119 " CONFIG_SCHED_RTC is on\n"
121 #ifndef CONFIG_INLINE
122 " CONFIG_INLINE is off\n"
124 #ifndef CONFIG_NDEBUG
125 " CONFIG_NDEBUG is off\n"
127 #ifndef CONFIG_NO_FRAME_PTR
128 " CONFIG_NO_FRAME_PTR is off\n"
130 #ifdef CONFIG_LIST_ALLOC_SANITY
131 " CONFIG_LIST_ALLOC_SANITY is on\n"
133 #ifdef CONFIG_BEFORE_IRET_SANITY
134 " CONFIG_BEFORE_IRET_SANITY is on\n"
136 #ifdef CONFIG_FINE_GRAINED_CPUTIME
137 " CONFIG_FINE_GRAINED_CPUTIME is on\n"
139 #ifdef CONFIG_JDB_ACCOUNTING
140 " CONFIG_JDB_ACCOUNTING is on\n"
144 IMPLEMENT FIASCO_INIT
148 #ifdef CONFIG_WATCHDOG
149 if (Koptions::o()->opt(Koptions::F_watchdog))
156 if (Koptions::o()->opt(Koptions::F_nohlt))
157 hlt_works_ok = false;
159 if (Koptions::o()->opt(Koptions::F_apic))
162 if (Scheduler_mode == SCHED_APIC)