summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-09-07 18:12:25 +0200
committerAmlal El Mahrouss <amlal@nekernel.org>2025-09-07 18:12:25 +0200
commit537cadbf78695a01ea1c00a0a5a4b6b70ddac8c3 (patch)
tree293cd2e60b377729805f1252c37dd28bb332ee6d
parentd9e1479799ef2d7594c9c9f7dc2724353a01faff (diff)
feat: `ne_launch` and `LaunchHelpers.fwrk`: PID zero of NeKernel.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
-rw-r--r--dev/kernel/HALKit/AMD64/HalKernelMain.cc4
-rw-r--r--dev/kernel/HALKit/ARM64/HalKernelMain.cc4
-rw-r--r--dev/launch/.keep0
-rw-r--r--dev/launch/LaunchKit/.keep0
-rw-r--r--dev/launch/obj/.keep0
-rw-r--r--dev/launch/src/.keep0
-rw-r--r--dev/libDDK/DriverKit/cpp/object.hpp16
-rw-r--r--dev/libDDK/DriverKit/ddk.h4
-rw-r--r--dev/libDDK/src/ddk_kernel_call.c2
-rw-r--r--dev/libDDK/src/ddk_kernel_call_dispatch.S3
-rw-r--r--public/frameworks/LaunchHelpers.fwrk/.keep0
-rw-r--r--public/frameworks/LaunchHelpers.fwrk/LaunchHelpers.json19
-rw-r--r--public/frameworks/LaunchHelpers.fwrk/dist/.keep0
-rw-r--r--public/frameworks/LaunchHelpers.fwrk/headers/.keep0
-rw-r--r--public/frameworks/LaunchHelpers.fwrk/src/.keep0
-rw-r--r--public/frameworks/LaunchHelpers.fwrk/src/DylibMain.cc5
-rw-r--r--public/frameworks/LaunchHelpers.fwrk/xml/.keep0
-rw-r--r--public/frameworks/LaunchHelpers.fwrk/xml/app.xml2
18 files changed, 48 insertions, 11 deletions
diff --git a/dev/kernel/HALKit/AMD64/HalKernelMain.cc b/dev/kernel/HALKit/AMD64/HalKernelMain.cc
index f121fbb4..cb5d4af8 100644
--- a/dev/kernel/HALKit/AMD64/HalKernelMain.cc
+++ b/dev/kernel/HALKit/AMD64/HalKernelMain.cc
@@ -148,10 +148,6 @@ EXTERN_C Kernel::Void hal_real_init(Kernel::Void) noexcept {
ProcessStatusKind::kInvalid;
}
- rtl_create_user_process(sched_idle_task, "MgmtSrv"); //! Mgmt command server.
- rtl_create_user_process(sched_idle_task, "LaunchSrv"); //! launchd
- rtl_create_user_process(sched_idle_task, "SecSrv"); //! Login Server
-
HAL::mp_init_cores(kHandoverHeader->f_HardwareTables.f_VendorPtr);
#ifdef __FSKIT_INCLUDES_HEFS__
diff --git a/dev/kernel/HALKit/ARM64/HalKernelMain.cc b/dev/kernel/HALKit/ARM64/HalKernelMain.cc
index d7663f4e..096df49e 100644
--- a/dev/kernel/HALKit/ARM64/HalKernelMain.cc
+++ b/dev/kernel/HALKit/ARM64/HalKernelMain.cc
@@ -67,10 +67,6 @@ EXTERN_C void hal_init_platform(Kernel::HEL::BootInfoHeader* handover_hdr) {
ProcessStatusKind::kInvalid;
}
- rtl_create_user_process(sched_idle_task, "MgmtSrv"); //! Mgmt command server.
- rtl_create_user_process(sched_idle_task, "LaunchSrv"); //! launchd
- rtl_create_user_process(sched_idle_task, "SecSrv"); //! Login Server
-
Kernel::mp_init_cores();
while (YES)
diff --git a/dev/launch/.keep b/dev/launch/.keep
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/dev/launch/.keep
diff --git a/dev/launch/LaunchKit/.keep b/dev/launch/LaunchKit/.keep
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/dev/launch/LaunchKit/.keep
diff --git a/dev/launch/obj/.keep b/dev/launch/obj/.keep
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/dev/launch/obj/.keep
diff --git a/dev/launch/src/.keep b/dev/launch/src/.keep
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/dev/launch/src/.keep
diff --git a/dev/libDDK/DriverKit/cpp/object.hpp b/dev/libDDK/DriverKit/cpp/object.hpp
new file mode 100644
index 00000000..3bf52657
--- /dev/null
+++ b/dev/libDDK/DriverKit/cpp/object.hpp
@@ -0,0 +1,16 @@
+/* -------------------------------------------
+
+ Copyright Amlal El Mahrouss 2025, all rights reserved.
+
+ FILE: ddk.h
+ PURPOSE: DDK Driver model base header.
+
+ ------------------------------------------- */
+
+#pragma once
+
+#include <DriverKit/macros.h>
+
+#define DK_INTERFACE_IMPL : public ::DKInterface
+
+class DKInterface;
diff --git a/dev/libDDK/DriverKit/ddk.h b/dev/libDDK/DriverKit/ddk.h
index 254137f9..2e2dddf0 100644
--- a/dev/libDDK/DriverKit/ddk.h
+++ b/dev/libDDK/DriverKit/ddk.h
@@ -1,6 +1,6 @@
/* -------------------------------------------
- Copyright Amlal El Mahrouss.
+ Copyright Amlal El Mahrouss 2025, all rights reserved.
FILE: ddk.h
PURPOSE: DDK Driver model base header.
@@ -29,6 +29,8 @@ struct DDK_STATUS_STRUCT DDK_FINAL {
struct DDK_OBJECT_MANIFEST* s_object;
};
+typedef void* ptr_t;
+
/// @brief Call Kernel procedure.
/// @param name the procedure name.
/// @param cnt number of elements in **dat**
diff --git a/dev/libDDK/src/ddk_kernel_call.c b/dev/libDDK/src/ddk_kernel_call.c
index 1ac0a0aa..61742b7b 100644
--- a/dev/libDDK/src/ddk_kernel_call.c
+++ b/dev/libDDK/src/ddk_kernel_call.c
@@ -12,7 +12,7 @@
#include <stdarg.h>
/// @brief this is an internal call, do not use it.
-DDK_EXTERN ATTRIBUTE(naked) void* __ke_call_dispatch(const int32_t name, int32_t cnt, void* data,
+DDK_EXTERN ATTRIBUTE(naked) ptr_t __ke_call_dispatch(const int32_t name, int32_t cnt, void* data,
size_t sz);
/// @brief This function hashes the path into a FNV symbol.
/// @param path the path to hash.
diff --git a/dev/libDDK/src/ddk_kernel_call_dispatch.S b/dev/libDDK/src/ddk_kernel_call_dispatch.S
index 7b7a26cb..a607fe40 100644
--- a/dev/libDDK/src/ddk_kernel_call_dispatch.S
+++ b/dev/libDDK/src/ddk_kernel_call_dispatch.S
@@ -21,10 +21,11 @@ __ke_call_dispatch:
push rbp
mov rbp, rsp
+ /* registers have already been pushed. */
+
int kKernelCallTrapId
pop rbp
-
ret
#elif defined(__DDK_POWER64__)
diff --git a/public/frameworks/LaunchHelpers.fwrk/.keep b/public/frameworks/LaunchHelpers.fwrk/.keep
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/public/frameworks/LaunchHelpers.fwrk/.keep
diff --git a/public/frameworks/LaunchHelpers.fwrk/LaunchHelpers.json b/public/frameworks/LaunchHelpers.fwrk/LaunchHelpers.json
new file mode 100644
index 00000000..9ec17332
--- /dev/null
+++ b/public/frameworks/LaunchHelpers.fwrk/LaunchHelpers.json
@@ -0,0 +1,19 @@
+{
+ "compiler_path": "clang++",
+ "compiler_std": "c++20",
+ "headers_path": [
+ "./",
+ "../../../dev/kernel",
+ "../../../public/frameworks/",
+ "../../../dev/",
+ "./"
+ ],
+ "sources_path": [],
+ "output_name": "./dist/libLaunchHelpers.fwrk.dylib",
+ "cpp_macros": [
+ "kSampleFWVersion=0x0100",
+ "kSampleFWVersionHighest=0x0100",
+ "kSampleFWVersionLowest=0x0100",
+ "__NE_SDK__"
+ ]
+} \ No newline at end of file
diff --git a/public/frameworks/LaunchHelpers.fwrk/dist/.keep b/public/frameworks/LaunchHelpers.fwrk/dist/.keep
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/public/frameworks/LaunchHelpers.fwrk/dist/.keep
diff --git a/public/frameworks/LaunchHelpers.fwrk/headers/.keep b/public/frameworks/LaunchHelpers.fwrk/headers/.keep
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/public/frameworks/LaunchHelpers.fwrk/headers/.keep
diff --git a/public/frameworks/LaunchHelpers.fwrk/src/.keep b/public/frameworks/LaunchHelpers.fwrk/src/.keep
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/public/frameworks/LaunchHelpers.fwrk/src/.keep
diff --git a/public/frameworks/LaunchHelpers.fwrk/src/DylibMain.cc b/public/frameworks/LaunchHelpers.fwrk/src/DylibMain.cc
new file mode 100644
index 00000000..99eebd26
--- /dev/null
+++ b/public/frameworks/LaunchHelpers.fwrk/src/DylibMain.cc
@@ -0,0 +1,5 @@
+#include <libSystem/SystemKit/System.h>
+
+SInt32 _DylibAttach(SInt32 argc, Char* argv[]) {
+ return EXIT_FAILURE;
+} \ No newline at end of file
diff --git a/public/frameworks/LaunchHelpers.fwrk/xml/.keep b/public/frameworks/LaunchHelpers.fwrk/xml/.keep
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/public/frameworks/LaunchHelpers.fwrk/xml/.keep
diff --git a/public/frameworks/LaunchHelpers.fwrk/xml/app.xml b/public/frameworks/LaunchHelpers.fwrk/xml/app.xml
new file mode 100644
index 00000000..6bc3a3f4
--- /dev/null
+++ b/public/frameworks/LaunchHelpers.fwrk/xml/app.xml
@@ -0,0 +1,2 @@
+<PropertyList>
+<PLEntry Type="CFString" Name="LibraryName" Len="18" Value="LaunchHelpers.fwrk" /></PropertyList> \ No newline at end of file