Patched everything for aarch64, aside from scheduler, add more linker

points to aarch64 ld, add aarch64 heap, init, page tables and usermode,
make hhdm_offset a global atomic, aarch64 uses semihosting for output,
add generic PageTable type, add a function that creates and maps pages,
use allow to remove warnings, add a bufwriter so kernel panic always
works
This commit is contained in:
csd4ni3l
2026-05-16 00:30:01 +02:00
parent 17f2a3c7e4
commit 812d4cf6d4
32 changed files with 911 additions and 405 deletions
+6
View File
@@ -1,5 +1,6 @@
use crate::task::scheduler::{SCHEDULER, current_pid};
#[cfg(target_arch = "x86_64")]
#[repr(C)]
#[derive(Clone, Copy)]
pub struct UserContext {
@@ -22,6 +23,11 @@ pub struct UserContext {
pub rsp: u64, // user rsp
}
#[cfg(target_arch = "aarch64")]
#[repr(C)]
#[derive(Clone, Copy)]
pub struct UserContext {}
#[unsafe(no_mangle)]
pub extern "C" fn ctx_save(regs: *const UserContext) {
if let Some(pid) = current_pid() {