![]() |
SuperTinyKernel™ RTOS 1.05.3
Lightweight, high-performance, deterministic, bare-metal C++ RTOS for resource-constrained embedded systems. MIT Open Source License.
|
Namespace of STK package. More...
Namespaces | |
| namespace | hw |
| Hardware Abstraction Layer (HAL) for architecture-specific operations. | |
| namespace | util |
| Internal utility namespace containing data structure helpers (linked lists, etc.) used by the kernel implementation. Not part of the public user API. | |
| namespace | sync |
| Synchronization primitives for task coordination and resource protection. | |
| namespace | time |
| Time-related primitives. | |
| namespace | test |
| Namespace of the test inventory. | |
Classes | |
| class | PlatformArmCortexM |
| Concrete implementation of IPlatform driver for the Arm Cortex-M0, M3, M4, M7 processors. More... | |
| class | PlatformRiscV |
| Concrete implementation of IPlatform driver for the Risc-V processors. More... | |
| class | PlatformContext |
| Base platform context for all platform implementations. More... | |
| class | PlatformX86Win32 |
| Concrete implementation of IPlatform driver for the x86 Win32 platform. More... | |
| class | Kernel |
| Concrete implementation of IKernel. More... | |
| class | StackMemoryDef |
| Stack memory type definition. More... | |
| class | Stack |
| Stack descriptor. More... | |
| class | IStackMemory |
| Interface for a stack memory region. More... | |
| class | IWaitObject |
| Wait object. More... | |
| class | ITraceable |
| Traceable object. More... | |
| class | ISyncObject |
| Synchronization object. More... | |
| class | IMutex |
| Interface for mutex synchronization primitive. More... | |
| class | ITask |
| Interface for a user task. More... | |
| class | IKernelTask |
| Scheduling-strategy-facing interface for a kernel task slot. More... | |
| class | IPlatform |
| Interface for a platform driver. More... | |
| class | ITaskSwitchStrategy |
| Interface for a task switching strategy implementation. More... | |
| class | IKernel |
| Interface for the implementation of the kernel of the scheduler. It supports Soft and Hard Real-Time modes. More... | |
| class | IKernelService |
| Interface for the kernel services exposed to the user processes during run-time when Kernel started scheduling the processes. More... | |
| class | Task |
| Partial implementation of the user task. More... | |
| class | TaskW |
| Partial implementation of the user task with a compile-time scheduling weight. Use when the kernel is configured with SwitchStrategySmoothWeightedRoundRobin. More... | |
| class | StackMemoryWrapper |
| Adapts an externally-owned stack memory array to the IStackMemory interface. More... | |
| class | SwitchStrategyEDF |
| Earliest Deadline First (EDF) scheduling strategy: always selects the runnable task with the least time remaining before its deadline expires. More... | |
| class | SwitchStrategyFixedPriority |
| Fixed-priority preemptive scheduling strategy with round-robin arbitration within each priority level. More... | |
| class | SwitchStrategyMonotonic |
| Monotonic scheduling strategy: Rate-Monotonic (RM) or Deadline-Monotonic (DM), selected at compile time by the _Type template parameter. More... | |
| class | SchedulabilityCheck |
| Utility class providing static methods for Worst-Case Response Time (WCRT) schedulability analysis of a monotonic HRT task set. More... | |
| class | SwitchStrategyRoundRobin |
| Round-Robin task-switching strategy: each runnable task receives one time slice (one tick interval) in turn before the kernel moves to the next task. More... | |
| class | SwitchStrategySmoothWeightedRoundRobin |
| Smooth Weighted Round-Robin (SWRR) task-switching strategy: distributes CPU time proportionally to per-task weights while avoiding execution bursts by spreading selections evenly over time. More... | |
Typedefs | |
| typedef PlatformArmCortexM | PlatformDefault |
| Default platform implementation. | |
| typedef uintptr_t | Word |
| Native processor word type. | |
| typedef Word | TId |
| typedef int32_t | Timeout |
| Timeout time (ticks). | |
| typedef int64_t | Ticks |
| Ticks value. | |
| typedef uint64_t | Cycles |
| Cycles value. | |
| typedef SwitchStrategyFixedPriority< 32 > | SwitchStrategyFP32 |
Shorthand alias for SwitchStrategyFixedPriority<32>: 32 priority levels (0..31), using a single 32-bit m_ready_bitmap for O(1) highest-priority lookup. | |
| typedef SwitchStrategyMonotonic< MSS_TYPE_RATE > | SwitchStrategyRM |
| Shorthand alias for SwitchStrategyMonotonic<MSS_TYPE_RATE>: Rate-Monotonic scheduling (shorter scheduling period -> higher priority). | |
| typedef SwitchStrategyMonotonic< MSS_TYPE_DEADLINE > | SwitchStrategyDM |
| Shorthand alias for SwitchStrategyMonotonic<MSS_TYPE_DEADLINE>: Deadline-Monotonic scheduling (shorter execution deadline -> higher priority). | |
| typedef SwitchStrategyRoundRobin | SwitchStrategyRR |
| Shorthand alias for SwitchStrategyRoundRobin. | |
| typedef SwitchStrategySmoothWeightedRoundRobin | SwitchStrategySWRR |
| Shorthand alias for SwitchStrategySmoothWeightedRoundRobin. | |
Enumerations | |
| enum | EAccessMode : int32_t { ACCESS_USER = 0 , ACCESS_PRIVILEGED } |
| Hardware access mode by the user task. More... | |
| enum | EKernelMode : uint8_t { KERNEL_STATIC = (1 << 0) , KERNEL_DYNAMIC = (1 << 1) , KERNEL_HRT = (1 << 2) , KERNEL_SYNC = (1 << 3) , KERNEL_TICKLESS = (1 << 4) } |
| Kernel operating mode. More... | |
| enum | EKernelPanicId : uint32_t { KERNEL_PANIC_NONE = 0 , KERNEL_PANIC_SPINLOCK_DEADLOCK = 1 , KERNEL_PANIC_STACK_CORRUPT = 2 , KERNEL_PANIC_ASSERT = 3 , KERNEL_PANIC_HRT_HARD_FAULT = 4 , KERNEL_PANIC_CPU_EXCEPTION = 5 , KERNEL_PANIC_CS_NESTING_OVERFLOW = 6 , KERNEL_PANIC_UNKNOWN_SVC = 7 , KERNEL_PANIC_BAD_STATE = 8 , KERNEL_PANIC_BAD_MODE = 9 } |
| Identifies the source of a kernel panic. More... | |
| enum | EStackType { STACK_USER_TASK = 0 , STACK_SLEEP_TRAP , STACK_EXIT_TRAP } |
| Stack type. More... | |
| enum | EConsts { PERIODICITY_MAX = 99000 , PERIODICITY_DEFAULT = 1000 , STACK_SIZE_MIN = 32 } |
| Constants. More... | |
| enum | ESystemTaskId { SYS_TASK_ID_SLEEP = 0xFFFFFFFF , SYS_TASK_ID_EXIT = 0xFFFFFFFE } |
| System task id. More... | |
| enum | ETraceEventId { TRACE_EVENT_UNKNOWN = 0 , TRACE_EVENT_SWITCH = 1000 + 1 , TRACE_EVENT_SLEEP = 1000 + 2 } |
| Trace event id for tracing tasks suspension and resume with debugging tools (SEGGER SysView and etc.). More... | |
| enum | EMonotonicSwitchStrategyType { MSS_TYPE_RATE , MSS_TYPE_DEADLINE } |
| Policy selector for SwitchStrategyMonotonic: determines the timing attribute used to assign fixed priorities to tasks at AddTask() time. More... | |
Functions | |
| Word | GetTls () |
| Get thread-local storage (TLS). | |
| void | SetTls (Word tp) |
| Set thread-local storage (TLS). | |
| static __stk_forceinline Cycles | ConvertTimeUsToClockCycles (Cycles clock_freq, Ticks time_us) |
| Convert time (microseconds) to core clock cycles. | |
| template<typename T> | |
| constexpr T | Min (T a, T b) noexcept |
| Compile-time minimum of two values. | |
| template<typename T> | |
| constexpr T | Max (T a, T b) noexcept |
| Compile-time maximum of two values. | |
| TId | GetTid () |
| Get task/thread Id of the calling task. | |
| int64_t | GetMsFromTicks (int64_t ticks, int32_t resolution) |
| Convert ticks to milliseconds. | |
| Ticks | GetTicksFromMs (int64_t ms, int32_t resolution) |
| Convert milliseconds to ticks. | |
| Ticks | GetTicks () |
| Get number of ticks elapsed since kernel start. | |
| int32_t | GetTickResolution () |
| Get number of microseconds in one tick. | |
| Ticks | GetTicksFromMs (int64_t ms) |
| Convert milliseconds to ticks using the current kernel tick resolution. | |
| static int64_t | GetTimeNowMs () |
| Get current time in milliseconds since kernel start. | |
| void | Sleep (uint32_t ticks) |
| Put calling process into a sleep state. | |
| static void | SleepMs (uint32_t ms) |
| Put calling process into a sleep state. | |
| void | SleepUntil (Ticks timestamp) |
| Put calling process into a sleep state until the specified timestamp. | |
| void | Yield () |
| Notify scheduler to switch to the next runnable task. | |
| void | Delay (uint32_t ticks) |
| Delay calling process by busy-waiting until the deadline expires. | |
| static void | DelayMs (uint32_t ms) |
| Delay calling process by busy-waiting until the deadline expires. | |
Variables | |
| const TId | TID_ISR = static_cast<TId>(~0) |
| Reserved task/thread id representing an ISR context. | |
| const TId | TID_NONE = static_cast<TId>(0) |
| Reserved task/thread id representing zero/none thread id. | |
| const Timeout | WAIT_INFINITE = INT32_MAX |
| Timeout value: block indefinitely until the synchronization object is signaled. | |
| const Timeout | NO_WAIT = 0 |
| Timeout value: return immediately if the synchronization object is not yet signaled (non-blocking poll). | |
Namespace of STK package.
| typedef uint64_t stk::Cycles |
Cycles value.
Definition at line 155 of file stk_common.h.
| typedef PlatformX86Win32 stk::PlatformDefault |
Default platform implementation.
Definition at line 52 of file stk_arch_arm-cortex-m.h.
Shorthand alias for SwitchStrategyMonotonic<MSS_TYPE_DEADLINE>: Deadline-Monotonic scheduling (shorter execution deadline -> higher priority).
Definition at line 505 of file stk_strategy_monotonic.h.
| typedef SwitchStrategyFixedPriority<32> stk::SwitchStrategyFP32 |
Shorthand alias for SwitchStrategyFixedPriority<32>: 32 priority levels (0..31), using a single 32-bit m_ready_bitmap for O(1) highest-priority lookup.
Definition at line 355 of file stk_strategy_fpriority.h.
Shorthand alias for SwitchStrategyMonotonic<MSS_TYPE_RATE>: Rate-Monotonic scheduling (shorter scheduling period -> higher priority).
Definition at line 498 of file stk_strategy_monotonic.h.
Shorthand alias for SwitchStrategyRoundRobin.
Definition at line 246 of file stk_strategy_rrobin.h.
Shorthand alias for SwitchStrategySmoothWeightedRoundRobin.
Definition at line 280 of file stk_strategy_swrrobin.h.
| typedef int64_t stk::Ticks |
Ticks value.
Definition at line 150 of file stk_common.h.
Definition at line 117 of file stk_common.h.
| typedef int32_t stk::Timeout |
Timeout time (ticks).
Definition at line 133 of file stk_common.h.
| typedef uintptr_t stk::Word |
Native processor word type.
Represents natural data width of the CPU (matching uintptr_t). Used for stack allocation, register storage, pointer value storage, and memory alignment to ensure atomic access, optimal performance, and hardware compatibility.
Definition at line 112 of file stk_common.h.
| enum stk::EAccessMode : int32_t |
Hardware access mode by the user task.
Definition at line 30 of file stk_common.h.
| enum stk::EConsts |
Constants.
| Enumerator | |
|---|---|
| PERIODICITY_MAX | Maximum periodicity (microseconds), 99 milliseconds (note: this value is the highest working on a real hardware and QEMU). |
| PERIODICITY_DEFAULT | Default periodicity (microseconds), 1 millisecond. |
| STACK_SIZE_MIN | Minimum stack size in elements of Word. Used as a lower bound for all stack allocations (user task, sleep trap, exit trap). See: StackMemoryDef, StackMemoryWrapper. |
Definition at line 79 of file stk_common.h.
| enum stk::EKernelMode : uint8_t |
Kernel operating mode.
Definition at line 39 of file stk_common.h.
| enum stk::EKernelPanicId : uint32_t |
Identifies the source of a kernel panic.
| Enumerator | |
|---|---|
| KERNEL_PANIC_NONE | Panic is absent (no fault). |
| KERNEL_PANIC_SPINLOCK_DEADLOCK | Spin-lock timeout expired: lock owner never released. |
| KERNEL_PANIC_STACK_CORRUPT | Stack integrity check failed. |
| KERNEL_PANIC_ASSERT | Internal assertion failed (maps from STK_ASSERT). |
| KERNEL_PANIC_HRT_HARD_FAULT | Kernel running in KERNEL_HRT mode reported deadline failure of the task. |
| KERNEL_PANIC_CPU_EXCEPTION | CPU reported an exception and halted execution. |
| KERNEL_PANIC_CS_NESTING_OVERFLOW | Critical section nesting limit exceeded: violation of STK_CRITICAL_SECTION_NESTINGS_MAX. |
| KERNEL_PANIC_UNKNOWN_SVC | Unknown service command received by SVC handler. |
| KERNEL_PANIC_BAD_STATE | Kernel entered unexpected (bad) state. |
| KERNEL_PANIC_BAD_MODE | Kernel is in bad/unsupported mode for the current operation. |
Definition at line 51 of file stk_common.h.
Policy selector for SwitchStrategyMonotonic: determines the timing attribute used to assign fixed priorities to tasks at AddTask() time.
Definition at line 28 of file stk_strategy_monotonic.h.
| enum stk::EStackType |
Stack type.
| Enumerator | |
|---|---|
| STACK_USER_TASK | Stack of the user task. |
| STACK_SLEEP_TRAP | Stack of the Sleep trap. |
| STACK_EXIT_TRAP | Stack of the Exit trap. |
Definition at line 69 of file stk_common.h.
| enum stk::ESystemTaskId |
System task id.
| Enumerator | |
|---|---|
| SYS_TASK_ID_SLEEP | Sleep trap. |
| SYS_TASK_ID_EXIT | Exit trap. |
Definition at line 89 of file stk_common.h.
| enum stk::ETraceEventId |
Trace event id for tracing tasks suspension and resume with debugging tools (SEGGER SysView and etc.).
| Enumerator | |
|---|---|
| TRACE_EVENT_UNKNOWN | |
| TRACE_EVENT_SWITCH | |
| TRACE_EVENT_SLEEP | |
Definition at line 98 of file stk_common.h.
|
static |
Convert time (microseconds) to core clock cycles.
| [in] | clock_freq | Clock frequency. |
| [in] | time_us | Time (microseconds). |
Definition at line 104 of file stk_arch_common.h.
References __stk_forceinline.
| void stk::Delay | ( | uint32_t | ticks | ) |
Delay calling process by busy-waiting until the deadline expires.
| [in] | ticks | Delay time (ticks). |
Definition at line 342 of file stk_helper.h.
References __stk_forceinline, stk::IKernelService::Delay(), and stk::IKernelService::GetInstance().
Referenced by DelayMs(), stk::test::chain::TestTask< _AccessMode >::Run(), stk::test::condvar::NotifyOneOrderTask< _AccessMode >::Run(), stk::test::condvar::NotifyOneWakesTask< _AccessMode >::Run(), stk::test::condvar::PredicateLoopTask< _AccessMode >::Run(), stk::test::event::AutoResetBasicTask< _AccessMode >::Run(), stk::test::event::PulseAutoResetTask< _AccessMode >::Run(), stk::test::eventflags::MultiWaiterAllTask< _AccessMode >::Run(), stk::test::eventflags::SetWaitAnyTask< _AccessMode >::Run(), stk::test::hrt::TestTask< _AccessMode >::Run(), stk::test::mutex::BasicLockUnlockTask< _AccessMode >::Run(), stk::test::mutex::InterTaskCoordinationTask< _AccessMode >::Run(), stk::test::mutex::StressTestTask< _AccessMode >::Run(), stk::test::rwmutex::ReaderWriterAlternationTask< _AccessMode >::Run(), stk::test::rwmutex::StressTestTask< _AccessMode >::Run(), stk::test::rwmutex::WriterExclusivityTask< _AccessMode >::Run(), stk::test::rwmutex::WriterStarvationTask< _AccessMode >::Run(), stk::test::semaphore::BasicSignalWaitTask< _AccessMode >::Run(), stk::test::semaphore::BoundedBufferTask< _AccessMode >::Run(), stk::test::semaphore::FIFOOrderTask< _AccessMode >::Run(), stk::test::semaphore::StressTestTask< _AccessMode >::Run(), stk::test::spinlock::MutualExclusionTask< _AccessMode >::Run(), stk::test::spinlock::UnlockTransferTask< _AccessMode >::Run(), stk::test::switch_::TestTask< _AccessMode >::Run(), stk_delay(), stk::test::TEST(), and stk::test::TEST().
|
inlinestatic |
Delay calling process by busy-waiting until the deadline expires.
| [in] | ms | Delay time (milliseconds). |
Definition at line 353 of file stk_helper.h.
References Delay(), and GetTicksFromMs().
Referenced by stk_delay_ms(), and stk::test::TEST().
| int64_t stk::GetMsFromTicks | ( | int64_t | ticks, |
| int32_t | resolution ) |
Convert ticks to milliseconds.
| [in] | ticks | Tick count to convert. |
| [in] | resolution | Microseconds per tick, as returned by IKernelService::GetTickResolution(). |
Definition at line 228 of file stk_helper.h.
References __stk_forceinline.
Referenced by stk::test::TEST().
| int32_t stk::GetTickResolution | ( | ) |
Get number of microseconds in one tick.
Definition at line 258 of file stk_helper.h.
References __stk_forceinline, stk::IKernelService::GetInstance(), and stk::IKernelService::GetTickResolution().
Referenced by GetTicksFromMs(), stk_tick_resolution(), stk_ticks_from_ms(), and stk::test::TEST().
| Ticks stk::GetTicks | ( | ) |
Get number of ticks elapsed since kernel start.
Definition at line 248 of file stk_helper.h.
References __stk_forceinline, stk::IKernelService::GetInstance(), and stk::IKernelService::GetTicks().
Referenced by stk::time::TimerHost::Timer::GetRemainingTime(), stk::time::PeriodicTrigger::Poll(), stk::time::TimerHost::Reset(), stk::time::PeriodicTrigger::Restart(), stk::time::TimerHost::Restart(), stk::time::TimerHost::Start(), stk::time::TimerHost::StartOrReset(), stk_ticks(), stk::test::TEST(), stk::test::TEST(), stk::test::TEST(), stk::test::TEST(), stk::test::TestTaskSleep(), stk::time::TimerHost::UpdateTime(), and stk::sync::EventFlags::Wait().
| Ticks stk::GetTicksFromMs | ( | int64_t | ms | ) |
Convert milliseconds to ticks using the current kernel tick resolution.
| [in] | ms | Time in milliseconds to convert. |
Definition at line 270 of file stk_helper.h.
References __stk_forceinline, GetTickResolution(), and GetTicksFromMs().
| Ticks stk::GetTicksFromMs | ( | int64_t | ms, |
| int32_t | resolution ) |
Convert milliseconds to ticks.
| [in] | ms | Time in milliseconds to convert. |
| [in] | resolution | Microseconds per tick, as returned by IKernelService::GetTickResolution(). |
Definition at line 239 of file stk_helper.h.
References __stk_forceinline.
Referenced by DelayMs(), GetTicksFromMs(), stk::test::stk::SetTimeNowMsec(), and SleepMs().
| TId stk::GetTid | ( | ) |
Get task/thread Id of the calling task.
Definition at line 217 of file stk_helper.h.
References __stk_forceinline, stk::IKernelService::GetInstance(), and stk::IKernelService::GetTid().
Referenced by stk::sync::SpinLock::Lock(), stk_tid(), stk::test::TEST(), stk::test::TEST(), stk::test::TEST(), stk::test::Test_SyncWait(), stk::sync::SpinLock::TryLock(), stk::sync::Mutex::Unlock(), and stk::sync::SpinLock::Unlock().
|
inlinestatic |
Get current time in milliseconds since kernel start.
Definition at line 281 of file stk_helper.h.
References stk::IKernelService::GetInstance(), stk::IKernelService::GetTickResolution(), and stk::IKernelService::GetTicks().
Referenced by stk::test::timer::TestTimer::OnExpired(), stk::test::chain::TestTask< _AccessMode >::Run(), stk::test::condvar::NoWaitTimeoutTask< _AccessMode >::Run(), stk::test::condvar::TimeoutExpiresTask< _AccessMode >::Run(), stk::test::event::TimeoutWaitTask< _AccessMode >::Run(), stk::test::event::TryWaitTask< _AccessMode >::Run(), stk::test::eventflags::TimeoutTask< _AccessMode >::Run(), stk::test::eventflags::TryWaitTask< _AccessMode >::Run(), stk::test::hrt::TestTask< _AccessMode >::Run(), stk::test::mutex::TimedLockTask< _AccessMode >::Run(), stk::test::mutex::TryLockTask< _AccessMode >::Run(), stk::test::pipe::TimeoutTask< _AccessMode >::Run(), stk::test::rwmutex::ReadUnlockWakesWriterTask< _AccessMode >::Run(), stk::test::rwmutex::TimedReadLockTask< _AccessMode >::Run(), stk::test::rwmutex::TimedWriteLockTask< _AccessMode >::Run(), stk::test::rwmutex::TryReadLockWhileWriterTask< _AccessMode >::Run(), stk::test::rwmutex::WriterStarvationTask< _AccessMode >::Run(), stk::test::semaphore::TimeoutWaitTask< _AccessMode >::Run(), stk::test::semaphore::ZeroTimeoutTask< _AccessMode >::Run(), stk::test::sleep::TestTask< _AccessMode >::Run(), stk::test::spinlock::TryLockContendedTask< _AccessMode >::Run(), stk::test::timer::OneShotTimerTask< _AccessMode >::Run(), stk::test::timer::ResetPeriodicTimerTask< _AccessMode >::Run(), stk::test::timer::RestartTimerTask< _AccessMode >::Run(), stk::test::timer::StartOrResetTask< _AccessMode >::Run(), stk_time_now_ms(), stk::test::TEST(), and stk::test::TEST().
| uintptr_t stk::hw::GetTls | ( | ) |
Get thread-local storage (TLS).
Definition at line 58 of file stk_arch_arm-cortex-m.h.
References __stk_forceinline.
|
constexprnoexcept |
Compile-time maximum of two values.
Definition at line 536 of file stk_defs.h.
Referenced by stk::test::TEST(), and stk::Kernel< TMode, TSize, TStrategy, TPlatform >::UpdateTaskState().
|
constexprnoexcept |
Compile-time minimum of two values.
Definition at line 530 of file stk_defs.h.
Referenced by stk::test::TEST(), and stk::Kernel< TMode, TSize, TStrategy, TPlatform >::UpdateTaskState().
| void stk::hw::SetTls | ( | Word | tp | ) |
Set thread-local storage (TLS).
| [in] | tp | TLS value. |
| [in] | tp | TLS value. |
Definition at line 69 of file stk_arch_arm-cortex-m.h.
References __stk_forceinline.
| void stk::Sleep | ( | uint32_t | ticks | ) |
Put calling process into a sleep state.
| [in] | ticks | Sleep time (ticks). |
Definition at line 298 of file stk_helper.h.
References __stk_forceinline, stk::IKernelService::GetInstance(), and stk::IKernelService::Sleep().
Referenced by stk::test::condvar::MutexReacquiredTask< _AccessMode >::Run(), stk::test::condvar::NotifyAllWakesTask< _AccessMode >::Run(), stk::test::condvar::NotifyOneOrderTask< _AccessMode >::Run(), stk::test::condvar::NotifyOneWakesTask< _AccessMode >::Run(), stk::test::condvar::NoWaitTimeoutTask< _AccessMode >::Run(), stk::test::condvar::PredicateLoopTask< _AccessMode >::Run(), stk::test::condvar::StressTestTask< _AccessMode >::Run(), stk::test::condvar::TimeoutExpiresTask< _AccessMode >::Run(), stk::test::event::AutoResetBasicTask< _AccessMode >::Run(), stk::test::event::InitialStateTask< _AccessMode >::Run(), stk::test::event::ManualResetBasicTask< _AccessMode >::Run(), stk::test::event::PulseAutoResetTask< _AccessMode >::Run(), stk::test::event::PulseManualResetTask< _AccessMode >::Run(), stk::test::event::ResetManualTask< _AccessMode >::Run(), stk::test::event::TimeoutWaitTask< _AccessMode >::Run(), stk::test::event::TryWaitTask< _AccessMode >::Run(), stk::test::eventflags::ClearTask< _AccessMode >::Run(), stk::test::eventflags::GetTask< _AccessMode >::Run(), stk::test::eventflags::InitialFlagsTask< _AccessMode >::Run(), stk::test::eventflags::MultiWaiterAllTask< _AccessMode >::Run(), stk::test::eventflags::MultiWaiterAnyTask< _AccessMode >::Run(), stk::test::eventflags::NoClearTask< _AccessMode >::Run(), stk::test::eventflags::SetWaitAllTask< _AccessMode >::Run(), stk::test::eventflags::SetWaitAnyTask< _AccessMode >::Run(), stk::test::eventflags::TimeoutTask< _AccessMode >::Run(), stk::test::eventflags::TryWaitTask< _AccessMode >::Run(), stk::test::mutex::BasicLockUnlockTask< _AccessMode >::Run(), stk::test::mutex::FIFOOrderTask< _AccessMode >::Run(), stk::test::mutex::InterTaskCoordinationTask< _AccessMode >::Run(), stk::test::mutex::RecursiveDepthTask< _AccessMode >::Run(), stk::test::mutex::RecursiveLockTask< _AccessMode >::Run(), stk::test::mutex::StressTestTask< _AccessMode >::Run(), stk::test::mutex::TimedLockTask< _AccessMode >::Run(), stk::test::mutex::TryLockTask< _AccessMode >::Run(), stk::test::pipe::BasicWriteReadTask< _AccessMode >::Run(), stk::test::pipe::BulkWriteReadTask< _AccessMode >::Run(), stk::test::pipe::GetSizeIsEmptyTask< _AccessMode >::Run(), stk::test::pipe::MultiProducerConsumerTask< _AccessMode >::Run(), stk::test::pipe::ReadBlocksWhenEmptyTask< _AccessMode >::Run(), stk::test::pipe::StressTestTask< _AccessMode >::Run(), stk::test::pipe::TimeoutTask< _AccessMode >::Run(), stk::test::pipe::WriteBlocksWhenFullTask< _AccessMode >::Run(), stk::test::rwmutex::ConcurrentReadersTask< _AccessMode >::Run(), stk::test::rwmutex::ReaderWriterAlternationTask< _AccessMode >::Run(), stk::test::rwmutex::ReadUnlockWakesWriterTask< _AccessMode >::Run(), stk::test::rwmutex::StressTestTask< _AccessMode >::Run(), stk::test::rwmutex::TimedReadLockTask< _AccessMode >::Run(), stk::test::rwmutex::TimedWriteLockTask< _AccessMode >::Run(), stk::test::rwmutex::TryReadLockWhileWriterTask< _AccessMode >::Run(), stk::test::rwmutex::WriterExclusivityTask< _AccessMode >::Run(), stk::test::rwmutex::WriterPriorityTask< _AccessMode >::Run(), stk::test::rwmutex::WriterStarvationTask< _AccessMode >::Run(), stk::test::semaphore::BasicSignalWaitTask< _AccessMode >::Run(), stk::test::semaphore::BoundedBufferTask< _AccessMode >::Run(), stk::test::semaphore::FIFOOrderTask< _AccessMode >::Run(), stk::test::semaphore::InitialCountTask< _AccessMode >::Run(), stk::test::semaphore::SignalBeforeWaitTask< _AccessMode >::Run(), stk::test::semaphore::StressTestTask< _AccessMode >::Run(), stk::test::semaphore::TimeoutWaitTask< _AccessMode >::Run(), stk::test::semaphore::ZeroTimeoutTask< _AccessMode >::Run(), stk::test::sleep::TestTask< _AccessMode >::Run(), stk::test::spinlock::MutualExclusionTask< _AccessMode >::Run(), stk::test::spinlock::RecursiveLockTask< _AccessMode >::Run(), stk::test::spinlock::RecursiveTryLockTask< _AccessMode >::Run(), stk::test::spinlock::StressTestTask< _AccessMode >::Run(), stk::test::spinlock::TryLockContendedTask< _AccessMode >::Run(), stk::test::spinlock::TryLockFreeTask< _AccessMode >::Run(), stk::test::spinlock::UnlockTransferTask< _AccessMode >::Run(), stk::test::spinlock::YieldUnderContentionTask< _AccessMode >::Run(), stk::test::timer::MultipleTimersTask< _AccessMode >::Run(), stk::test::timer::OneShotTimerTask< _AccessMode >::Run(), stk::test::timer::PeriodicTimerTask< _AccessMode >::Run(), stk::test::timer::ResetPeriodicTimerTask< _AccessMode >::Run(), stk::test::timer::RestartTimerTask< _AccessMode >::Run(), stk::test::timer::SetPeriodTask< _AccessMode >::Run(), stk::test::timer::StartOrResetTask< _AccessMode >::Run(), stk::test::timer::StopTimerTask< _AccessMode >::Run(), stk::test::timer::StressTestTask< _AccessMode >::Run(), SleepMs(), stk_sleep(), stk::test::TEST(), stk::test::TEST(), stk::test::TEST(), stk::test::TEST(), stk::test::TEST(), and stk::test::TestTaskSleep().
|
inlinestatic |
Put calling process into a sleep state.
| [in] | ms | Sleep time (milliseconds). |
Definition at line 311 of file stk_helper.h.
References GetTicksFromMs(), and Sleep().
Referenced by stk_sleep_ms(), and stk::test::TEST().
| void stk::SleepUntil | ( | Ticks | timestamp | ) |
Put calling process into a sleep state until the specified timestamp.
| [in] | timestamp | Absolute timestamp (ticks). |
Definition at line 322 of file stk_helper.h.
References __stk_forceinline, stk::IKernelService::GetInstance(), and stk::IKernelService::SleepUntil().
Referenced by stk_sleep_until(), stk::test::TEST(), stk::test::TEST(), stk::test::TEST(), and stk::test::TestTaskSleep().
| void stk::Yield | ( | ) |
Notify scheduler to switch to the next runnable task.
Definition at line 331 of file stk_helper.h.
References __stk_forceinline, stk::IKernelService::GetInstance(), and stk::IKernelService::SwitchToNext().
Referenced by stk::test::EDFDynamicSchedulingContext::Process(), stk::test::hrt::TestTask< _AccessMode >::Run(), stk::test::mutex::BasicLockUnlockTask< _AccessMode >::Run(), stk::test::rwmutex::ReadUnlockWakesWriterTask< _AccessMode >::Run(), stk::test::rwmutex::TimedReadLockTask< _AccessMode >::Run(), stk::test::rwmutex::TimedWriteLockTask< _AccessMode >::Run(), stk::test::rwmutex::TryReadLockWhileWriterTask< _AccessMode >::Run(), stk::test::rwmutex::WriterExclusivityTask< _AccessMode >::Run(), stk::test::rwmutex::WriterPriorityTask< _AccessMode >::Run(), stk::test::spinlock::MutualExclusionTask< _AccessMode >::Run(), stk::test::spinlock::RecursiveTryLockTask< _AccessMode >::Run(), stk::test::spinlock::TryLockContendedTask< _AccessMode >::Run(), stk::test::spinlock::TryLockFreeTask< _AccessMode >::Run(), stk::test::timer::PeriodicTimerTask< _AccessMode >::Run(), stk::test::timer::StartOrResetTask< _AccessMode >::Run(), stk_yield(), stk::test::TEST(), stk::test::TEST(), stk::test::TEST(), and stk::test::TEST().
| const Timeout stk::NO_WAIT = 0 |
Timeout value: return immediately if the synchronization object is not yet signaled (non-blocking poll).
Definition at line 145 of file stk_common.h.
Referenced by stk::time::TimerHost::ProcessCommands(), stk::time::TimerHost::PushCommand(), stk::test::condvar::NoWaitTimeoutTask< _AccessMode >::Run(), stk::test::semaphore::ZeroTimeoutTask< _AccessMode >::Run(), stk::sync::Mutex::TimedLock(), stk::sync::Mutex::TryLock(), stk::sync::RWMutex::TryLock(), stk::sync::Pipe< Timer *, 32 >::TryRead(), stk::sync::Pipe< Timer *, 32 >::TryReadBulk(), stk::sync::RWMutex::TryReadLock(), stk::sync::EventFlags::TryWait(), stk::sync::Semaphore::TryWait(), stk::sync::Pipe< Timer *, 32 >::TryWrite(), stk::sync::Pipe< Timer *, 32 >::TryWriteBulk(), stk::time::TimerHost::UpdateTime(), stk::sync::ConditionVariable::Wait(), stk::sync::Event::Wait(), stk::sync::EventFlags::Wait(), and stk::sync::Semaphore::Wait().
Reserved task/thread id representing an ISR context.
Definition at line 123 of file stk_common.h.
Reserved task/thread id representing zero/none thread id.
Definition at line 128 of file stk_common.h.
Referenced by stk::sync::SpinLock::MakeLocked(), stk::sync::Mutex::Mutex(), stk::sync::SpinLock::SpinLock(), stk::sync::Mutex::TimedLock(), stk::sync::Mutex::Unlock(), stk::sync::SpinLock::Unlock(), and stk::sync::SpinLock::~SpinLock().
| const Timeout stk::WAIT_INFINITE = INT32_MAX |
Timeout value: block indefinitely until the synchronization object is signaled.
Definition at line 139 of file stk_common.h.
Referenced by stk::sync::Mutex::Lock(), stk::sync::RWMutex::Lock(), stk::Kernel< TMode, TSize, TStrategy, TPlatform >::OnTaskWait(), stk::time::TimerHost::ProcessCommands(), stk::sync::Pipe< Timer *, 32 >::Read(), stk::sync::Pipe< Timer *, 32 >::ReadBulk(), stk::sync::RWMutex::ReadLock(), stk::time::TimerHost::Restart(), stk::Kernel< TMode, TSize, TStrategy, TPlatform >::KernelTask::ScheduleRemoval(), stk::sync::RWMutex::ScopedTimedLock::ScopedTimedLock(), stk::sync::RWMutex::ScopedTimedReadMutex::ScopedTimedReadMutex(), stk::time::TimerHost::SetPeriod(), stk::time::TimerHost::Start(), stk::time::TimerHost::StartOrReset(), stk::Kernel< TMode, TSize, TStrategy, TPlatform >::KernelTask::WaitObject::Tick(), stk::time::TimerHost::UpdateTime(), stk::sync::EventFlags::Wait(), stk::sync::Pipe< Timer *, 32 >::Write(), and stk::sync::Pipe< Timer *, 32 >::WriteBulk().