Luna/kernel/src/arch/CPU.h
apio c8302a4fef
All checks were successful
continuous-integration/drone/push Build is passing
Add convenience functions to print the stack trace directly
2022-12-07 18:11:24 +01:00

28 lines
649 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);
}