NeKernel dev
Loading...
Searching...
No Matches
Kernel::HardwareThreadScheduler Class Referencefinal

#include <HardwareThreadScheduler.h>

Inheritance diagram for Kernel::HardwareThreadScheduler:
Kernel::ISchedulable

Public Member Functions

 HardwareThreadScheduler ()
 Constructor and destructors.
 ~HardwareThreadScheduler ()
 !
HAL::StackFramePtr Leak ()
 Get Stack Frame of AP.
Ref< HardwareThread * > operator[] (SizeT idx)
bool operator! ()
 operator bool ()
Bool IsUser () override
 Is this object only accepting user tasks?
Bool IsKernel () override
 Is this object only accepting kernel tasks?
Bool HasMP () override
 Is this object offloading to another CPU?
STATIC HardwareThreadSchedulerThe ()
 Shared instance of the MP Mgr.
SizeT Capacity ()
 Returns the amount of threads present in the system.
Public Member Functions inherited from Kernel::ISchedulable
 ISchedulable ()=default
virtual ~ISchedulable ()=default
ISchedulableoperator= (const ISchedulable &)=default
 ISchedulable (const ISchedulable &)=default

Private Attributes

Array< HardwareThread, kMaxAPInsideSchedfThreadList
ThreadID fCurrentThreadIdx {0}

Friends

class UserProcessHelper

Constructor & Destructor Documentation

◆ HardwareThreadScheduler()

Kernel::HardwareThreadScheduler::HardwareThreadScheduler ( )
explicitdefault

Constructor and destructors.

! Default constructor.

◆ ~HardwareThreadScheduler()

Kernel::HardwareThreadScheduler::~HardwareThreadScheduler ( )
default

!

Default destructor.

Member Function Documentation

◆ Capacity()

SizeT Kernel::HardwareThreadScheduler::Capacity ( )

Returns the amount of threads present in the system.

Returns the amount of core present.

Returns
SizeT the amount of cores present.
the number of APs.

◆ HasMP()

Bool Kernel::HardwareThreadScheduler::HasMP ( )
inlineoverridevirtual

Is this object offloading to another CPU?

Reimplemented from Kernel::ISchedulable.

◆ IsKernel()

Bool Kernel::HardwareThreadScheduler::IsKernel ( )
inlineoverridevirtual

Is this object only accepting kernel tasks?

Reimplemented from Kernel::ISchedulable.

◆ IsUser()

Bool Kernel::HardwareThreadScheduler::IsUser ( )
inlineoverridevirtual

Is this object only accepting user tasks?

Reimplemented from Kernel::ISchedulable.

◆ Leak()

HAL::StackFramePtr Kernel::HardwareThreadScheduler::Leak ( )

Get Stack Frame of AP.

◆ operator bool()

Kernel::HardwareThreadScheduler::operator bool ( )

Check if thread pool isn't empty.

Returns

◆ operator!()

bool Kernel::HardwareThreadScheduler::operator! ( )

Reverse operator bool

Returns

◆ operator[]()

Ref< HardwareThread * > Kernel::HardwareThreadScheduler::operator[] ( SizeT idx)

Get Hardware thread at index.

Parameters
idxthe index
Returns
the reference to the hardware thread.

◆ The()

HardwareThreadScheduler & Kernel::HardwareThreadScheduler::The ( )

Shared instance of the MP Mgr.

Shared singleton function.

Returns
the reference to the mp manager class.

◆ UserProcessHelper

friend class UserProcessHelper
friend

Member Data Documentation

◆ fCurrentThreadIdx

ThreadID Kernel::HardwareThreadScheduler::fCurrentThreadIdx {0}
private

◆ fThreadList

Array<HardwareThread, kMaxAPInsideSched> Kernel::HardwareThreadScheduler::fThreadList
private

The documentation for this class was generated from the following files: