#pragma once // ============================================================================ // arch/x86_64/Processor.h - x86_64 per-CPU state // // ============================================================================ #include #include struct BootInfo; class Processor { public: void InitEarly(const BootInfo& boot_info); // Phase 2 will add: // void* GetGdtPointer() const; // void* GetIdtPointer() const; // PhysAddr GetLapicBase() const; // PhysAddr GetIoapicBase() const; // PhysAddr GetCr3() const; Processor() = default; Processor(const Processor&) = delete; Processor& operator=(const Processor&) = delete; private: // Phase 2: gdt, idt, lapic_base, ioapic_base, cr3... }; Processor& processor();