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