diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-06-30 10:36:15 +0200 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-06-30 10:36:15 +0200 |
| commit | b3c3b0f62331a695fb7c90c386c15396b6607575 (patch) | |
| tree | 00493a0039673d5604d4f42ea1d957c033670b93 /dev/kernel | |
| parent | f3062a7d633d123c2de863398d174a0dd6516d85 (diff) | |
feat: Introducing `FileTree` allocation and WiP DebugSrv integration.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel')
| -rw-r--r-- | dev/kernel/KernelKit/DebugOutput.h | 12 | ||||
| -rw-r--r-- | dev/kernel/KernelKit/UserProcessScheduler.h | 2 | ||||
| -rw-r--r-- | dev/kernel/src/UserProcessScheduler.cc | 11 |
3 files changed, 14 insertions, 11 deletions
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 <NeKit/Stream.h> #include <NeKit/Utils.h> -#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<UInt32*>* FileTree{nullptr}; + PROCESS_FILE_TREE<VoidPtr>* FileTree{nullptr}; PROCESS_HEAP_TREE<VoidPtr>* 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<VoidPtr> 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<VoidPtr>(); + + if (!this->FileTree) { + this->Crash(); + return ErrorOr<VoidPtr>(-kErrorHeapOutOfMemory); + } + + /// @todo File Tree allocation and dispose methods (amlal) + } + if (!this->HeapTree) { this->HeapTree = new PROCESS_HEAP_TREE<VoidPtr>(); |
