summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2025-06-02 12:40:14 +0200
committerGitHub <noreply@github.com>2025-06-02 12:40:14 +0200
commit2445945e41b09c900b2f6a26365f38c9741b143c (patch)
tree938455022c5be1d73528833e61ce4fce99719175 /dev/kernel
parent0f4aaa29f9de307ba8c5597eca2d36c0db4cb96c (diff)
fix: hal/aarch64: aarch64 patches for ne_kernel.
Diffstat (limited to 'dev/kernel')
-rw-r--r--dev/kernel/HALKit/ARM64/HalCommonAPI.s2
-rw-r--r--dev/kernel/HALKit/ARM64/HalKernelPanic.cc1
-rw-r--r--dev/kernel/src/CxxAbi-ARM64.cc7
3 files changed, 5 insertions, 5 deletions
diff --git a/dev/kernel/HALKit/ARM64/HalCommonAPI.s b/dev/kernel/HALKit/ARM64/HalCommonAPI.s
index e76b6e3f..f0c69368 100644
--- a/dev/kernel/HALKit/ARM64/HalCommonAPI.s
+++ b/dev/kernel/HALKit/ARM64/HalCommonAPI.s
@@ -5,5 +5,5 @@
.global hal_flush_tlb
hal_flush_tlb:
- tlbi
+ tlbi vmalle1
ret
diff --git a/dev/kernel/HALKit/ARM64/HalKernelPanic.cc b/dev/kernel/HALKit/ARM64/HalKernelPanic.cc
index 5feb6c75..d70fef00 100644
--- a/dev/kernel/HALKit/ARM64/HalKernelPanic.cc
+++ b/dev/kernel/HALKit/ARM64/HalKernelPanic.cc
@@ -33,7 +33,6 @@ Void ke_panic(const Kernel::Int32& id, const Char* message) {
(Void)(kout << "*** STOP ***\r");
(Void)(kout << "Kernel_Panic_MSG: " << message << kendl);
(Void)(kout << "Kernel_Panic_ID: " << hex_number(id) << kendl);
- (Void)(kout << "Kernel_Panic_CR2: " << hex_number((UIntPtr) hal_read_cr2()) << kendl);
RecoveryFactory::Recover();
}
diff --git a/dev/kernel/src/CxxAbi-ARM64.cc b/dev/kernel/src/CxxAbi-ARM64.cc
index 02f3dbcf..d351b024 100644
--- a/dev/kernel/src/CxxAbi-ARM64.cc
+++ b/dev/kernel/src/CxxAbi-ARM64.cc
@@ -19,7 +19,7 @@ Kernel::UIntPtr __dso_handle;
EXTERN_C void __chkstk(void) {}
-EXTERN_C int atexit(void (*f)(void*), void* arg, void* dso) {
+EXTERN_C int atexit(void (*f)(), void* arg, void* dso) {
if (__atexit_func_count >= kAtExitMacDestructors) return 1;
__atexit_funcs[__atexit_func_count].destructor_func = f;
@@ -36,7 +36,8 @@ EXTERN_C void __cxa_finalize(void* f) {
if (!f) {
while (i--) {
if (__atexit_funcs[i].destructor_func) {
- (*__atexit_funcs[i].destructor_func)(__atexit_funcs[i].obj_ptr);
+ (*__atexit_funcs[i].destructor_func)();
+ __atexit_funcs[i].destructor_func = 0;
};
}
@@ -45,7 +46,7 @@ EXTERN_C void __cxa_finalize(void* f) {
while (i--) {
if (__atexit_funcs[i].destructor_func) {
- (*__atexit_funcs[i].destructor_func)(__atexit_funcs[i].obj_ptr);
+ (*__atexit_funcs[i].destructor_func)();
__atexit_funcs[i].destructor_func = 0;
};
}