diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-11-17 10:05:07 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-17 10:05:07 +0100 |
| commit | 062c4bb508bf6ec7334d374fef2e0e10623b2df9 (patch) | |
| tree | 137a91eb22d1a9207fd4322ced08c3b6388c5eb5 /dev/kernel/src | |
| parent | 36269e57831e560df6a0da9c9d02c00671b0163d (diff) | |
| parent | 791fcd646503f05617f22e6006c115095746da26 (diff) | |
Merge pull request #69 from nekernel-org/dev
release: NeKernel v0.0.7
Diffstat (limited to 'dev/kernel/src')
63 files changed, 348 insertions, 92 deletions
diff --git a/dev/kernel/src/ACPIFactoryInterface.cc b/dev/kernel/src/ACPIFactoryInterface.cc index 6cebf26c..c0efe73d 100644 --- a/dev/kernel/src/ACPIFactoryInterface.cc +++ b/dev/kernel/src/ACPIFactoryInterface.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/Array.cc b/dev/kernel/src/Array.cc index 36a8e744..57c77652 100644 --- a/dev/kernel/src/Array.cc +++ b/dev/kernel/src/Array.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/ArrayList.cc b/dev/kernel/src/ArrayList.cc index 39291935..c028086f 100644 --- a/dev/kernel/src/ArrayList.cc +++ b/dev/kernel/src/ArrayList.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/AsciiUtils.cc b/dev/kernel/src/AsciiUtils.cc index 8d2f9dc5..aed11e94 100644 --- a/dev/kernel/src/AsciiUtils.cc +++ b/dev/kernel/src/AsciiUtils.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/Atom.cc b/dev/kernel/src/Atom.cc index a0e45468..ba8a6088 100644 --- a/dev/kernel/src/Atom.cc +++ b/dev/kernel/src/Atom.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/BinaryMutex.cc b/dev/kernel/src/BinaryMutex.cc index 3fef477c..e91051f2 100644 --- a/dev/kernel/src/BinaryMutex.cc +++ b/dev/kernel/src/BinaryMutex.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/BitMapMgr.cc b/dev/kernel/src/BitMapMgr.cc index a7ca12ce..c3d3c05d 100644 --- a/dev/kernel/src/BitMapMgr.cc +++ b/dev/kernel/src/BitMapMgr.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/CodeMgr.cc b/dev/kernel/src/CodeMgr.cc index 6146682a..7f85d547 100644 --- a/dev/kernel/src/CodeMgr.cc +++ b/dev/kernel/src/CodeMgr.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/Crc32.cc b/dev/kernel/src/Crc32.cc index df0b34e3..49bd3d10 100644 --- a/dev/kernel/src/Crc32.cc +++ b/dev/kernel/src/Crc32.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/Defines.cc b/dev/kernel/src/Defines.cc index a06b4dd2..1cc5280e 100644 --- a/dev/kernel/src/Defines.cc +++ b/dev/kernel/src/Defines.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/DeviceMgr.cc b/dev/kernel/src/DeviceMgr.cc index b12470a9..198cd7ef 100644 --- a/dev/kernel/src/DeviceMgr.cc +++ b/dev/kernel/src/DeviceMgr.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/DriveMgr.cc b/dev/kernel/src/DriveMgr.cc index 9f107e97..a0f7bb77 100644 --- a/dev/kernel/src/DriveMgr.cc +++ b/dev/kernel/src/DriveMgr.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ @@ -152,10 +152,8 @@ DriveTrait io_construct_blank_drive() noexcept { return trait; } -namespace Detail { +namespace Probe { Void io_detect_drive(DriveTrait& trait) { - trait.fInit(trait.fPacket); - EPM_PART_BLOCK block_struct; trait.fPacket.fPacketLba = kEPMBootBlockLba; @@ -165,6 +163,8 @@ namespace Detail { rt_copy_memory((VoidPtr) "fs/detect-packet", trait.fPacket.fPacketMime, rt_string_len("fs/detect-packet")); + trait.fInit(trait.fPacket); + trait.fInput(trait.fPacket); if (rt_string_cmp(block_struct.Magic, kEPMMagic, kEPMMagicLength) == 0) { @@ -220,12 +220,11 @@ namespace Detail { /// @brief Fetches the main drive. /// @return the new drive. (returns kEPMDrive if EPM formatted) DriveTrait io_construct_main_drive() noexcept { - DriveTrait trait; - constexpr auto kMainDrive = "/media/main/"; - rt_copy_memory((VoidPtr) kMainDrive, trait.fName, rt_string_len(kMainDrive)); + DriveTrait trait{}; + rt_copy_memory((VoidPtr) kMainDrive, trait.fName, rt_string_len(kMainDrive)); MUST_PASS(trait.fName[0] != 0); trait.fVerify = io_drv_unimplemented; @@ -233,10 +232,8 @@ DriveTrait io_construct_main_drive() noexcept { trait.fInput = io_drv_input; trait.fInit = io_drv_init; trait.fProtocol = io_drv_kind; - - kout << "DriveMgr: Detecting partition scheme of: " << trait.fName << ".\r"; - - Detail::io_detect_drive(trait); + + Probe::io_detect_drive(trait); return trait; } diff --git a/dev/kernel/src/ErrorOr.cc b/dev/kernel/src/ErrorOr.cc index a872164c..fedfe3b3 100644 --- a/dev/kernel/src/ErrorOr.cc +++ b/dev/kernel/src/ErrorOr.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/FS/Ext2+IFS.cc b/dev/kernel/src/FS/Ext2+IFS.cc index 2c359197..51e2cde3 100644 --- a/dev/kernel/src/FS/Ext2+IFS.cc +++ b/dev/kernel/src/FS/Ext2+IFS.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/FS/NeFS+FileMgr.cc b/dev/kernel/src/FS/NeFS+FileMgr.cc index 2fcfa2bb..7d663397 100644 --- a/dev/kernel/src/FS/NeFS+FileMgr.cc +++ b/dev/kernel/src/FS/NeFS+FileMgr.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/FS/NeFS+FileSystemParser.cc b/dev/kernel/src/FS/NeFS+FileSystemParser.cc index b50841a4..848a1cc4 100644 --- a/dev/kernel/src/FS/NeFS+FileSystemParser.cc +++ b/dev/kernel/src/FS/NeFS+FileSystemParser.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/FS/OpenHeFS+FileMgr.cc b/dev/kernel/src/FS/OpenHeFS+FileMgr.cc index bb87fd67..8a3c7968 100644 --- a/dev/kernel/src/FS/OpenHeFS+FileMgr.cc +++ b/dev/kernel/src/FS/OpenHeFS+FileMgr.cc @@ -1,11 +1,11 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ #ifndef __NE_MINIMAL_OS__ -#ifdef __FSKIT_INCLUDES_HEFS__ +#ifdef __FSKIT_INCLUDES_OPENHEFS__ #include <KernelKit/FileMgr.h> #include <KernelKit/HeapMgr.h> @@ -187,5 +187,5 @@ _Output HeFileSystemParser* HeFileSystemMgr::GetParser() noexcept { } } // namespace Kernel -#endif // ifdef __FSKIT_INCLUDES_HEFS__ +#endif // ifdef __FSKIT_INCLUDES_OPENHEFS__ #endif // ifndef __NE_MINIMAL_OS__ diff --git a/dev/kernel/src/FS/OpenHeFS+FileSystemParser.cc b/dev/kernel/src/FS/OpenHeFS+FileSystemParser.cc index 3746ebc1..8bfbf7fb 100644 --- a/dev/kernel/src/FS/OpenHeFS+FileSystemParser.cc +++ b/dev/kernel/src/FS/OpenHeFS+FileSystemParser.cc @@ -1,10 +1,10 @@ /* ------------------------------------------- - Copyright (C) 2024-2025 Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025 Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ -#ifdef __FSKIT_INCLUDES_HEFS__ +#ifdef __FSKIT_INCLUDES_OPENHEFS__ #include <FSKit/OpenHeFS.h> #include <FirmwareKit/EPM.h> @@ -1149,13 +1149,15 @@ STATIC DriveTrait kMountPoint; /// @brief Initialize the OpenHeFS filesystem. /// @return To check its status, see err_local_get(). -Boolean OpenHeFS::fs_init_hefs(Void) noexcept { +Boolean OpenHeFS::fs_init_openhefs(Void) noexcept { kout << "Verifying disk...\r"; kMountPoint = io_construct_main_drive(); - if (kMountPoint.fPacket.fPacketReadOnly == YES) - ke_panic(RUNTIME_CHECK_FILESYSTEM, "Main disk cannot be mounted (read-only media)."); + if (kMountPoint.fPacket.fPacketReadOnly == YES) { + kout << "Main disk cannot be mounted (read-only media).\r"; + return NO; + } HeFileSystemParser parser; @@ -1163,4 +1165,4 @@ Boolean OpenHeFS::fs_init_hefs(Void) noexcept { } } // namespace Kernel -#endif // ifdef __FSKIT_INCLUDES_HEFS__ +#endif // ifdef __FSKIT_INCLUDES_OPENHEFS__ diff --git a/dev/kernel/src/FileMgr.cc b/dev/kernel/src/FileMgr.cc index faed9ae1..bb6b27d0 100644 --- a/dev/kernel/src/FileMgr.cc +++ b/dev/kernel/src/FileMgr.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/GUIDWizard.cc b/dev/kernel/src/GUIDWizard.cc index b36fffc2..81bf3293 100644 --- a/dev/kernel/src/GUIDWizard.cc +++ b/dev/kernel/src/GUIDWizard.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. File: GUIDWizard.cc Purpose: GUID helper code diff --git a/dev/kernel/src/GUIDWrapper.cc b/dev/kernel/src/GUIDWrapper.cc index d5ab6bb8..de773a74 100644 --- a/dev/kernel/src/GUIDWrapper.cc +++ b/dev/kernel/src/GUIDWrapper.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/Gfx/FBDeviceInterface.cc b/dev/kernel/src/Gfx/FBDeviceInterface.cc index f1867b45..422aaf53 100644 --- a/dev/kernel/src/Gfx/FBDeviceInterface.cc +++ b/dev/kernel/src/Gfx/FBDeviceInterface.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/HardwareThreadScheduler.cc b/dev/kernel/src/HardwareThreadScheduler.cc index a4b6b4b8..2600c4cb 100644 --- a/dev/kernel/src/HardwareThreadScheduler.cc +++ b/dev/kernel/src/HardwareThreadScheduler.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/HeapMgr.cc b/dev/kernel/src/HeapMgr.cc index eb86f378..1e5b460e 100644 --- a/dev/kernel/src/HeapMgr.cc +++ b/dev/kernel/src/HeapMgr.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/IDylibObject.cc b/dev/kernel/src/IDylibObject.cc index 6def3fcf..61191af1 100644 --- a/dev/kernel/src/IDylibObject.cc +++ b/dev/kernel/src/IDylibObject.cc @@ -2,7 +2,7 @@ * ======================================================== * * NeKernel - * Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + * Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. * * ======================================================== */ diff --git a/dev/kernel/src/IFS.cc b/dev/kernel/src/IFS.cc index ffb8ef8e..e975750a 100644 --- a/dev/kernel/src/IFS.cc +++ b/dev/kernel/src/IFS.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ @@ -13,7 +13,7 @@ * Purpose: Filesystem to mountpoint interface. * Date: 05/26/2025 * - * Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + * Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. * *************************************************************/ diff --git a/dev/kernel/src/IPEFDylibObject.cc b/dev/kernel/src/IPEFDylibObject.cc index 91f8c88a..bca09efe 100644 --- a/dev/kernel/src/IPEFDylibObject.cc +++ b/dev/kernel/src/IPEFDylibObject.cc @@ -2,7 +2,7 @@ * ======================================================== * * NeKernel - * Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + * Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. * * ======================================================== */ diff --git a/dev/kernel/src/IndexableProperty.cc b/dev/kernel/src/IndexableProperty.cc index 56143607..7ed6f708 100644 --- a/dev/kernel/src/IndexableProperty.cc +++ b/dev/kernel/src/IndexableProperty.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/Json.cc b/dev/kernel/src/Json.cc index d156c0ce..79f16cfb 100644 --- a/dev/kernel/src/Json.cc +++ b/dev/kernel/src/Json.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/KPC.cc b/dev/kernel/src/KPC.cc index 1693fbd3..94e86399 100644 --- a/dev/kernel/src/KPC.cc +++ b/dev/kernel/src/KPC.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/KernelTaskScheduler.cc b/dev/kernel/src/KernelTaskScheduler.cc index 8bbe5601..b6cea3bc 100644 --- a/dev/kernel/src/KernelTaskScheduler.cc +++ b/dev/kernel/src/KernelTaskScheduler.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. FILE: KernelTaskScheduler.cc PURPOSE: Kernel Task scheduler. diff --git a/dev/kernel/src/LockDelegate.cc b/dev/kernel/src/LockDelegate.cc index d02de3e4..759fad73 100644 --- a/dev/kernel/src/LockDelegate.cc +++ b/dev/kernel/src/LockDelegate.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/MutableArray.cc b/dev/kernel/src/MutableArray.cc index b7aaee1c..c2e98851 100644 --- a/dev/kernel/src/MutableArray.cc +++ b/dev/kernel/src/MutableArray.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/Network/IPAddress.cc b/dev/kernel/src/Network/IPAddress.cc index bc46292b..7834cfa8 100644 --- a/dev/kernel/src/Network/IPAddress.cc +++ b/dev/kernel/src/Network/IPAddress.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/Network/IPCAddress.cc b/dev/kernel/src/Network/IPCAddress.cc index 4c1dd500..9af46ad1 100644 --- a/dev/kernel/src/Network/IPCAddress.cc +++ b/dev/kernel/src/Network/IPCAddress.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/Network/IPCMessage.cc b/dev/kernel/src/Network/IPCMessage.cc index 6f8223f7..16d5ed80 100644 --- a/dev/kernel/src/Network/IPCMessage.cc +++ b/dev/kernel/src/Network/IPCMessage.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/Network/MACAddressGetter.cc b/dev/kernel/src/Network/MACAddressGetter.cc index 736e1e27..8356cd7d 100644 --- a/dev/kernel/src/Network/MACAddressGetter.cc +++ b/dev/kernel/src/Network/MACAddressGetter.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/Network/NetworkDevice.cc b/dev/kernel/src/Network/NetworkDevice.cc index ffdfa53b..b1ecf841 100644 --- a/dev/kernel/src/Network/NetworkDevice.cc +++ b/dev/kernel/src/Network/NetworkDevice.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/New+Delete.cc b/dev/kernel/src/New+Delete.cc index da705f26..aab963aa 100644 --- a/dev/kernel/src/New+Delete.cc +++ b/dev/kernel/src/New+Delete.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/OwnPtr.cc b/dev/kernel/src/OwnPtr.cc index c716c2f4..f07c9393 100644 --- a/dev/kernel/src/OwnPtr.cc +++ b/dev/kernel/src/OwnPtr.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/PE32CodeMgr.cc b/dev/kernel/src/PE32CodeMgr.cc new file mode 100644 index 00000000..ec8c6e1b --- /dev/null +++ b/dev/kernel/src/PE32CodeMgr.cc @@ -0,0 +1,258 @@ +/* ------------------------------------------- + + Copyright (C) 2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. + +------------------------------------------- */ + +#include <CFKit/Utils.h> +#include <KernelKit/DebugOutput.h> +#include <KernelKit/HeapMgr.h> +#include <KernelKit/PE32CodeMgr.h> +#include <KernelKit/ProcessScheduler.h> +#include <NeKit/Defines.h> +#include <NeKit/KString.h> +#include <NeKit/OwnPtr.h> +#include <NeKit/KernelPanic.h> + +namespace Kernel { +namespace Detail { + /***********************************************************************************/ + /// @brief Get the PE32+ platform signature according to the compiled architecture. + /***********************************************************************************/ + + UInt32 ldr_get_platform_pe(void) noexcept { +#if defined(__NE_AMD64__) + return kPEPlatformAMD64; +#elif defined(__NE_ARM64__) + return kPEPlatformARM64; +#else + return kPEPlatformInvalid; +#endif // __32x0__ || __64x0__ || __x86_64__ + } +} // namespace Detail + +/***********************************************************************************/ +/// @brief PE32+ loader constructor w/ blob. +/// @param blob file blob. +/***********************************************************************************/ + +PE32Loader::PE32Loader(const VoidPtr blob) : fCachedBlob(blob) { + MUST_PASS(fCachedBlob); + fBad = false; +} + +/***********************************************************************************/ +/// @brief PE32+ loader constructor. +/// @param path the filesystem path. +/***********************************************************************************/ + +PE32Loader::PE32Loader(const Char* path) : fCachedBlob(nullptr), fBad(false) { + fFile.New(const_cast<Char*>(path), kRestrictRB); + fPath = KStringBuilder::Construct(path).Leak(); + + auto kPefHeader = "PE32_BLOB"; + fCachedBlob = fFile->Read(kPefHeader, 0); + + if (!fCachedBlob) fBad = YES; +} + +/***********************************************************************************/ +/// @brief PE32+ destructor. +/***********************************************************************************/ + +PE32Loader::~PE32Loader() { + if (fCachedBlob) mm_free_ptr(fCachedBlob); + + fFile.Delete(); +} + +/***********************************************************************************/ +/// @brief Finds the section according to its name. +/// @param name name of section. +/***********************************************************************************/ + +ErrorOr<VoidPtr> PE32Loader::FindSectionByName(const Char* name) { + if (!fCachedBlob || fBad || !name) return ErrorOr<VoidPtr>{kErrorInvalidData}; + + LDR_EXEC_HEADER_PTR header_ptr = CF::ldr_find_exec_header((const Char*) fCachedBlob); + LDR_OPTIONAL_HEADER_PTR opt_header_ptr = CF::ldr_find_opt_exec_header((const Char*) fCachedBlob); + + if (!header_ptr || !opt_header_ptr) return ErrorOr<VoidPtr>{kErrorInvalidData}; + +#ifdef __NE_AMD64__ + if (header_ptr->Machine != kPeMachineAMD64 || header_ptr->Signature != kPeSignature) { + return ErrorOr<VoidPtr>{kErrorInvalidData}; + } + +#elif defined(__NE_ARM64__) + if (header_ptr->Machine != kPeMachineARM64 || header_ptr->Signature != kPeSignature) { + return ErrorOr<VoidPtr>{kErrorInvalidData}; + } +#endif // __NE_AMD64__ || __NE_ARM64__ + + if (header_ptr->NumberOfSections < 1) { + return ErrorOr<VoidPtr>{kErrorInvalidData}; + } + + LDR_SECTION_HEADER_PTR secs = + (LDR_SECTION_HEADER_PTR) (((Char*) opt_header_ptr) + header_ptr->SizeOfOptionalHeader); + + for (SizeT sectIndex = 0; sectIndex < header_ptr->NumberOfSections; ++sectIndex) { + LDR_SECTION_HEADER_PTR sect = &secs[sectIndex]; + + if (KStringBuilder::Equals(name, sect->Name)) { + return ErrorOr<VoidPtr>(sect); + } + } + + return ErrorOr<VoidPtr>{kErrorInvalidData}; +} + +/***********************************************************************************/ +/// @brief Finds the symbol according to it's name. +/// @param name name of symbol. +/// @param kind kind of symbol we want. +/***********************************************************************************/ + +ErrorOr<VoidPtr> PE32Loader::FindSymbol(const Char* name, Int32 kind) { + if (!name || *name == 0) return ErrorOr<VoidPtr>{kErrorInvalidData}; + + auto section_name = "\0"; + + switch (kind) { + case kPETypeData: + section_name = ".data"; + break; + case kPETypeBSS: + section_name = ".bss"; + break; + case kPETypeText: + section_name = ".text"; + break; + default: + return ErrorOr<VoidPtr>{kErrorInvalidData}; + } + + auto sec = this->FindSectionByName(section_name); + LDR_SECTION_HEADER_PTR* sec_ptr = (LDR_SECTION_HEADER_PTR*) sec.Leak().Leak(); + + if (!sec_ptr || !*sec_ptr) return ErrorOr<VoidPtr>{kErrorInvalidData}; + + LDR_OPTIONAL_HEADER_PTR opt_header_ptr = CF::ldr_find_opt_exec_header((const Char*) fCachedBlob); + + if (opt_header_ptr) { + LDR_DATA_DIRECTORY_PTR data_dirs = + (LDR_DATA_DIRECTORY_PTR) ((UInt8*) opt_header_ptr + sizeof(LDR_OPTIONAL_HEADER)); + + LDR_DATA_DIRECTORY_PTR export_dir_entry = &data_dirs[0]; + + if (export_dir_entry->VirtualAddress == 0 || export_dir_entry->Size == 0) + return ErrorOr<VoidPtr>{kErrorInvalidData}; + + LDR_EXPORT_DIRECTORY* export_dir = + (LDR_EXPORT_DIRECTORY*) ((UIntPtr) fCachedBlob + export_dir_entry->VirtualAddress); + + UInt32* name_table = (UInt32*) ((UIntPtr) fCachedBlob + export_dir->AddressOfNames); + UInt16* ordinal_table = (UInt16*) ((UIntPtr) fCachedBlob + export_dir->AddressOfNameOrdinal); + UInt32* function_table = (UInt32*) ((UIntPtr) fCachedBlob + export_dir->AddressOfFunctions); + + for (UInt32 i = 0; i < export_dir->NumberOfNames; ++i) { + const char* exported_name = (const char*) ((UIntPtr) fCachedBlob + name_table[i]); + + if (KStringBuilder::Equals(exported_name, name)) { + UInt16 ordinal = ordinal_table[i]; + UInt32 rva = function_table[ordinal]; + + VoidPtr symbol_addr = (VoidPtr) ((UIntPtr) fCachedBlob + rva); + + return ErrorOr<VoidPtr>{symbol_addr}; + } + } + } + + return ErrorOr<VoidPtr>{kErrorInvalidData}; +} + +/// @brief Finds the executable entrypoint. +/// @return +ErrorOr<VoidPtr> PE32Loader::FindStart() { + if (auto sym = this->FindSymbol(kPeImageStart, 0); sym) return sym; + + return ErrorOr<VoidPtr>(kErrorExecutable); +} + +/// @brief Tells if the executable is loaded or not. +/// @return Whether it's not bad and is cached. +bool PE32Loader::IsLoaded() noexcept { + return !fBad && fCachedBlob; +} + +const Char* PE32Loader::Path() { + return fPath.Leak().CData(); +} + +const Char* PE32Loader::AsString() { +#ifdef __32x0__ + return "32x0 PE"; +#elif defined(__64x0__) + return "64x0 PE"; +#elif defined(__x86_64__) + return "x86_64 PE"; +#elif defined(__aarch64__) + return "AARCH64 PE"; +#elif defined(__powerpc64__) + return "POWER64 PE"; +#else + return "???? PE"; +#endif // __32x0__ || __64x0__ || __x86_64__ || __powerpc64__ +} + +const Char* PE32Loader::MIME() { + return kPeApplicationMime; +} + +ErrorOr<VoidPtr> PE32Loader::GetBlob() { + return ErrorOr<VoidPtr>{this->fCachedBlob}; +} + +namespace Utils { + ProcessID rtl_create_user_process(PE32Loader& exec, const Int32& process_kind) noexcept { + auto errOrStart = exec.FindStart(); + + if (errOrStart.Error() != kErrorSuccess) return kSchedInvalidPID; + + auto symname = exec.FindSymbol(kPeImageStart, 0); + + if (!symname) { + symname = ErrorOr<VoidPtr>{(VoidPtr) rt_alloc_string("USER_PROCESS_PE32+")}; + } + + auto id = + UserProcessScheduler::The().Spawn(reinterpret_cast<const Char*>(symname.Leak().Leak()), + errOrStart.Leak().Leak(), exec.GetBlob().Leak().Leak()); + + mm_free_ptr(symname.Leak().Leak()); + + if (id != kSchedInvalidPID) { + auto stacksym = exec.FindSymbol(kPeStackSizeSymbol, 0); + + if (!stacksym) { + stacksym = ErrorOr<VoidPtr>{(VoidPtr) new UIntPtr(kSchedMaxStackSz)}; + } + + if ((*(volatile UIntPtr*) stacksym.Leak().Leak()) > kSchedMaxStackSz) { + *(volatile UIntPtr*) stacksym.Leak().Leak() = kSchedMaxStackSz; + } + + UserProcessScheduler::The().TheCurrentTeam().AsArray()[id].Kind = process_kind; + UserProcessScheduler::The().TheCurrentTeam().AsArray()[id].StackSize = + *(UIntPtr*) stacksym.Leak().Leak(); + + mm_free_ptr(stacksym.Leak().Leak()); + stacksym.Leak().Leak() = nullptr; + } + + return id; + } +} // namespace Utils +} // namespace NeKernel
\ No newline at end of file diff --git a/dev/kernel/src/PEFCodeMgr.cc b/dev/kernel/src/PEFCodeMgr.cc index a0d0a6af..3175d815 100644 --- a/dev/kernel/src/PEFCodeMgr.cc +++ b/dev/kernel/src/PEFCodeMgr.cc @@ -1,7 +1,7 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. - Copyright (C) 2025, Amlal El Mahrouss & NeKernel contributors, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. + Copyright (C) 2025, Amlal El Mahrouss & NeKernel contributors, licensed under the Apache 2.0 license. ------------------------------------------- */ @@ -192,7 +192,7 @@ ErrorOr<VoidPtr> PEFLoader::FindSymbol(const Char* name, Int32 kind) { Char* unconst_symbol = const_cast<Char*>(name); for (SizeT i = 0UL; i < rt_string_len(unconst_symbol, kPefNameLen); ++i) { - if (unconst_symbol[i] == ' ') { + if (rt_is_space(unconst_symbol[i])) { unconst_symbol[i] = kMangleCharacter; } } @@ -301,7 +301,7 @@ namespace Utils { auto symname = exec.FindSymbol(kPefNameSymbol, kPefData); if (!symname) { - symname = ErrorOr<VoidPtr>{(VoidPtr) rt_alloc_string("USER_PROCESS")}; + symname = ErrorOr<VoidPtr>{(VoidPtr) rt_alloc_string("USER_PROCESS_PEF")}; } ProcessID id = diff --git a/dev/kernel/src/PRDT.cc b/dev/kernel/src/PRDT.cc index 0c84fd29..8feb96dc 100644 --- a/dev/kernel/src/PRDT.cc +++ b/dev/kernel/src/PRDT.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/PageMgr.cc b/dev/kernel/src/PageMgr.cc index 2aa2a79c..ffc88bca 100644 --- a/dev/kernel/src/PageMgr.cc +++ b/dev/kernel/src/PageMgr.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/Pmm.cc b/dev/kernel/src/Pmm.cc index 7f5050f9..ac0c629b 100644 --- a/dev/kernel/src/Pmm.cc +++ b/dev/kernel/src/Pmm.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/Property.cc b/dev/kernel/src/Property.cc index 714fb2a4..87ffec18 100644 --- a/dev/kernel/src/Property.cc +++ b/dev/kernel/src/Property.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/Ref.cc b/dev/kernel/src/Ref.cc index db584d9c..ff66e882 100644 --- a/dev/kernel/src/Ref.cc +++ b/dev/kernel/src/Ref.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/Semaphore.cc b/dev/kernel/src/Semaphore.cc index acbbb57f..52965ceb 100644 --- a/dev/kernel/src/Semaphore.cc +++ b/dev/kernel/src/Semaphore.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/SoftwareTimer.cc b/dev/kernel/src/SoftwareTimer.cc index 52087931..66a4c94f 100644 --- a/dev/kernel/src/SoftwareTimer.cc +++ b/dev/kernel/src/SoftwareTimer.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/Storage/AHCIDeviceInterface.cc b/dev/kernel/src/Storage/AHCIDeviceInterface.cc index 6dcfed69..e392bca3 100644 --- a/dev/kernel/src/Storage/AHCIDeviceInterface.cc +++ b/dev/kernel/src/Storage/AHCIDeviceInterface.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/Storage/ATADeviceInterface.cc b/dev/kernel/src/Storage/ATADeviceInterface.cc index 70d6e9ae..faf5bcad 100644 --- a/dev/kernel/src/Storage/ATADeviceInterface.cc +++ b/dev/kernel/src/Storage/ATADeviceInterface.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/Storage/NVMEDeviceInterface.cc b/dev/kernel/src/Storage/NVMEDeviceInterface.cc index 0b8043b7..ead294f9 100644 --- a/dev/kernel/src/Storage/NVMEDeviceInterface.cc +++ b/dev/kernel/src/Storage/NVMEDeviceInterface.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/Storage/SCSIDeviceInterface.cc b/dev/kernel/src/Storage/SCSIDeviceInterface.cc index 6f26f486..d223ca9c 100644 --- a/dev/kernel/src/Storage/SCSIDeviceInterface.cc +++ b/dev/kernel/src/Storage/SCSIDeviceInterface.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/Stream.cc b/dev/kernel/src/Stream.cc index e05f6e6d..e9b66c8c 100644 --- a/dev/kernel/src/Stream.cc +++ b/dev/kernel/src/Stream.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. File: Stream.cc Purpose: Stream object diff --git a/dev/kernel/src/Swap/DiskSwap.cc b/dev/kernel/src/Swap/DiskSwap.cc index 99efb2c0..ce265102 100644 --- a/dev/kernel/src/Swap/DiskSwap.cc +++ b/dev/kernel/src/Swap/DiskSwap.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025 Amlal El Mahrouss , all rights reserved. + Copyright (C) 2024-2025 Amlal El Mahrouss , licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/ThreadLocalStorage.cc b/dev/kernel/src/ThreadLocalStorage.cc index f54eeaab..fa445d84 100644 --- a/dev/kernel/src/ThreadLocalStorage.cc +++ b/dev/kernel/src/ThreadLocalStorage.cc @@ -2,7 +2,7 @@ * ======================================================== * * NeKernel - * Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + * Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. * * ======================================================== */ diff --git a/dev/kernel/src/Timer.cc b/dev/kernel/src/Timer.cc index 6539f1a9..45b0d929 100644 --- a/dev/kernel/src/Timer.cc +++ b/dev/kernel/src/Timer.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/UserMgr.cc b/dev/kernel/src/UserMgr.cc index 5ee2aa33..103e8ec9 100644 --- a/dev/kernel/src/UserMgr.cc +++ b/dev/kernel/src/UserMgr.cc @@ -2,7 +2,7 @@ * ======================================================== * * NeKernel - * Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + * Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. * * File: UserMgr.cc * Purpose: User Manager, used to provide authentication and security. @@ -89,14 +89,11 @@ Bool User::Save(const UserPublicKey password) noexcept { Bool User::Login(const UserPublicKey password) noexcept { if (!password || !*password) return No; - // now check if the password matches. - if (this->mUserFNV == Detail::user_fnv_generator(password, this)) { - kout << "User::Login: Password matches.\r"; - return Yes; - } + auto ret = this->mUserFNV == Detail::user_fnv_generator(password, this); - kout << "User::Login: Password doesn't match.\r"; - return No; + // now check if the password matches. + kout << (ret ? "User::Login: Password matches.\r" : "User::Login: Password doesn't match.\r"); + return ret; } Bool User::operator==(const User& lhs) { diff --git a/dev/kernel/src/UserProcessScheduler.cc b/dev/kernel/src/UserProcessScheduler.cc index ac25c3d8..aafa71f6 100644 --- a/dev/kernel/src/UserProcessScheduler.cc +++ b/dev/kernel/src/UserProcessScheduler.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. FILE: UserProcessScheduler.cc PURPOSE: Low-Privilege/Ring-3 process scheduler. @@ -678,11 +678,13 @@ UserProcessScheduler::operator bool() { /// @brief this checks if no process is on the team. //////////////////////////////////////////////////////////// Bool UserProcessScheduler::operator!() { + SInt64 cnt = 0UL; + for (auto process_index = 0UL; process_index < mTeam.AsArray().Count(); ++process_index) { auto& process = mTeam.AsArray()[process_index]; - if (UserProcessHelper::CanBeScheduled(process)) return false; + if (UserProcessHelper::CanBeScheduled(process)) ++cnt; } - return true; + return cnt == 0L; } } // namespace Kernel diff --git a/dev/kernel/src/UserProcessTeam.cc b/dev/kernel/src/UserProcessTeam.cc index 23536242..ba675209 100644 --- a/dev/kernel/src/UserProcessTeam.cc +++ b/dev/kernel/src/UserProcessTeam.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/UtfUtils.cc b/dev/kernel/src/UtfUtils.cc index d0523b96..df634735 100644 --- a/dev/kernel/src/UtfUtils.cc +++ b/dev/kernel/src/UtfUtils.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/Variant.cc b/dev/kernel/src/Variant.cc index 51e5f5b8..b1cc5485 100644 --- a/dev/kernel/src/Variant.cc +++ b/dev/kernel/src/Variant.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ diff --git a/dev/kernel/src/ZXD.cc b/dev/kernel/src/ZXD.cc index 8ca6bbf7..7cbeac8b 100644 --- a/dev/kernel/src/ZXD.cc +++ b/dev/kernel/src/ZXD.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright (C) 2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ------------------------------------------- */ |
