|
The Pedigree Project 0.1
|
Inheritance diagram for PerProcessorScheduler:
Collaboration diagram for PerProcessorScheduler:Public Types | |
| enum class | StackDiscardReason { EmergencyProcessKill , HostedRegression , LegacyAbiCall } |
| enum class | ProcessStopGateMode { StopOnly , DirectUserTransition } |
Public Member Functions | |
| PerProcessorScheduler () | |
| void | initialise (Thread *pThread) |
| void | checkEventState (uintptr_t userStack) |
| void | eventHandlerReturned () NORETURN |
| void | addThread (Thread *pThread, Thread::ThreadStartFunc pStartFunction, void *pParam, bool bUsermode, void *pStack) |
| void | addThread (Thread *pThread, SyscallState &state) |
| void | commitCurrentThreadExit (Spinlock *pLock=0) NORETURN |
| void | abandonCurrentThreadStack (StackDiscardReason reason, Spinlock *pLock=0) NORETURN |
| void | requestCurrentThreadExitToIdle () |
| void | timer (uint64_t delta, InterruptState &state) |
| void | setClockDeadline (uint64_t deadline) |
| void | removeThread (Thread *pThread) |
| void | threadStatusChanged (Thread *pThread) |
| size_t | logicalCpu () const |
| bool | isIdleThread (const Thread *thread) const |
| uint64_t | nominalQuantumNs () const |
| void | ringIrqWorkDoorbell () |
| void | registerWorkerWake (SchedulerWorkerWake &worker, WaitQueue &waiters) |
| void | unregisterWorkerWake (SchedulerWorkerWake &worker) |
| void | ringIrqWorkDoorbell (SchedulerWorkerWake &worker, bool promptOwner=true) |
| void | publishDeferredTimeAccounting () |
| void | serviceIrqWorkDoorbell () |
| void | servicePendingScheduling () |
| MUST_USE_RESULT bool | serviceProcessStopAtUserReturn (ProcessStopGateMode mode=ProcessStopGateMode::StopOnly) |
| MUST_USE_RESULT bool | serviceUserReturnWork (InterruptState &state, UserReturnFrame::Origin origin=UserReturnFrame::Origin::Interrupt, bool diagnosticSample=false) |
| MUST_USE_RESULT bool | serviceUserReturnWork (SyscallState &state, UserReturnFrame::Origin origin=UserReturnFrame::Origin::Syscall, bool diagnosticSample=false) |
| bool | sampleUserReturnDiagnostics () |
| void | commitUserReturnTerminalState () |
| void | requestIdleThreadWakeup () |
| void | setIdle (Thread *pThread) |
| void | idleUntilInterrupt () |
Static Public Member Functions | |
| static size_t | stackDiscardCount () |
| static size_t | stackDiscardCount (StackDiscardReason reason) |
Private Member Functions | |
| void | killCurrentThread (Spinlock *pLock=0) NORETURN |
| void | schedule (Thread::Status nextStatus=Thread::Ready, bool dispatchEvents=true) |
| void | scheduleWithInterruptState (Thread::Status nextStatus, bool dispatchEvents, bool previousInterruptState) |
| void | blockCurrent () |
| void | publishReadyFromWait (Thread *pThread) |
| void | finishCurrentThreadExit (Spinlock *pLock, bool transferToIdle) NORETURN |
| void | serviceDeferredSubsystemException (InterruptState &state, bool diagnosticSample=false) |
| void | checkEventState (uintptr_t userStack, Thread::EventSelection selection) |
| void | checkEventState (uintptr_t userStack, Thread::EventSelection selection, InterruptState *interruptState, SyscallState *syscallState) |
| PerProcessorScheduler (const PerProcessorScheduler &) | |
| PerProcessorScheduler & | operator= (const PerProcessorScheduler &) |
| void | startNewThreadWorker (Process *pParent) |
| void | stopNewThreadWorker () |
| void | startTimeAccountingWorker (Process *pParent) |
| void | stopTimeAccountingWorker () |
| int | runTimeAccountingWorker () |
| void | publishDeferredThreadReap (Thread *thread) |
| bool | drainDeferredThreadReaps () |
| bool | enqueueAffinity (Thread *thread, bool accepted=false) |
| void | drainAffinityRequests () |
| void | prompt (bool readyPublication=false) |
| void | armLocalQuantumIfNeeded () |
| void | updateOneShotTimer () |
| void | programOneShotTimer () |
| Thread * | selectNext (Thread *current) |
| void | serviceWorkerWakeups () |
Static Private Member Functions | |
| static void | deleteThreadThenRestoreState (Thread *pThread, SchedulerState &newState, volatile uintptr_t *pLock=0) NORETURN |
| static void | deleteThread (Thread *pThread) |
| static int | timeAccountingWorkerEntry (void *instance) |
| static int | processorAddThread (void *instance) |
Static Private Attributes | |
| static constexpr size_t | DeferredReapPublicationClosed |
| static constexpr size_t | DeferredReapPublicationCountMask = ~DeferredReapPublicationClosed |
Friends | |
| class | Scheduler |
| class | Thread |
| class | ProcessorThreadAllocator |
| class | WaitQueue |
Definition at line 45 of file PerProcessorScheduler.h.
|
strong |
Definition at line 155 of file PerProcessorScheduler.h.
|
strong |
Why an exceptional exit is intentionally discarding live C++ frames.
Definition at line 48 of file PerProcessorScheduler.h.
| PerProcessorScheduler::PerProcessorScheduler | ( | ) |
Default constructor - Creates an empty scheduler with a new idle thread.
Definition at line 69 of file PerProcessorScheduler.cc.
| PerProcessorScheduler::~PerProcessorScheduler | ( | ) |
Definition at line 98 of file PerProcessorScheduler.cc.
|
private |
Copy-constructor
| void PerProcessorScheduler::abandonCurrentThreadStack | ( | StackDiscardReason | reason, |
| Spinlock * | pLock = 0 |
||
| ) |
Explicitly discards the current physical stack for exceptional recovery. Every call is counted and stack-owned cleanup records are retired on a best-effort basis before switching away.
Definition at line 1270 of file PerProcessorScheduler.cc.
References ProcessorBase::information(), Thread::m_ExitToIdle, and Thread::unlinkWaitsForStackDiscard().
Referenced by killCurrentThread().
Here is the caller graph for this function:| void PerProcessorScheduler::addThread | ( | Thread * | pThread, |
| SyscallState & | state | ||
| ) |
Adds a new thread.
| pThread | The thread to add. |
| state | The syscall state to jump to. |
Definition at line 1129 of file PerProcessorScheduler.cc.
References Spinlock::acquire(), Semaphore::acquire(), SchedulingAlgorithm::addThread(), LocksCommand::checkSchedule(), Spinlock::deferredReleaseWord(), EMIT_IF, Process::getAddressSpace(), ProcessorBase::getInterrupts(), Thread::getKernelStack(), Thread::getLock(), Thread::getParent(), Thread::getStatus(), Thread::getTlsBase(), ProcessorBase::id(), ProcessorBase::information(), LocksCommand::lockReleased(), Thread::m_Lock, m_pSchedulingAlgorithm, panic(), List< T, nodePoolSize >::pushBack(), Thread::recordTime(), Spinlock::release(), Semaphore::release(), ProcessorBase::restoreState(), ProcessorBase::saveState(), Thread::setCpuId(), ProcessorBase::setInterrupts(), Thread::setScheduler(), ProcessorBase::setTlsBase(), ConditionVariable::signal(), Thread::state(), ProcessorBase::switchAddressSpace(), ProcessorBase::switchState(), and Thread::trackTime().
| void PerProcessorScheduler::addThread | ( | Thread * | pThread, |
| Thread::ThreadStartFunc | pStartFunction, | ||
| void * | pParam, | ||
| bool | bUsermode, | ||
| void * | pStack | ||
| ) |
Adds a new thread.
| pThread | The thread to add. |
| pStartFunction | The function to start the thread with. |
| pParam | void* parameter to give to the function. |
| bUsermode | Start the thread in User Mode? |
| pStack | Stack to start the thread with. |
Definition at line 1010 of file PerProcessorScheduler.cc.
References Spinlock::acquire(), Semaphore::acquire(), SchedulingAlgorithm::addThread(), LocksCommand::checkSchedule(), Spinlock::deferredReleaseWord(), EMIT_IF, Process::getAddressSpace(), ProcessorBase::getInterrupts(), Thread::getKernelStack(), Thread::getLock(), Thread::getParent(), Thread::getStatus(), Thread::getTlsBase(), ProcessorBase::id(), ProcessorBase::information(), ProcessorBase::jumpKernel(), ProcessorBase::jumpUser(), LocksCommand::lockReleased(), Thread::m_Lock, m_pSchedulingAlgorithm, panic(), List< T, nodePoolSize >::pushBack(), Thread::recordTime(), Spinlock::release(), Semaphore::release(), ProcessorBase::saveAndJumpKernel(), ProcessorBase::saveAndJumpUser(), ProcessorBase::saveState(), Thread::setCpuId(), ProcessorBase::setInterrupts(), Thread::setScheduler(), ProcessorBase::setTlsBase(), ConditionVariable::signal(), Thread::state(), ProcessorBase::switchAddressSpace(), and Thread::trackTime().
Referenced by ProcessorThreadAllocator::addThread(), and ProcessorThreadAllocator::addThread().
Here is the caller graph for this function:
|
private |
Definition at line 527 of file PerProcessorScheduler.cc.
|
private |
Blocks the current thread after WaitQueue has published its wait record.
Definition at line 1464 of file PerProcessorScheduler.cc.
References schedule().
| void PerProcessorScheduler::checkEventState | ( | uintptr_t | userStack | ) |
Looks for event handlers to run, and if found, dispatches one.
| userStack | The stack to use if the event has a user-mode handler. Usually obtained from an interruptState or syscallState. |
Definition at line 740 of file PerProcessorScheduler.cc.
References checkEventState().
Referenced by checkEventState(), checkEventState(), and PosixSubsystem::sendSignal().
Here is the caller graph for this function:
|
private |
Dispatches one event using an exact scheduler-owned selection policy.
Definition at line 744 of file PerProcessorScheduler.cc.
References checkEventState().
|
private |
Dispatches one event with an optional raw return-to-user context.
Definition at line 748 of file PerProcessorScheduler.cc.
References PhysicalMemoryManager::allocatePage(), VirtualAddressSpace::allocateStack(), Event::deliverAtUserReturn(), EMIT_IF, Thread::eventsDeferred(), Event::getHandlerAddress(), Event::getHandlerBuffer(), Event::getHandlerBufferSize(), Event::getHandlerPrivilege(), Thread::getId(), ProcessorBase::getInterrupts(), Thread::getKernelStack(), VirtualAddressSpace::getKernelStart(), VirtualAddressSpace::getMapping(), Thread::getNextEvent(), Event::getNumber(), PhysicalMemoryManager::getPageSize(), Thread::getParent(), Thread::getScheduler(), Thread::getStateLevel(), Event::getTrampoline(), VirtualAddressSpace::getUserStart(), Hex, ProcessorBase::information(), PhysicalMemoryManager::instance(), VirtualAddressSpace::isAddressValid(), Event::isDeletable(), VirtualAddressSpace::isMapped(), Event::isSignalEvent(), Event::isValidHandlerMapping(), ProcessorBase::jumpUser(), VirtualAddressSpace::KernelMode, Thread::m_AlternateSignalStack, Thread::StateLevel::m_bOwnsAlternateSignalStack, Thread::m_nStateLevel, VirtualAddressSpace::map(), Thread::markDeferredUserReturnSignalInterruption(), panic(), Thread::popState(), Event::prefersAlternateUserStack(), Thread::pushState(), Event::requiresExactUserReturnState(), Event::Delivery::reset(), VirtualAddressSpace::RuntimeMapping, ProcessorBase::saveAndJumpUser(), ProcessorBase::saveState(), Thread::sendEvent(), Event::serialize(), ProcessorBase::setInterrupts(), Thread::transitionTime(), and VirtualAddressSpace::Write.
| void PerProcessorScheduler::commitCurrentThreadExit | ( | Spinlock * | pLock = 0 | ) |
Commits an exit after the current C++ call chain has returned to an audited boundary.
This refuses to switch away while stack-owned cleanup records, deferral scopes, or active WaitQueue records remain.
Definition at line 1241 of file PerProcessorScheduler.cc.
References ProcessorBase::information(), Thread::m_EventDeferralDepth, Thread::m_ExitToIdle, Thread::m_pDeferredScopes, and Thread::m_TerminationDeferralDepth.
Referenced by commitUserReturnTerminalState().
Here is the caller graph for this function:| void PerProcessorScheduler::commitUserReturnTerminalState | ( | ) |
Commits terminal state after architecture return-tail cleanup is done.
Definition at line 1981 of file PerProcessorScheduler.cc.
References commitCurrentThreadExit(), Thread::Exit, Subsystem::exit(), Thread::getParent(), Thread::getUnwindState(), ProcessorBase::information(), Thread::isTerminationDeferred(), Thread::takeDeferredProcessExit(), and Thread::TerminateThread.
|
staticprivate |
Definition at line 1392 of file PerProcessorScheduler.cc.
|
staticprivate |
Switches stacks, calls PerProcessorScheduler::deleteThread, then context switches.
|
private |
Definition at line 296 of file Thread-affinity.cc.
|
private |
Definition at line 228 of file PerProcessorScheduler.cc.
|
private |
Definition at line 262 of file Thread-affinity.cc.
| void PerProcessorScheduler::eventHandlerReturned | ( | ) |
Assumes this thread has just returned from executing a event handler, and lets it resume normal execution.
Definition at line 1000 of file PerProcessorScheduler.cc.
References Thread::abandonCurrentState(), ProcessorBase::information(), ProcessorBase::restoreState(), ProcessorBase::setInterrupts(), and Thread::state().
Referenced by HostedSyscallManager::syscall().
Here is the caller graph for this function:
|
private |
Definition at line 1326 of file PerProcessorScheduler.cc.
| void PerProcessorScheduler::idleUntilInterrupt | ( | ) |
Checks ready work with IRQs masked before the idle thread halts.
Definition at line 2256 of file PerProcessorScheduler.cc.
References ProcessorBase::haltUntilInterrupt(), SchedulingAlgorithm::hasReady(), m_pSchedulingAlgorithm, schedule(), servicePendingScheduling(), and ProcessorBase::setInterrupts().
| void PerProcessorScheduler::initialise | ( | Thread * | pThread | ) |
Initialises the scheduler with the given thread.
Definition at line 406 of file PerProcessorScheduler.cc.
References SchedulingAlgorithm::addThread(), ProcessorBase::getCount(), Thread::getKernelStack(), Thread::getParent(), Machine::getSchedulerTimer(), Thread::getTlsBase(), ProcessorBase::id(), ProcessorBase::index(), ProcessorBase::information(), ProcessorBase::informationAt(), m_pSchedulingAlgorithm, panic(), Thread::recordTime(), SchedulerTimer::registerHandler(), Thread::setCpuId(), Thread::setStatus(), ProcessorBase::setTlsBase(), and SchedulerTimer::supportsOneShot().
|
inline |
Definition at line 124 of file PerProcessorScheduler.h.
|
private |
Link compatibility only; new source must choose an explicit exit API.
Definition at line 1266 of file PerProcessorScheduler.cc.
References abandonCurrentThreadStack().
|
inline |
Definition at line 121 of file PerProcessorScheduler.h.
|
inline |
Definition at line 127 of file PerProcessorScheduler.h.
|
private |
Assignment operator
|
staticprivate |
Definition at line 315 of file PerProcessorScheduler.cc.
|
private |
Definition at line 457 of file PerProcessorScheduler.cc.
|
private |
Definition at line 277 of file Thread-affinity.cc.
|
private |
Definition at line 208 of file PerProcessorScheduler.cc.
| void PerProcessorScheduler::publishDeferredTimeAccounting | ( | ) |
Publishes deferred process timer accounting from IRQ/scheduler context. The accounting worker is made runnable through the shared IRQ doorbell.
Definition at line 1654 of file PerProcessorScheduler.cc.
References DeferredTimeAccountingWorkerState::publish(), and ringIrqWorkDoorbell().
|
private |
Publishes a completed wait directly to this scheduler's ready queue.
Definition at line 1468 of file PerProcessorScheduler.cc.
Referenced by Thread::sendEvent(), Thread::setUnwindState(), and Thread::wakeForDeliverableEvents().
Here is the caller graph for this function:| void PerProcessorScheduler::registerWorkerWake | ( | SchedulerWorkerWake & | worker, |
| WaitQueue & | waiters | ||
| ) |
Registers a worker wait queue for scheduler-side wake publication.
Definition at line 1596 of file PerProcessorScheduler.cc.
Referenced by Rtc::initialise3().
Here is the caller graph for this function:| void PerProcessorScheduler::removeThread | ( | Thread * | pThread | ) |
Definition at line 1460 of file PerProcessorScheduler.cc.
| void PerProcessorScheduler::requestCurrentThreadExitToIdle | ( | ) |
Selects the registered idle owner when the current Thread exits.
Definition at line 1318 of file PerProcessorScheduler.cc.
References ProcessorBase::information(), Thread::m_ExitToIdle, and panic().
| void PerProcessorScheduler::requestIdleThreadWakeup | ( | ) |
Wakes the idle owner until it retires its role for terminal shutdown.
Definition at line 2245 of file PerProcessorScheduler.cc.
| void PerProcessorScheduler::ringIrqWorkDoorbell | ( | ) |
Atomic hard-IRQ publication; does not touch a lock or ready queue.
Definition at line 1591 of file PerProcessorScheduler.cc.
Referenced by Rtc::deadlineInterrupt(), publishDeferredTimeAccounting(), RequestQueue::publishRequest(), ringIrqWorkDoorbell(), and Rtc::uninitialise().
Here is the caller graph for this function:| void PerProcessorScheduler::ringIrqWorkDoorbell | ( | SchedulerWorkerWake & | worker, |
| bool | promptOwner = true |
||
| ) |
Publishes one worker wake edge without touching a lock or ready queue.
Definition at line 1622 of file PerProcessorScheduler.cc.
References ringIrqWorkDoorbell().
|
private |
Definition at line 170 of file PerProcessorScheduler.cc.
|
inline |
Selects one low-overhead, per-CPU user-return diagnostic sample.
Definition at line 183 of file PerProcessorScheduler.h.
Referenced by X64InterruptManager::returnFromInterrupt().
Here is the caller graph for this function:
|
private |
Picks another runnable thread and switches to it.
Definition at line 543 of file PerProcessorScheduler.cc.
References ProcessorBase::getInterrupts(), ProcessorBase::guardDeviceHardIrqOperation(), ProcessorBase::information(), and ProcessorBase::setInterrupts().
Referenced by blockCurrent(), idleUntilInterrupt(), serviceIrqWorkDoorbell(), and servicePendingScheduling().
Here is the caller graph for this function:
|
private |
Definition at line 557 of file PerProcessorScheduler.cc.
Definition at line 1476 of file PerProcessorScheduler.cc.
|
private |
Runs a raw-frame exception through its subsystem in ordinary context.
Definition at line 1941 of file PerProcessorScheduler.cc.
References ProcessorBase::getInterrupts(), Thread::getParent(), ProcessorBase::information(), Subsystem::resolveUserPageFault(), Thread::takeDeferredSubsystemException(), and Subsystem::threadException().
| void PerProcessorScheduler::serviceIrqWorkDoorbell | ( | ) |
Reschedules once from ordinary thread context during lifecycle work.
Definition at line 1659 of file PerProcessorScheduler.cc.
References ProcessorBase::information(), m_pSchedulingAlgorithm, and schedule().
| void PerProcessorScheduler::servicePendingScheduling | ( | ) |
Services wakeups and reschedule requests at a safe scheduling boundary.
Definition at line 1674 of file PerProcessorScheduler.cc.
References ProcessorBase::information(), m_pSchedulingAlgorithm, and schedule().
Referenced by idleUntilInterrupt().
Here is the caller graph for this function:| bool PerProcessorScheduler::serviceProcessStopAtUserReturn | ( | ProcessStopGateMode | mode = ProcessStopGateMode::StopOnly | ) |
Waits until the current Process permits another userspace transition. Direct transitions also drain kernel Events which cannot use the ordinary user-stack-aware return service. Returns true when terminal Thread work wins while waiting.
Definition at line 1692 of file PerProcessorScheduler.cc.
References Thread::Continue, Thread::currentTimeAccountingMode(), ProcessorBase::executionContext(), ProcessorBase::getInterrupts(), Thread::getParent(), Thread::getUnwindState(), ProcessorBase::inDeviceHardIrq(), ProcessorBase::information(), Thread::m_EventWaiters, Thread::m_Lock, and Process::Reaped.
Referenced by Process::suspendInternal(), and HostedSyscallManager::syscall().
Here is the caller graph for this function:| bool PerProcessorScheduler::serviceUserReturnWork | ( | InterruptState & | state, |
| UserReturnFrame::Origin | origin = UserReturnFrame::Origin::Interrupt, |
||
| bool | diagnosticSample = false |
||
| ) |
Delivers pending Events and terminal work immediately before a user return, after the raw interrupt frame has released its C++ scopes.
Definition at line 1771 of file PerProcessorScheduler.cc.
References Thread::Continue, Thread::getUnwindState(), ProcessorBase::information(), and Thread::isTerminationDeferred().
Referenced by X64InterruptManager::returnFromInterrupt(), HostedSyscallManager::syscall(), and X64SyscallManager::syscall().
Here is the caller graph for this function:| bool PerProcessorScheduler::serviceUserReturnWork | ( | SyscallState & | state, |
| UserReturnFrame::Origin | origin = UserReturnFrame::Origin::Syscall, |
||
| bool | diagnosticSample = false |
||
| ) |
Delivers pending Events immediately before returning from a syscall.
Definition at line 1874 of file PerProcessorScheduler.cc.
References ProcessorBase::information().
|
private |
Definition at line 1631 of file PerProcessorScheduler.cc.
| void PerProcessorScheduler::setClockDeadline | ( | uint64_t | deadline | ) |
Publish the shared timer's next deadline on CPU 0.
Definition at line 479 of file PerProcessorScheduler.cc.
References ProcessorBase::getInterrupts(), ProcessorBase::information(), ProcessorBase::informationAt(), and ProcessorBase::setInterrupts().
Referenced by Rtc::uninitialise().
Here is the caller graph for this function:| void PerProcessorScheduler::setIdle | ( | Thread * | pThread | ) |
Definition at line 2250 of file PerProcessorScheduler.cc.
|
static |
Monotonic count of explicit physical-stack discards.
Definition at line 1302 of file PerProcessorScheduler.cc.
|
static |
Monotonic count for one explicit physical-stack discard reason.
Definition at line 1306 of file PerProcessorScheduler.cc.
|
private |
Definition at line 271 of file PerProcessorScheduler.cc.
|
private |
Definition at line 116 of file PerProcessorScheduler.cc.
|
private |
Definition at line 287 of file PerProcessorScheduler.cc.
|
private |
Definition at line 139 of file PerProcessorScheduler.cc.
| void PerProcessorScheduler::threadStatusChanged | ( | Thread * | pThread | ) |
Definition at line 1544 of file PerProcessorScheduler.cc.
|
staticprivate |
Definition at line 166 of file PerProcessorScheduler.cc.
|
virtual |
SchedulerTimerHandler callback.
Implements SchedulerTimerHandler.
Definition at line 1498 of file PerProcessorScheduler.cc.
References Thread::accountTimerTick(), Timer::deadlineInterrupt(), Machine::getTimer(), ProcessorBase::information(), Scheduler::instance(), and Scheduler::requestLoadAverageSample().
| void PerProcessorScheduler::unregisterWorkerWake | ( | SchedulerWorkerWake & | worker | ) |
Removes a worker wake registration after its worker has joined.
Definition at line 1607 of file PerProcessorScheduler.cc.
Referenced by Rtc::uninitialise().
Here is the caller graph for this function:
|
private |
Definition at line 509 of file PerProcessorScheduler.cc.
|
friend |
Definition at line 213 of file PerProcessorScheduler.h.
|
friend |
Definition at line 211 of file PerProcessorScheduler.h.
|
friend |
Definition at line 212 of file PerProcessorScheduler.h.
|
friend |
Definition at line 214 of file PerProcessorScheduler.h.
|
staticconstexprprivate |
Definition at line 318 of file PerProcessorScheduler.h.
|
staticconstexprprivate |
Definition at line 320 of file PerProcessorScheduler.h.
|
private |
Definition at line 306 of file PerProcessorScheduler.h.
|
private |
Definition at line 303 of file PerProcessorScheduler.h.
|
private |
Definition at line 302 of file PerProcessorScheduler.h.
|
private |
Definition at line 305 of file PerProcessorScheduler.h.
|
private |
Definition at line 304 of file PerProcessorScheduler.h.
|
private |
Definition at line 299 of file PerProcessorScheduler.h.
|
private |
Definition at line 291 of file PerProcessorScheduler.h.
|
private |
Definition at line 289 of file PerProcessorScheduler.h.
|
private |
Definition at line 288 of file PerProcessorScheduler.h.
|
private |
Definition at line 283 of file PerProcessorScheduler.h.
|
private |
Definition at line 325 of file PerProcessorScheduler.h.
|
private |
Definition at line 296 of file PerProcessorScheduler.h.
|
private |
Definition at line 300 of file PerProcessorScheduler.h.
|
private |
Definition at line 307 of file PerProcessorScheduler.h.
|
private |
Definition at line 290 of file PerProcessorScheduler.h.
|
private |
Definition at line 284 of file PerProcessorScheduler.h.
|
private |
Definition at line 282 of file PerProcessorScheduler.h.
|
private |
Definition at line 280 of file PerProcessorScheduler.h.
|
private |
Definition at line 279 of file PerProcessorScheduler.h.
|
private |
Definition at line 286 of file PerProcessorScheduler.h.
|
private |
Definition at line 311 of file PerProcessorScheduler.h.
|
private |
Definition at line 309 of file PerProcessorScheduler.h.
|
private |
Definition at line 312 of file PerProcessorScheduler.h.
|
private |
Definition at line 308 of file PerProcessorScheduler.h.
|
private |
Definition at line 324 of file PerProcessorScheduler.h.
|
private |
The current SchedulingAlgorithm
Definition at line 277 of file PerProcessorScheduler.h.
Referenced by addThread(), addThread(), idleUntilInterrupt(), initialise(), serviceIrqWorkDoorbell(), and servicePendingScheduling().
|
private |
Definition at line 301 of file PerProcessorScheduler.h.
|
private |
Definition at line 310 of file PerProcessorScheduler.h.
|
private |
Definition at line 298 of file PerProcessorScheduler.h.
|
private |
Definition at line 297 of file PerProcessorScheduler.h.
|
private |
Definition at line 326 of file PerProcessorScheduler.h.
|
private |
Definition at line 285 of file PerProcessorScheduler.h.
|
private |
Definition at line 292 of file PerProcessorScheduler.h.
|
private |
Definition at line 287 of file PerProcessorScheduler.h.
|
private |
Definition at line 293 of file PerProcessorScheduler.h.
|
private |
Definition at line 294 of file PerProcessorScheduler.h.
|
private |
Definition at line 295 of file PerProcessorScheduler.h.
|
private |
Definition at line 327 of file PerProcessorScheduler.h.