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

#include <UserProcessScheduler.h>

Classes

struct  USER_PROCESS_SIGNAL

Public Types

enum  { kInvalidExecutableKind , kExecutableKind , kExecutableDylibKind , kExecutableKindCount }

Public Member Functions

 USER_PROCESS ()
 ~USER_PROCESS ()
auto DoVet () const
 operator bool ()
 boolean operator, check status.
Void Crash ()
 !
Bool InitDylib ()
 !
Void Exit (const Int32 &exit_code=0)
 !
ErrorOr< VoidPtrNew (SizeT sz, SizeT pad_amount=0)
 TLS allocate.
template<typename T>
Boolean Delete (ErrorOr< T * > ptr)
 TLS free.
Void Wake (Bool wakeup=false)
 !
KPCErrorGetExitCode ()
 Gets the local exit code.
const CharGetName ()
KPCErrorGetLocalCode ()
 return local error code of process.
const UserGetOwner ()
const ProcessStatusKindGetStatus ()
const AffinityKindGetAffinity ()

Public Attributes

Char Name [kSchedNameLen] = {"USER_PROCESS"}
ProcessSubsystem SubSystem {ProcessSubsystem::kProcessSubsystemUser}
UserOwner {nullptr}
HAL::StackFramePtr StackFrame {nullptr}
AffinityKind Affinity {AffinityKind::kStandard}
ProcessStatusKind Status {ProcessStatusKind::kKilled}
UInt8 StackReserve [kSchedMaxStackSz]
ProcessImage Image {}
SizeT StackSize {kSchedMaxStackSz}
IDylibObjectDylibDelegate {nullptr}
SizeT MemoryCursor {0UL}
SizeT MemoryLimit {kSchedMaxMemoryLimit}
SizeT UsedMemory {0UL}
USER_PROCESS_SIGNAL Signal
PROCESS_FILE_TREE< VoidPtr > * FileTree {nullptr}
PROCESS_HEAP_TREE< VoidPtr > * HeapTree {nullptr}
UserProcessTeamParentTeam
VoidPtr VMRegister {0UL}
ProcessTime PTime {0}
ProcessTime RTime {0}
 Process allocated tine.
ProcessTime UTime {0}
 Process run time.
ProcessID ProcessId {kSchedInvalidPID}
 #brief Process used time.
Int32 Kind {kExecutableKind}

Private Attributes

KPCError LastExitCode {0}
KPCError LocalCode {0}
friend UserProcessScheduler
friend UserProcessHelper

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
kInvalidExecutableKind 
kExecutableKind 
kExecutableDylibKind 
kExecutableKindCount 

Constructor & Destructor Documentation

◆ ~USER_PROCESS()

Kernel::NE_VETTABLE::~USER_PROCESS ( )

Member Function Documentation

◆ Crash()

Void Kernel::NE_VETTABLE::Crash ( )

!

Crashes the app, exits with code ~0.

◆ Delete()

template<typename T>
Boolean Kernel::NE_VETTABLE::Delete ( ErrorOr< T * > ptr)

TLS free.

!

Parameters
ptrthe pointer to free.
szthe size of it.

◆ DoVet()

auto Kernel::NE_VETTABLE::DoVet ( ) const
inline

◆ Exit()

Void Kernel::NE_VETTABLE::Exit ( const Int32 & exit_code = 0)

!

Exits the app.

◆ GetAffinity()

const AffinityKind & Kernel::NE_VETTABLE::GetAffinity ( )

◆ GetExitCode()

KPCError & Kernel::NE_VETTABLE::GetExitCode ( )

Gets the local exit code.

◆ GetLocalCode()

KPCError & Kernel::NE_VETTABLE::GetLocalCode ( )

return local error code of process.

Returns
Int32 local error code.

◆ GetName()

const Char * Kernel::NE_VETTABLE::GetName ( )

◆ GetOwner()

