diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-09-07 18:12:25 +0200 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-09-07 18:12:25 +0200 |
| commit | 537cadbf78695a01ea1c00a0a5a4b6b70ddac8c3 (patch) | |
| tree | 293cd2e60b377729805f1252c37dd28bb332ee6d | |
| parent | d9e1479799ef2d7594c9c9f7dc2724353a01faff (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.cc | 4 | ||||
| -rw-r--r-- | dev/kernel/HALKit/ARM64/HalKernelMain.cc | 4 | ||||
| -rw-r--r-- | dev/launch/.keep | 0 | ||||
| -rw-r--r-- | dev/launch/LaunchKit/.keep | 0 | ||||
| -rw-r--r-- | dev/launch/obj/.keep | 0 | ||||
| -rw-r--r-- | dev/launch/src/.keep | 0 | ||||
| -rw-r--r-- | dev/libDDK/DriverKit/cpp/object.hpp | 16 | ||||
| -rw-r--r-- | dev/libDDK/DriverKit/ddk.h | 4 | ||||
| -rw-r--r-- | dev/libDDK/src/ddk_kernel_call.c | 2 | ||||
| -rw-r--r-- | dev/libDDK/src/ddk_kernel_call_dispatch.S | 3 | ||||
| -rw-r--r-- | public/frameworks/LaunchHelpers.fwrk/.keep | 0 | ||||
| -rw-r--r-- | public/frameworks/LaunchHelpers.fwrk/LaunchHelpers.json | 19 | ||||
| -rw-r--r-- | public/frameworks/LaunchHelpers.fwrk/dist/.keep | 0 | ||||
| -rw-r--r-- | public/frameworks/LaunchHelpers.fwrk/headers/.keep | 0 | ||||
| -rw-r--r-- | public/frameworks/LaunchHelpers.fwrk/src/.keep | 0 | ||||
| -rw-r--r-- | public/frameworks/LaunchHelpers.fwrk/src/DylibMain.cc | 5 | ||||
| -rw-r--r-- | public/frameworks/LaunchHelpers.fwrk/xml/.keep | 0 | ||||
| -rw-r--r-- | public/frameworks/LaunchHelpers.fwrk/xml/app.xml | 2 |
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 |
