summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/KernelKit/ProcessSchedulerCore.h
diff options
context:
space:
mode:
Diffstat (limited to 'dev/kernel/KernelKit/ProcessSchedulerCore.h')
-rw-r--r--dev/kernel/KernelKit/ProcessSchedulerCore.h29
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