The Pedigree Project 0.1
Public Member Functions | Public Attributes | List of all members
Thread::StateLevel Struct Reference
+ Collaboration diagram for Thread::StateLevel:

Public Member Functions

 StateLevel (const StateLevel &s)
 
StateLevel & operator= (const StateLevel &s)
 

Public Attributes

SchedulerState * m_State
 
UserReturnFrame * m_UserReturnFrame = nullptr
 
VirtualAddressSpace::Stack * m_pKernelStack
 
VirtualAddressSpace::Stack * m_pUserStack
 
VirtualAddressSpace::Stack * m_pAuxillaryStack
 
SharedPointer< ExtensibleBitmap > m_InhibitMask
 
uint64_t m_SignalMask
 
uint64_t m_SavedSignalMask
 
bool m_TemporarySignalMaskActive
 
bool m_TemporarySignalWaitInterrupted
 
bool m_DeferredSignalMaskRestore
 
size_t m_DispatchedSignalNumber
 
size_t m_DispatchedSignalContinuationEpoch
 
bool m_bOwnsAlternateSignalStack
 
size_t m_Errno
 
InterruptionReason m_InterruptionReason
 
bool m_bDispatchingWaitEvent
 
ExecutionContextState m_ExecutionContext
 
RequestQueueCallbackScope * m_pRequestQueueCallback
 
bool m_bTerminalWaitCancelledBeforeBlock
 
WaitQueue::Waiter m_Waiter
 

Detailed Description

A level of thread state

Definition at line 1099 of file Thread.h.

Constructor & Destructor Documentation

◆ StateLevel() [1/2]

Thread::StateLevel::StateLevel ( )

Definition at line 3039 of file Thread.cc.

◆ ~StateLevel()

Thread::StateLevel::~StateLevel ( )

Definition at line 3069 of file Thread.cc.

◆ StateLevel() [2/2]

Thread::StateLevel::StateLevel ( const StateLevel &  s)

Definition at line 3073 of file Thread.cc.

Member Function Documentation

◆ operator=()

Thread::StateLevel & Thread::StateLevel::operator= ( const StateLevel &  s)

Definition at line 3102 of file Thread.cc.

Member Data Documentation

◆ m_bDispatchingWaitEvent

bool Thread::StateLevel::m_bDispatchingWaitEvent

◆ m_bOwnsAlternateSignalStack

bool Thread::StateLevel::m_bOwnsAlternateSignalStack

This event level owns the thread's active alternate signal stack.

Definition at line 1142 of file Thread.h.

Referenced by PerProcessorScheduler::checkEventState(), Thread::cleanStateLevel(), Thread::popState(), Thread::prepareSignalStateForExec(), and Thread::pushState().

◆ m_bTerminalWaitCancelledBeforeBlock

bool Thread::StateLevel::m_bTerminalWaitCancelledBeforeBlock

A terminal cancel unlinked this level's waiter while its owner was still running toward the scheduler sleep transition. Protected by Thread::m_Lock.

Definition at line 1162 of file Thread.h.

Referenced by Thread::cleanStateLevel().

◆ m_DeferredSignalMaskRestore

bool Thread::StateLevel::m_DeferredSignalMaskRestore

Definition at line 1135 of file Thread.h.

◆ m_DispatchedSignalContinuationEpoch

size_t Thread::StateLevel::m_DispatchedSignalContinuationEpoch

Definition at line 1139 of file Thread.h.

◆ m_DispatchedSignalNumber

size_t Thread::StateLevel::m_DispatchedSignalNumber

Kernel-owned metadata for the signal dispatched at this level.

Definition at line 1138 of file Thread.h.

Referenced by Thread::cleanStateLevel(), Thread::getCurrentSignalDelivery(), Thread::prepareSignalStateForExec(), Thread::pushState(), and Thread::setCurrentSignalDelivery().

◆ m_Errno

size_t Thread::StateLevel::m_Errno

Syscall-local state isolated from nested event handlers.

Definition at line 1145 of file Thread.h.

Referenced by Thread::pushState().

◆ m_ExecutionContext

ExecutionContextState Thread::StateLevel::m_ExecutionContext

Logical context scopes belong to the Thread state they interrupted.

Definition at line 1152 of file Thread.h.

Referenced by Thread::cleanStateLevel(), Thread::executionContext(), and Thread::pushState().

◆ m_InhibitMask

SharedPointer<ExtensibleBitmap> Thread::StateLevel::m_InhibitMask

Stack of inhibited Event masks, gets pushed with a new value when an Event handler is run, and popped when one completes.

Note
A '1' here means the event is inhibited, '0' means it can be fired.

Definition at line 1126 of file Thread.h.

Referenced by Thread::cleanStateLevel(), Thread::inhibitEvent(), Thread::pushState(), Thread::Thread(), and Thread::Thread().

◆ m_InterruptionReason

InterruptionReason Thread::StateLevel::m_InterruptionReason

Definition at line 1146 of file Thread.h.

◆ m_pAuxillaryStack

VirtualAddressSpace::Stack* Thread::StateLevel::m_pAuxillaryStack

Auxillary stack, to be freed in case the kernel stack is null. This allows kernel mode threads to have stacks freed, as they are left hanging otherwise.

Definition at line 1119 of file Thread.h.

Referenced by Thread::cleanStateLevel(), Thread::getKernelStackBase(), and Thread::Thread().

◆ m_pKernelStack

VirtualAddressSpace::Stack* Thread::StateLevel::m_pKernelStack

◆ m_pRequestQueueCallback

RequestQueueCallbackScope* Thread::StateLevel::m_pRequestQueueCallback

Active RequestQueue callback scopes inherited by nested events.

Definition at line 1155 of file Thread.h.

Referenced by Thread::cleanStateLevel(), and Thread::pushState().

◆ m_pUserStack

VirtualAddressSpace::Stack* Thread::StateLevel::m_pUserStack

Definition at line 1113 of file Thread.h.

◆ m_SavedSignalMask

uint64_t Thread::StateLevel::m_SavedSignalMask

Original mask and interruption state for an armed signal-aware wait.

Definition at line 1132 of file Thread.h.

Referenced by Thread::cleanStateLevel(), Thread::prepareSignalStateForExec(), and Thread::pushState().

◆ m_SignalMask

uint64_t Thread::StateLevel::m_SignalMask

◆ m_State

SchedulerState* Thread::StateLevel::m_State

The processor state for this level.

Definition at line 1107 of file Thread.h.

Referenced by Thread::allocateStackAtLevel(), Thread::pokeState(), Thread::pushState(), and Thread::state().

◆ m_TemporarySignalMaskActive

bool Thread::StateLevel::m_TemporarySignalMaskActive

Definition at line 1133 of file Thread.h.

◆ m_TemporarySignalWaitInterrupted

bool Thread::StateLevel::m_TemporarySignalWaitInterrupted

Definition at line 1134 of file Thread.h.

◆ m_UserReturnFrame

UserReturnFrame* Thread::StateLevel::m_UserReturnFrame = nullptr

Definition at line 1108 of file Thread.h.

◆ m_Waiter

WaitQueue::Waiter Thread::StateLevel::m_Waiter

Persistent wait record for this event nesting level.

Definition at line 1170 of file Thread.h.

Referenced by Thread::getWaitDebugInfo(), Thread::interruptWaitUnlocked(), and Thread::unlinkWaitsForStackDiscard().


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