2022-11-15 18:10:32 +00:00
|
|
|
#pragma once
|
|
|
|
#include <Result.h>
|
|
|
|
|
2022-11-16 16:37:18 +00:00
|
|
|
struct Registers;
|
|
|
|
|
2022-11-15 18:10:32 +00:00
|
|
|
namespace CPU
|
|
|
|
{
|
|
|
|
Result<const char*> identify();
|
2022-11-18 20:04:53 +00:00
|
|
|
const char* platform_string();
|
|
|
|
|
2022-11-15 18:10:32 +00:00
|
|
|
void platform_init();
|
2022-11-19 19:01:01 +00:00
|
|
|
void platform_finish_init();
|
2022-11-15 18:10:32 +00:00
|
|
|
|
|
|
|
[[noreturn]] void efficient_halt();
|
2022-11-15 19:41:59 +00:00
|
|
|
|
|
|
|
void switch_kernel_stack(u64 top);
|
2022-11-19 19:01:01 +00:00
|
|
|
|
|
|
|
void enable_interrupts();
|
|
|
|
void disable_interrupts();
|
|
|
|
void wait_for_interrupt();
|
2022-11-23 18:34:04 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
extern "C" void kernel_yield();
|