NeKernel dev
Loading...
Searching...
No Matches
CoreProcessScheduler.h File Reference

Core Process Scheduler header file. More...

#include <NeKit/Config.h>
#include <NeKit/ErrorOr.h>

Go to the source code of this file.

Classes

struct  Kernel::PROCESS_HEAP_TREE< T >
struct  Kernel::PROCESS_FILE_TREE< T >
struct  Kernel::PROCESS_SPECIAL_TREE< T >
struct  Kernel::ProcessImage
 Helper class to contain a process's image and blob. More...

Namespaces

namespace  Kernel
 UPS inline definitions.

Macros

#define kSchedMinMicroTime   (AffinityKind::kStandard)
#define kSchedInvalidPID   (-1)
#define kSchedProcessLimitPerTeam   (32U)
#define kSchedTeamCount   (256U)
#define kSchedMaxMemoryLimit   (gib_cast(128)) /* max physical memory limit */
#define kSchedMaxStackSz   (kib_cast(8)) /* maximum stack size */
#define kSchedNameLen   (128U)

Typedefs

using Kernel::ProcessCtx = UInt32
using Kernel::PTime = UInt64
using Kernel::ProcessTime = PTime
using Kernel::ProcessID = Int64
 Local Process Identifier type.
using Kernel::ImagePtr = VoidPtr
 Helper type to describe a code image.

Enumerations

enum  { Kernel::kInvalidTreeKind = 0U , Kernel::kRedTreeKind = 100U , Kernel::kBlackTreeKind = 101U , Kernel::kTreeKindCount = 3U }
enum class  Kernel::ProcessSubsystem : Int32 {
  Kernel::kProcessSubsystemSecurity = 100 , Kernel::kProcessSubsystemUser , Kernel::kProcessSubsystemService , Kernel::kProcessSubsystemDriver ,
  Kernel::kProcessSubsystemKernel , Kernel::kProcessSubsystemCount = kProcessSubsystemKernel - kProcessSubsystemSecurity + 1 , Kernel::kProcessSubsystemInvalid = 0xFFFFFFF
}
 Subsystem enum type. More...
enum class  Kernel::ProcessStatusKind : Int32 {
  Kernel::kInvalid = 0 , Kernel::kStarting = 100 , Kernel::kRunning , Kernel::kKilled ,
  Kernel::kFrozen , Kernel::kFinished , Kernel::kCount = kFinished - kStarting + 1
}
 Local Process status enum. More...
enum class  Kernel::AffinityKind : Int32 {
  Kernel::kInvalid = 0 , Kernel::kRealTime = 100 , Kernel::kVeryHigh = 150 , Kernel::kHigh = 200 ,
  Kernel::kStandard = 1000 , Kernel::kLowUsage = 1500 , Kernel::kVeryLowUsage = 2000
}
 Affinity is the amount of nano-seconds this process is going to run. More...
enum class  Kernel::ProcessLevelRing : Int32 { Kernel::kRingStdUser = 1 , Kernel::kRingSuperUser = 2 , Kernel::kRingGuestUser = 5 , Kernel::kRingCount = 3 }

Functions

EXTERN_C void sched_idle_task (void)
bool Kernel::operator< (AffinityKind lhs, AffinityKind rhs)
 Operators for AffinityKind.
bool Kernel::operator> (AffinityKind lhs, AffinityKind rhs)
bool Kernel::operator<= (AffinityKind lhs, AffinityKind rhs)
bool Kernel::operator>= (AffinityKind lhs, AffinityKind rhs)

Detailed Description

Core Process Scheduler header file.

Author
Amlal El Mahrouss (amlal.nosp@m.@nek.nosp@m.ernel.nosp@m..org)

Macro Definition Documentation

◆ kSchedInvalidPID

#define kSchedInvalidPID   (-1)

◆ kSchedMaxMemoryLimit

#define kSchedMaxMemoryLimit   (gib_cast(128)) /* max physical memory limit */

◆ kSchedMaxStackSz

#define kSchedMaxStackSz   (kib_cast(8)) /* maximum stack size */

◆ kSchedMinMicroTime

#define kSchedMinMicroTime   (AffinityKind::kStandard)

◆ kSchedNameLen

#define kSchedNameLen   (128U)

◆ kSchedProcessLimitPerTeam

#define kSchedProcessLimitPerTeam   (32U)

◆ kSchedTeamCount

#define kSchedTeamCount   (256U)

Function Documentation

◆ sched_idle_task()

EXTERN_C void sched_idle_task ( void )