#ifndef SYS__SMP_H__ #define SYS__SMP_H__ #include #include #include #include #define LIMINE_NO_POINTERS #include #if defined (__x86_64__) || defined (__i386__) extern bool smp_configure_apic; struct limine_mp_info *init_smp(size_t *cpu_count, uint32_t *_bsp_lapic_id, int paging_mode, pagemap_t pagemap, bool x2apic, bool nx, uint64_t hhdm, bool wp); #elif defined (__aarch64__) struct limine_mp_info *init_smp(const char *config, size_t *cpu_count, uint64_t *bsp_mpidr, pagemap_t pagemap, uint64_t mair, uint64_t tcr, uint64_t sctlr, uint64_t hhdm_offset); #elif defined (__riscv) struct limine_mp_info *init_smp(size_t *cpu_count, pagemap_t pagemap, uint64_t hhdm_offset); #elif defined (__loongarch64) struct limine_mp_info *init_smp(size_t *cpu_count, uint32_t *bsp_phys_id, pagemap_t pagemap, uint64_t hhdm_offset); #else #error Unknown architecture #endif #endif