const User * Kernel::NE_VETTABLE::GetOwner ( )

◆ GetStatus()

const ProcessStatusKind & Kernel::NE_VETTABLE::GetStatus ( )

◆ InitDylib()

Bool Kernel::NE_VETTABLE::InitDylib ( )

!

Spawns a dynamic library handle if dylib.

◆ New()

ErrorOr< VoidPtr > Kernel::NE_VETTABLE::New ( SizeT sz,
SizeT pad_amount = 0 )

TLS allocate.

!

Parameters
szsize of data structure.
pad_amountamount to add after pointer.
Returns
A wrapped pointer, or error code.

◆ operator bool()

Kernel::NE_VETTABLE::operator bool ( )
explicit

boolean operator, check status.

◆ USER_PROCESS()

Kernel::NE_VETTABLE::USER_PROCESS ( )
explicit

◆ Wake()

Void Kernel::NE_VETTABLE::Wake ( Bool wakeup = false)

!

Wakes up thread.

Member Data Documentation

◆ Affinity

AffinityKind Kernel::NE_VETTABLE::Affinity {AffinityKind::kStandard}

◆ DylibDelegate

IDylibObject* Kernel::NE_VETTABLE::DylibDelegate {nullptr}

◆ FileTree

PROCESS_FILE_TREE<VoidPtr>* Kernel::NE_VETTABLE::FileTree {nullptr}

◆ HeapTree

PROCESS_HEAP_TREE<VoidPtr>* Kernel::NE_VETTABLE::HeapTree {nullptr}

◆ Image

ProcessImage Kernel::NE_VETTABLE::Image {}

◆ Kind

Int32 Kernel::NE_VETTABLE::Kind {kExecutableKind}

◆ LastExitCode

KPCError Kernel::NE_VETTABLE::LastExitCode {0}
private

◆ LocalCode

KPCError Kernel::NE_VETTABLE::LocalCode {0}
private

◆ MemoryCursor

SizeT Kernel::NE_VETTABLE::MemoryCursor {0UL}

◆ MemoryLimit

SizeT Kernel::NE_VETTABLE::MemoryLimit {kSchedMaxMemoryLimit}

◆ Name

Char Kernel::NE_VETTABLE::Name[kSchedNameLen] = {"USER_PROCESS"}

◆ Owner

User* Kernel::NE_VETTABLE::Owner {nullptr}

◆ ParentTeam

UserProcessTeam* Kernel::NE_VETTABLE::ParentTeam

◆ ProcessId

ProcessID Kernel::NE_VETTABLE::ProcessId {kSchedInvalidPID}

#brief Process used time.

◆ PTime

ProcessTime Kernel::NE_VETTABLE::PTime {0}

◆ RTime

ProcessTime Kernel::NE_VETTABLE::RTime {0}

Process allocated tine.

◆ Signal

USER_PROCESS_SIGNAL Kernel::NE_VETTABLE::Signal

◆ StackFrame

HAL::StackFramePtr Kernel::NE_VETTABLE::StackFrame {nullptr}

◆ StackReserve

UInt8 Kernel::NE_VETTABLE::StackReserve[kSchedMaxStackSz]

◆ StackSize

SizeT Kernel::NE_VETTABLE::StackSize {kSchedMaxStackSz}

◆ Status

ProcessStatusKind Kernel::NE_VETTABLE::Status {ProcessStatusKind::kKilled}

◆ SubSystem

◆ UsedMemory

SizeT Kernel::NE_VETTABLE::UsedMemory {0UL}

◆ UserProcessHelper

friend Kernel::NE_VETTABLE::UserProcessHelper
private

◆ UserProcessScheduler

friend Kernel::NE_VETTABLE::UserProcessScheduler
private

◆ UTime

ProcessTime Kernel::NE_VETTABLE::UTime {0}

Process run time.

◆ VMRegister

VoidPtr Kernel::NE_VETTABLE::VMRegister {0UL}

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