30 lines
668 B
C++
30 lines
668 B
C++
#pragma once
|
|
#include <luna/Result.h>
|
|
|
|
struct Registers;
|
|
|
|
namespace CPU
|
|
{
|
|
Result<const char*> 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();
|
|
} |