summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/src
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-07-17 07:44:37 +0100
committerAmlal El Mahrouss <amlal@nekernel.org>2025-07-17 07:44:37 +0100
commit8174a8c538c1cd4771f23b1b2ee59f897b7b23d5 (patch)
tree63fd23f1810d34c4084de782913b17aefc992fc2 /dev/kernel/src
parent303e6c107f913a6c18007202ca24bb91f2bc39d4 (diff)
feat: Update tooling from btb to nebuild. Moved platform specific ABI into their own HAL.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/src')
-rw-r--r--dev/kernel/src/CxxAbi-AMD64.cc82
-rw-r--r--dev/kernel/src/CxxAbi-ARM64.cc91
2 files changed, 0 insertions, 173 deletions
diff --git a/dev/kernel/src/CxxAbi-AMD64.cc b/dev/kernel/src/CxxAbi-AMD64.cc
deleted file mode 100644
index 30c8306e..00000000
--- a/dev/kernel/src/CxxAbi-AMD64.cc
+++ /dev/null
@@ -1,82 +0,0 @@
-/* -------------------------------------------
-
- Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved.
-
-------------------------------------------- */
-
-#ifdef __NE_AMD64__
-
-#include <KernelKit/DebugOutput.h>
-#include <KernelKit/KPC.h>
-#include <KernelKit/UserProcessScheduler.h>
-#include <NeKit/CxxAbi.h>
-
-atexit_func_entry_t __atexit_funcs[kAtExitMacDestructors];
-
-uarch_t __atexit_func_count;
-
-/// @brief dynamic shared object Handle.
-Kernel::UIntPtr __dso_handle;
-
-EXTERN_C Kernel::Void __cxa_pure_virtual(void* self) {
- (Kernel::Void)(Kernel::kout << "object: "
- << Kernel::number(reinterpret_cast<Kernel::UIntPtr>(self)));
- (Kernel::Void)(Kernel::kout << ", has unimplemented virtual functions.\r");
-}
-
-EXTERN_C void ___chkstk_ms(PtrDiff frame_size) {
- char* sp;
- asm volatile("mov %%rsp, %0" : "=r"(sp));
-
- for (PtrDiff offset = kPageSize; offset < frame_size; offset += kPageSize) {
- sp[-offset] = 0;
- }
-}
-
-EXTERN_C int atexit(void (*f)()) {
- if (__atexit_func_count >= kAtExitMacDestructors) return 1;
-
- __atexit_funcs[__atexit_func_count].destructor_func = f;
-
- __atexit_func_count++;
-
- return 0;
-}
-
-EXTERN_C void __cxa_finalize(void* f) {
- uarch_t i = __atexit_func_count;
- if (!f) {
- while (i--) {
- if (__atexit_funcs[i].destructor_func) {
- (*__atexit_funcs[i].destructor_func)();
- };
- }
-
- return;
- }
-
- while (i--) {
- if (__atexit_funcs[i].destructor_func) {
- (*__atexit_funcs[i].destructor_func)();
- __atexit_funcs[i].destructor_func = 0;
- };
- }
-}
-
-namespace cxxabiv1 {
-EXTERN_C int __cxa_guard_acquire(__guard* g) {
- (void) g;
- return 0;
-}
-
-EXTERN_C int __cxa_guard_release(__guard* g) {
- *(char*) g = 1;
- return 0;
-}
-
-EXTERN_C void __cxa_guard_abort(__guard* g) {
- (void) g;
-}
-} // namespace cxxabiv1
-
-#endif // ifdef __NE_AMD64__
diff --git a/dev/kernel/src/CxxAbi-ARM64.cc b/dev/kernel/src/CxxAbi-ARM64.cc
deleted file mode 100644
index e91eb958..00000000
--- a/dev/kernel/src/CxxAbi-ARM64.cc
+++ /dev/null
@@ -1,91 +0,0 @@
-/* -------------------------------------------
-
- Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved.
-
-------------------------------------------- */
-
-#ifdef __NE_ARM64__
-
-#include <KernelKit/DebugOutput.h>
-#include <KernelKit/KPC.h>
-#include <NeKit/CxxAbi.h>
-
-atexit_func_entry_t __atexit_funcs[kAtExitMacDestructors];
-
-uarch_t __atexit_func_count;
-
-/// @brief dynamic shared object Handle.
-Kernel::UIntPtr __dso_handle;
-
-EXTERN_C void __chkstk(void) {}
-
-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;
- __atexit_funcs[__atexit_func_count].obj_ptr = arg;
- __atexit_funcs[__atexit_func_count].dso_handle = dso;
-
- __atexit_func_count++;
-
- return 0;
-}
-
-EXTERN_C void __cxa_finalize(void* f) {
- uarch_t i = __atexit_func_count;
- if (!f) {
- while (i--) {
- if (__atexit_funcs[i].destructor_func) {
- (*__atexit_funcs[i].destructor_func)();
- __atexit_funcs[i].destructor_func = 0;
- };
- }
-
- return;
- }
-
- while (i--) {
- if (__atexit_funcs[i].destructor_func) {
- (*__atexit_funcs[i].destructor_func)();
- __atexit_funcs[i].destructor_func = 0;
- };
- }
-}
-
-namespace cxxabiv1 {
-EXTERN_C int __cxa_guard_acquire(__guard* g) {
- (void) g;
- return 0;
-}
-
-EXTERN_C int __cxa_guard_release(__guard* g) {
- *(char*) g = 1;
- return 0;
-}
-
-EXTERN_C void __cxa_guard_abort(__guard* g) {
- (void) g;
-}
-} // namespace cxxabiv1
-
-EXTERN_C Kernel::Void _purecall(void* self) {
- (Kernel::Void)(Kernel::kout << "object: "
- << Kernel::number(reinterpret_cast<Kernel::UIntPtr>(self)));
- (Kernel::Void)(Kernel::kout << ", has unimplemented virtual functions.\r");
-}
-
-EXTERN_C Kernel::Void _Init_thread_footer(Kernel::Int* thread_obj) {
- NE_UNUSED(thread_obj);
-}
-
-EXTERN_C Kernel::Void _Init_thread_epoch(Kernel::Void) {
- NE_UNUSED(0);
-}
-
-EXTERN_C Kernel::Void _Init_thread_header(Kernel::Int* thread_obj) {
- NE_UNUSED(0);
-}
-
-EXTERN_C Kernel::Int _tls_index = 0UL;
-
-#endif // ifdef __NE_ARM64__