summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/KernelKit/ProcessSchedulerCore.h
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-04-23 09:11:33 +0200
committerAmlal El Mahrouss <amlal@nekernel.org>2025-04-23 09:21:50 +0200
commit8c500f29bd0ef17f5b59e5be49f4cae88d827d85 (patch)
treeadce743ad0a20fde024cf7024b1813357b69f5e5 /dev/kernel/KernelKit/ProcessSchedulerCore.h
parentbb1d9fa4b7b2c680ed3c0ca16c060dd991bda16f (diff)
dev, kernel: scheduler and disk swap refactors.
Details: - Reworked SCSI groundwork to prepare for a Generic SCSI driver. - Refatored scheduler's code with the new coding style for structs. - Add Leak and LeakBlob inside PROCESS_IMAGE struct. Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
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