aa64: finalise context switch, page fault handler and syscall
authorLunaixsky <lunaixsky@qq.com>
Tue, 14 Jan 2025 13:39:33 +0000 (13:39 +0000)
committerLunaixsky <lunaixsky@qq.com>
Tue, 14 Jan 2025 13:39:33 +0000 (13:39 +0000)
commitbb5ae5c85c0812c52e8d53187f2c6b0ee9525c8c
treebb709437866f765fcc4f8575fbf938209c45c79c
parent3d33d9c0d1894c447324d8327200c212ddad3716
aa64: finalise context switch, page fault handler and syscall

* context switch: pre-switch signposting check, signal handling and ttbr
  switching
* mm_abort: complement page fault handler, fault context gathering for
  aa64
* klibc: aa64 optimization of str/mem functions
* page:  page permission fix; proper use of AF and AP[2]
* irq:   async exception handling with gic framework
* other fix arounds and refactorings
33 files changed:
lunaix-os/arch/aarch64/LBuild
lunaix-os/arch/aarch64/boot/LBuild [new file with mode: 0644]
lunaix-os/arch/aarch64/boot/init.c
lunaix-os/arch/aarch64/boot/kremap.c
lunaix-os/arch/aarch64/boot/start.S
lunaix-os/arch/aarch64/exception/LBuild [new file with mode: 0644]
lunaix-os/arch/aarch64/exception/context.S
lunaix-os/arch/aarch64/exception/handler.c
lunaix-os/arch/aarch64/exception/hart_fields.inc
lunaix-os/arch/aarch64/exception/syscall.c [new file with mode: 0644]
lunaix-os/arch/aarch64/exception/syscall_nr.S [new file with mode: 0644]
lunaix-os/arch/aarch64/exception/vmswitch.c [new file with mode: 0644]
lunaix-os/arch/aarch64/fault.c
lunaix-os/arch/aarch64/includes/arch-listings/devnum_fn.lst [deleted file]
lunaix-os/arch/aarch64/includes/asm/aa64_exception.h
lunaix-os/arch/aarch64/includes/asm/aa64_gic.h
lunaix-os/arch/aarch64/includes/asm/aa64_mmu.h
lunaix-os/arch/aarch64/includes/asm/aa64_msrs.h
lunaix-os/arch/aarch64/includes/asm/aa64_spsr.h
lunaix-os/arch/aarch64/includes/asm/aa64_sysinst.h
lunaix-os/arch/aarch64/includes/asm/abi.h
lunaix-os/arch/aarch64/includes/asm/bits.h
lunaix-os/arch/aarch64/includes/asm/hart.h
lunaix-os/arch/aarch64/includes/asm/pagetable.h
lunaix-os/arch/aarch64/includes/asm/tlb.h
lunaix-os/arch/aarch64/klibc/LBuild [new file with mode: 0644]
lunaix-os/arch/aarch64/klibc/crc.c [new file with mode: 0644]
lunaix-os/arch/aarch64/klibc/string.c [new file with mode: 0644]
lunaix-os/arch/aarch64/soc/gic/common.c
lunaix-os/arch/aarch64/soc/gic/gic_v3.c
lunaix-os/arch/aarch64/vmutils.c [new file with mode: 0644]
lunaix-os/includes/lunaix/bits.h
lunaix-os/includes/lunaix/process.h