| 1 | /* @title: SMP initialization */ |
| 2 | #pragma once |
| 3 | #include <atomic.h> |
| 4 | #include <limine.h> |
| 5 | #include <stdbool.h> |
| 6 | |
| 7 | struct core; |
| 8 | void smp_init(void); |
| 9 | void smp_timer_init(void); |
| 10 | void smp_wake(struct limine_mp_response *mpr); |
| 11 | void smp_setup_bsp(struct limine_mp_response *mpr); |
| 12 | void smp_wait_for_others_to_idle(void); |
| 13 | void topology_init(void); |
| 14 | void smp_disable_all_ticks(void); |
| 15 | void smp_enable_all_ticks(void); |
| 16 | void smp_boot_fence_raise(void); |
| 17 | void smp_boot_fence_lower(void); |
| 18 | void smp_boot_fence_park(void); |
| 19 | void smp_dump_core(struct core *c); |
| 20 | void smp_move_everyone(void); |
| 21 | |