From b3c3b0f62331a695fb7c90c386c15396b6607575 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Mon, 30 Jun 2025 10:36:15 +0200 Subject: feat: Introducing `FileTree` allocation and WiP DebugSrv integration. Signed-off-by: Amlal El Mahrouss --- dev/kernel/KernelKit/DebugOutput.h | 12 ++---------- dev/kernel/KernelKit/UserProcessScheduler.h | 2 +- dev/kernel/src/UserProcessScheduler.cc | 11 +++++++++++ 3 files changed, 14 insertions(+), 11 deletions(-) (limited to 'dev') diff --git a/dev/kernel/KernelKit/DebugOutput.h b/dev/kernel/KernelKit/DebugOutput.h index de3bc997..87649406 100644 --- a/dev/kernel/KernelKit/DebugOutput.h +++ b/dev/kernel/KernelKit/DebugOutput.h @@ -12,7 +12,7 @@ #include #include -#define kDebugUnboundPort 0x0FEED +#define kDebugPort (51820U) #define kDebugMag0 'K' #define kDebugMag1 'D' @@ -27,7 +27,7 @@ namespace Kernel { class TerminalDevice; class DTraceDevice; -class DebugDevice; +class NeDebugDevice; class Utf8TerminalDevice; inline TerminalDevice end_line(); @@ -184,14 +184,6 @@ inline constexpr SizeT kDebugTypeLen = 256U; typedef Char rt_debug_type[kDebugTypeLen]; -/// @brief KDBG's packet header. -class KernelDebugHeader final { - public: - Int16 fPort; - Int16 fPortKind; - rt_debug_type fPortBlob; -}; - inline TerminalDevice& operator<<(TerminalDevice& src, const Long& num) { src = number(num); return src; diff --git a/dev/kernel/KernelKit/UserProcessScheduler.h b/dev/kernel/KernelKit/UserProcessScheduler.h index 5bc5b8d2..ebe8d1cd 100644 --- a/dev/kernel/KernelKit/UserProcessScheduler.h +++ b/dev/kernel/KernelKit/UserProcessScheduler.h @@ -62,7 +62,7 @@ class USER_PROCESS final { }; USER_PROCESS_SIGNAL Signal; - PROCESS_FILE_TREE* FileTree{nullptr}; + PROCESS_FILE_TREE* FileTree{nullptr}; PROCESS_HEAP_TREE* HeapTree{nullptr}; UserProcessTeam* ParentTeam; diff --git a/dev/kernel/src/UserProcessScheduler.cc b/dev/kernel/src/UserProcessScheduler.cc index 94099c0a..621c848b 100644 --- a/dev/kernel/src/UserProcessScheduler.cc +++ b/dev/kernel/src/UserProcessScheduler.cc @@ -124,6 +124,17 @@ ErrorOr USER_PROCESS::New(SizeT sz, SizeT pad_amount) { auto ptr = mm_alloc_ptr(sz, Yes, Yes, pad_amount); #endif + if (!this->FileTree) { + this->FileTree = new PROCESS_FILE_TREE(); + + if (!this->FileTree) { + this->Crash(); + return ErrorOr(-kErrorHeapOutOfMemory); + } + + /// @todo File Tree allocation and dispose methods (amlal) + } + if (!this->HeapTree) { this->HeapTree = new PROCESS_HEAP_TREE(); -- cgit v1.2.3