Files
zinnia/arch/x86_64/include/x86_64/smp.h
T
2026-09-28 17:46:45 +02:00

25 lines
497 B
C

#pragma once
#include <zinnia/compiler.h>
#include <zinnia/utils.h>
#include <stddef.h>
#include <stdint.h>
#include <x86_64/gdt.h>
struct [[__packed]] smp_info {
struct gdt gdt;
struct gdtr gdtr;
uint32_t farjmp_offset;
uint32_t farjmp_segment;
uint32_t temp_stack;
uint32_t temp_cr3;
uint64_t entry;
uint64_t hhdm_offset;
uint64_t percpu;
uint32_t lapic_id;
_Atomic(uint8_t) booted;
};
// Discovers all APs and starts them.
void x86_64_smp_init();