Luna/kernel/src/arch/CPU.h
apio cd6bf745a7
Some checks failed
continuous-integration/drone/push Build is failing
tests+kernel+init: Run tests automatically in a headless way
2023-07-21 14:09:37 +02:00

44 lines
995 B
C++

#pragma once
#include <luna/Result.h>
#include <luna/StringView.h>
struct Registers;
namespace CPU
{
Result<StringView> identify();
StringView 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();
bool save_interrupts();
void restore_interrupts(bool saved);
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);
u16 get_processor_id();
bool register_interrupt(u8 interrupt, void (*handler)(Registers*, void*), void* context);
void sync_interrupts();
#ifdef MOON_ENABLE_TESTING_FEATURES
void magic_exit(int status);
#endif
void pause();
}