| 239 | } |
| 240 | |
| 241 | auto main_smp(int argc, const char** argv) -> int { |
| 242 | per_cpu::GetCurrentCore() = per_cpu::PerCpu(cpu_io::GetCurrentCoreId()); |
| 243 | ArchInitSMP(argc, argv); |
| 244 | MemoryInitSMP(); |
| 245 | InterruptInitSMP(argc, argv); |
| 246 | TaskManagerSingleton::instance().InitCurrentCore(); |
| 247 | TimerInitSMP(); |
| 248 | klog::Info("Hello SimpleKernel SMP"); |
| 249 | |
| 250 | g_cores_ready.fetch_add(1, std::memory_order_release); |
| 251 | |
| 252 | run_tests_smp(); |
| 253 | |
| 254 | TaskManagerSingleton::instance().Schedule(); |
| 255 | |
| 256 | __builtin_unreachable(); |
| 257 | } |
| 258 | |
| 259 | } // namespace |
| 260 |
no test coverage detected