NeKernel dev
Loading...
Searching...
No Matches
KernelTaskScheduler.h
Go to the documentation of this file.
1/* ========================================
2
3 Copyright (C) 2025, Amlal El Mahrouss, licensed under the Apache 2.0 license.
4
5======================================== */
6
7#pragma once
8
12
13#include <ArchKit/ArchKit.h>
16
17namespace Kernel {
19
20typedef ProcessID KID;
21
36
47} // namespace Kernel
Core Process Scheduler header file.
#define kSchedNameLen
Definition CoreProcessScheduler.h:24
#define kSchedMaxStackSz
Definition CoreProcessScheduler.h:22
#define STATIC
ErrorOr class for error handling.
Definition ErrorOr.h:22
Equivalent of USER_PROCESS, but for kernel tasks.
Definition KernelTaskScheduler.h:24
SizeT StackSize
Definition KernelTaskScheduler.h:30
HAL::StackFramePtr StackFrame
Definition KernelTaskScheduler.h:28
UInt8 * StackReserve
Definition KernelTaskScheduler.h:29
Char Name[kSchedNameLen]
Definition KernelTaskScheduler.h:26
ProcessImage Image
Definition KernelTaskScheduler.h:31
KID Kid
a KID is a Kernel ID, it is used to find a task running within the kernel.
Definition KernelTaskScheduler.h:34
ProcessSubsystem SubSystem
Definition KernelTaskScheduler.h:27
Equivalent of UserProcessHelper, but for kernel tasks.
Definition KernelTaskScheduler.h:39
STATIC Bool Add(HAL::StackFramePtr frame_ptr, ProcessID new_kid)
Definition KernelTaskScheduler.cc:21
STATIC Bool CanBeScheduled(const KERNEL_TASK &process)
Definition KernelTaskScheduler.cc:34
STATIC SizeT StartScheduling()
STATIC ErrorOr< KID > TheCurrentKID()
STATIC Bool Remove(const KID kid)
Definition KernelTaskScheduler.cc:28
StackFrame * StackFramePtr
Definition Processor.h:34
UPS inline definitions.
Definition Device.h:12
char Char
Definition Config.h:51
Int64 ProcessID
Local Process Identifier type.
Definition CoreProcessScheduler.h:219
ProcessSubsystem
Subsystem enum type.
Definition CoreProcessScheduler.h:145
@ kProcessSubsystemKernel
Definition CoreProcessScheduler.h:150
__SIZE_TYPE__ SizeT
Definition Config.h:60
__UINT8_TYPE__ UInt8
Definition Config.h:55
ProcessID KID
Definition KernelTaskScheduler.h:20
bool Bool
Definition Config.h:50
Helper class to contain a process's image and blob.
Definition CoreProcessScheduler.h:239