summaryrefslogtreecommitdiffhomepage
path: root/Private/NewBoot
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@el-mahrouss-logic.com>2024-03-09 08:37:29 +0100
committerAmlal El Mahrouss <amlal@el-mahrouss-logic.com>2024-03-09 08:37:29 +0100
commit3e607e871b1b20e14527845a511ae2a6739fcaac (patch)
tree973c617f634367af2229e2ad2c10bce3e3df6aaa /Private/NewBoot
parent5bf99218f0cad958868e662cf99192811060f95f (diff)
See below.
- HCoreKrnl: - Improve interrupt handler for AMD64 targets. - Wrapped AHCI and PE types into a namespace. - Replace L0 with the label MainLoop. - Reworked C++Kit and NetBoot modules. - Put INewFSIterator constructor as explicit. Signed-off-by: Amlal El Mahrouss <amlal@el-mahrouss-logic.com>
Diffstat (limited to 'Private/NewBoot')
-rw-r--r--Private/NewBoot/CxxRuntime/UnwindCxxKit.cxx29
-rw-r--r--Private/NewBoot/CxxRuntime/unwind.cxx8
-rw-r--r--Private/NewBoot/NetBoot/EfiModule.cxx3
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;
}