#pragma once #include struct Registers; namespace CPU { Result identify(); const char* platform_string(); void platform_init(); void platform_finish_init(); [[noreturn]] void efficient_halt(); [[noreturn]] void idle_loop(); void switch_kernel_stack(u64 top); void enable_interrupts(); void disable_interrupts(); void wait_for_interrupt(); void get_stack_trace(void (*callback)(u64, void*), void* arg); void print_stack_trace(); void get_stack_trace_at(Registers* regs, void (*callback)(u64, void*), void* arg); void print_stack_trace_at(Registers* regs); void pause(); }