summaryrefslogtreecommitdiffhomepage
path: root/dev/Kernel/src
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-12-26 21:49:37 +0100
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-12-26 21:49:53 +0100
commitbce9420fb8dd066188900d44248453a11a3d08d5 (patch)
treecf78600e017480da5a4c95bf8fc8dda68c1c64e0 /dev/Kernel/src
parent486425ed00acec134f8799bdde64bfd093c5fb55 (diff)
META: Overall improvements and fixes to ZkaOS.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/Kernel/src')
-rw-r--r--dev/Kernel/src/KernelPanic.cc2
-rw-r--r--dev/Kernel/src/Mgr/SwapMgr.cc28
-rw-r--r--dev/Kernel/src/Network/IPAddr.cc (renamed from dev/Kernel/src/Network/IP.cc)7
-rw-r--r--dev/Kernel/src/Network/IPCAddr.cc0
-rw-r--r--dev/Kernel/src/Network/IPCMsg.cc (renamed from dev/Kernel/src/Network/IPC.cc)80
-rw-r--r--dev/Kernel/src/PEFCodeMgr.cc4
6 files changed, 74 insertions, 47 deletions
diff --git a/dev/Kernel/src/KernelPanic.cc b/dev/Kernel/src/KernelPanic.cc
index 9b200336..f26925c5 100644
--- a/dev/Kernel/src/KernelPanic.cc
+++ b/dev/Kernel/src/KernelPanic.cc
@@ -14,8 +14,6 @@
#include <Mod/GfxMgr/FBMgr.h>
#include <Mod/GfxMgr/TextMgr.h>
-#define kWebsiteURL "https://el-mahrouss-logic.com/products/help/"
-
/* Each error code is attributed with an ID, which will prompt a string onto the
* screen. Wait for debugger... */
diff --git a/dev/Kernel/src/Mgr/SwapMgr.cc b/dev/Kernel/src/Mgr/SwapMgr.cc
new file mode 100644
index 00000000..47e20982
--- /dev/null
+++ b/dev/Kernel/src/Mgr/SwapMgr.cc
@@ -0,0 +1,28 @@
+/* -------------------------------------------
+
+ Copyright (C) 2024, Theater Quality Inc, all rights reserved.
+
+------------------------------------------- */
+
+#include <SystemKit/SwapMgr.h>
+#include <KernelKit/FileMgr.h>
+
+namespace Kernel
+{
+ class SwapMgrDiskMgr;
+
+ class SwapMgrDiskMgr final
+ {
+ static BOOL DumpToDisk(const Char* fork_name, const SizeT fork_name_len, VoidPtr data, const SizeT data_len)
+ {
+ if (!fork_name || !fork_name_len)
+ return NO;
+
+ FileStream file(kSwapMgrPageFile, "wb");
+
+ file.Write(fork_name, data, data_len);
+
+ return YES;
+ }
+ }
+} \ No newline at end of file
diff --git a/dev/Kernel/src/Network/IP.cc b/dev/Kernel/src/Network/IPAddr.cc
index 2a07bc62..f8e3e903 100644
--- a/dev/Kernel/src/Network/IP.cc
+++ b/dev/Kernel/src/Network/IPAddr.cc
@@ -104,9 +104,12 @@ namespace Kernel
bool IPFactory::IpCheckVersion4(const Char* ip)
{
- int cnter = 0;
+ if (!ip)
+ return NO;
- for (Size base = 0; base < rt_string_len(ip); ++base)
+ Int32 cnter = 0;
+
+ for (SizeT base = 0; base < rt_string_len(ip); ++base)
{
if (ip[base] == '.')
{
diff --git a/dev/Kernel/src/Network/IPCAddr.cc b/dev/Kernel/src/Network/IPCAddr.cc
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/dev/Kernel/src/Network/IPCAddr.cc
diff --git a/dev/Kernel/src/Network/IPC.cc b/dev/Kernel/src/Network/IPCMsg.cc
index 44b4665c..c93f7e7a 100644
--- a/dev/Kernel/src/Network/IPC.cc
+++ b/dev/Kernel/src/Network/IPCMsg.cc
@@ -8,57 +8,55 @@
#include <KernelKit/LPC.h>
#include <KernelKit/UserProcessScheduler.h>
-using namespace Kernel;
-
-/// @internal
-/// @brief The internal sanitize function.
-Bool ipc_int_sanitize_packet(IPCMessage* pckt)
+namespace Kernel
{
- auto endian = rtl_deduce_endianess(pckt, ((Char*)pckt)[0]);
-
- switch (endian)
+ /// @internal
+ /// @brief The internal sanitize function.
+ Bool ipc_int_sanitize_packet(IPC_MSG* pckt)
{
- case Endian::kEndianBig: {
- if (pckt->IpcEndianess == kIPCLittleEndian)
- goto ipc_check_failed;
+ auto endian = rtl_deduce_endianess(pckt, ((Char*)pckt)[0]);
- break;
- }
- case Endian::kEndianLittle: {
- if (pckt->IpcEndianess == kIPCBigEndian)
+ switch (endian)
+ {
+ case Endian::kEndianBig: {
+ if (pckt->IpcEndianess == kIPCLittleEndian)
+ goto ipc_check_failed;
+
+ break;
+ }
+ case Endian::kEndianLittle: {
+ if (pckt->IpcEndianess == kIPCBigEndian)
+ goto ipc_check_failed;
+
+ break;
+ }
+ case Endian::kEndianMixed: {
+ if (pckt->IpcEndianess == kIPCMixedEndian)
+ goto ipc_check_failed;
+
+ break;
+ }
+ default:
goto ipc_check_failed;
+ }
- break;
- }
- case Endian::kEndianMixed: {
- if (pckt->IpcEndianess == kIPCMixedEndian)
+ if (pckt->IpcFrom == pckt->IpcTo ||
+ pckt->IpcPacketSize > kIPCMsgSize)
+ {
goto ipc_check_failed;
+ }
- break;
- }
- default:
- goto ipc_check_failed;
- }
+ return pckt->IpcPacketSize > 1 && pckt->IpcHeaderMagic == kIPCHeaderMagic;
- if (pckt->IpcFrom == pckt->IpcTo ||
- pckt->IpcPacketSize > kIPCMsgSize)
- {
- goto ipc_check_failed;
+ ipc_check_failed:
+ err_local_get() = kErrorIPC;
+ return false;
}
- return pckt->IpcPacketSize > 1 && pckt->IpcHeaderMagic == kIPCHeaderMagic;
-
-ipc_check_failed:
- err_local_get() = kErrorIPC;
- return false;
-}
-
-namespace Kernel
-{
/// @brief Sanitize packet function
/// @retval true packet is correct.
/// @retval false packet is incorrect and process has crashed.
- Bool ipc_sanitize_packet(IPCMessage* pckt)
+ Bool ipc_sanitize_packet(IPC_MSG* pckt)
{
if (!pckt ||
!ipc_int_sanitize_packet(pckt))
@@ -73,7 +71,7 @@ namespace Kernel
/// @brief Construct packet function
/// @retval true packet is correct.
/// @retval false packet is incorrect and process has crashed.
- Bool ipc_construct_packet(_Output IPCMessage** pckt_in)
+ Bool ipc_construct_packet(_Output IPC_MSG** pckt_in)
{
// don't act if it's not even valid.
if (!pckt_in)
@@ -90,7 +88,7 @@ namespace Kernel
return false;
}
- *pckt_in = new IPCMessage();
+ *pckt_in = new IPC_MSG();
if (*pckt_in)
{
@@ -99,7 +97,7 @@ namespace Kernel
(*pckt_in)->IpcHeaderMagic = kIPCHeaderMagic;
(*pckt_in)->IpcEndianess = static_cast<UInt8>(endian);
- (*pckt_in)->IpcPacketSize = sizeof(IPCMessage);
+ (*pckt_in)->IpcPacketSize = sizeof(IPC_MSG);
(*pckt_in)->IpcTo.UserProcessID = 0;
(*pckt_in)->IpcTo.UserProcessTeam = 0;
diff --git a/dev/Kernel/src/PEFCodeMgr.cc b/dev/Kernel/src/PEFCodeMgr.cc
index a8205004..c78dac01 100644
--- a/dev/Kernel/src/PEFCodeMgr.cc
+++ b/dev/Kernel/src/PEFCodeMgr.cc
@@ -66,7 +66,7 @@ namespace Kernel
auto kPefHeader = "PEF_CONTAINER";
- fCachedBlob = fFile->Read(kPefHeader);
+ fCachedBlob = fFile->Read(kPefHeader, mib_cast(16));
PEFContainer* container = reinterpret_cast<PEFContainer*>(fCachedBlob);
@@ -123,7 +123,7 @@ namespace Kernel
PEFContainer* container = reinterpret_cast<PEFContainer*>(fCachedBlob);
- auto blob = fFile->Read(name);
+ auto blob = fFile->Read(name, mib_cast(16));
PEFCommandHeader* container_header = reinterpret_cast<PEFCommandHeader*>(blob);