| 38 | std::atomic_flag primary_booted_ = ATOMIC_FLAG_INIT; |
| 39 | |
| 40 | auto _start(int argc, const char** argv) -> void { |
| 41 | if (!primary_booted_.test_and_set(std::memory_order_acquire)) { |
| 42 | CppInit(); |
| 43 | main(argc, argv); |
| 44 | } else { |
| 45 | main_smp(argc, argv); |
| 46 | } |
| 47 | |
| 48 | while (true) { |
| 49 | cpu_io::Pause(); |
| 50 | } |
| 51 | } |
| 52 | |
| 53 | auto main(int argc, const char** argv) -> int { |
| 54 | // 初始化当前核心的 per_cpu 数据 |