diff options
Diffstat (limited to 'Private/NewBoot')
| -rw-r--r-- | Private/NewBoot/CxxRuntime/UnwindCxxKit.cxx | 29 | ||||
| -rw-r--r-- | Private/NewBoot/CxxRuntime/unwind.cxx | 8 | ||||
| -rw-r--r-- | Private/NewBoot/NetBoot/EfiModule.cxx | 3 |
3 files changed, 31 insertions, 9 deletions
diff --git a/Private/NewBoot/CxxRuntime/UnwindCxxKit.cxx b/Private/NewBoot/CxxRuntime/UnwindCxxKit.cxx new file mode 100644 index 00000000..551cb599 --- /dev/null +++ b/Private/NewBoot/CxxRuntime/UnwindCxxKit.cxx @@ -0,0 +1,29 @@ +/* + * ======================================================== + * + * CxxKit + * Copyright Mahrouss Logic, all rights reserved. + * + * ======================================================== + */ + +#include <FirmwareKit/EFI.hxx> + +namespace cxxkit +{ +///! @brief C++ ABI unwinding +///! Fini array (r1) +///! Numbers of Fini (r2) +EXTERN_C void __unwind(void (**finis)(void), int cnt) +{ + for (int i = 0; i < cnt; ++i) + (finis[i])(); +} +} // namespace cxxkit + +EXTERN_C Int32 EfiMain(EfiHandlePtr handle, EfiSystemTable* SystemTable) +{ + SystemTable->ConOut->OutputString(SystemTable->ConOut, L"HCoreLdr: C++ Runtime Add-in\r\n"); + + return kEfiOk; +}
\ No newline at end of file diff --git a/Private/NewBoot/CxxRuntime/unwind.cxx b/Private/NewBoot/CxxRuntime/unwind.cxx deleted file mode 100644 index 4f8807cd..00000000 --- a/Private/NewBoot/CxxRuntime/unwind.cxx +++ /dev/null @@ -1,8 +0,0 @@ -namespace cxxkit { -///! @brief C++ ABI unwinding -///! Fini array (r1) -///! Numbers of Fini (r2) -extern "C" void __unwind(void (**finis)(void), int cnt) { - for (int i = 0; i < cnt; ++i) (finis[i])(); -} -} // namespace cxxkit diff --git a/Private/NewBoot/NetBoot/EfiModule.cxx b/Private/NewBoot/NetBoot/EfiModule.cxx index 36a7288c..42415dc7 100644 --- a/Private/NewBoot/NetBoot/EfiModule.cxx +++ b/Private/NewBoot/NetBoot/EfiModule.cxx @@ -9,6 +9,7 @@ #include <FirmwareKit/EFI.hxx> -extern "C" Int32 EfiMain(EfiHandlePtr handle, EfiSystemTable* SystemTable) { +EXTERN_C Int32 EfiMain(EfiHandlePtr handle, EfiSystemTable* SystemTable) +{ return kEfiOk; } |
