diff options
Diffstat (limited to 'dev/kernel/KernelKit/ProcessSchedulerCore.h')
| -rw-r--r-- | dev/kernel/KernelKit/ProcessSchedulerCore.h | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/dev/kernel/KernelKit/ProcessSchedulerCore.h b/dev/kernel/KernelKit/ProcessSchedulerCore.h index 002e685e..ee90ed8b 100644 --- a/dev/kernel/KernelKit/ProcessSchedulerCore.h +++ b/dev/kernel/KernelKit/ProcessSchedulerCore.h @@ -7,11 +7,12 @@ #pragma once #include <NewKit/Defines.h> +#include <NewKit/ErrorOr.h> namespace Kernel { - class UserProcess; - class KernelProcess; + class USER_PROCESS; + class KERNEL_PROCESS; class UserProcessTeam; /***********************************************************************************/ @@ -117,9 +118,9 @@ namespace Kernel /***********************************************************************************/ using ImagePtr = VoidPtr; - struct ProcessImage final + struct PROCESS_IMAGE final { - explicit ProcessImage() = default; + explicit PROCESS_IMAGE() = default; ImagePtr fCode; ImagePtr fBlob; @@ -133,5 +134,25 @@ namespace Kernel { return this->fBlob != nullptr; } + + ErrorOr<ImagePtr> Leak() + { + if (this->fCode) + { + return ErrorOr<ImagePtr>{this->fCode}; + } + + return ErrorOr<ImagePtr>{nullptr}; + } + + ErrorOr<ImagePtr> LeakBlob() + { + if (this->fBlob) + { + return ErrorOr<ImagePtr>{this->fBlob}; + } + + return ErrorOr<ImagePtr>{nullptr}; + } }; } // namespace Kernel |
