SuperTinyKernel™ RTOS 1.05.3
Lightweight, high-performance, deterministic, bare-metal C++ RTOS for resource-constrained embedded systems. MIT Open Source License.
Loading...
Searching...
No Matches
stk_common.h File Reference

Contains interface definitions of the library. More...

#include "stk_defs.h"
#include "stk_linked_list.h"
Include dependency graph for stk_common.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  stk::StackMemoryDef< _StackSize >
 Stack memory type definition. More...
class  stk::Stack
 Stack descriptor. More...
class  stk::IStackMemory
 Interface for a stack memory region. More...
class  stk::IWaitObject
 Wait object. More...
class  stk::ITraceable
 Traceable object. More...
class  stk::ISyncObject
 Synchronization object. More...
class  stk::IMutex
 Interface for mutex synchronization primitive. More...
class  stk::IMutex::ScopedLock
 Locks bound mutex within a scope of execution. Ensures the mutex is always unlocked when leaving the scope, even when exceptions are thrown. More...
class  stk::ITask
 Interface for a user task. More...
class  stk::IKernelTask
 Scheduling-strategy-facing interface for a kernel task slot. More...
class  stk::IPlatform
 Interface for a platform driver. More...
class  stk::IPlatform::IEventHandler
 Interface for a back-end event handler. More...
class  stk::IPlatform::IEventOverrider
 Interface for a platform event overrider. More...
class  stk::ITaskSwitchStrategy
 Interface for a task switching strategy implementation. More...
class  stk::IKernel
 Interface for the implementation of the kernel of the scheduler. It supports Soft and Hard Real-Time modes. More...
class  stk::IKernelService
 Interface for the kernel services exposed to the user processes during run-time when Kernel started scheduling the processes. More...

Namespaces

namespace  stk
 Namespace of STK package.

Typedefs

typedef uintptr_t stk::Word
 Native processor word type.
typedef Word stk::TId
typedef int32_t stk::Timeout
 Timeout time (ticks).
typedef int64_t stk::Ticks
 Ticks value.
typedef uint64_t stk::Cycles
 Cycles value.

Enumerations

enum  stk::EAccessMode : int32_t {
  stk::ACCESS_USER = 0 ,
  stk::ACCESS_PRIVILEGED
}
 Hardware access mode by the user task. More...
enum  stk::EKernelMode : uint8_t {
  stk::KERNEL_STATIC = (1 << 0) ,
  stk::KERNEL_DYNAMIC = (1 << 1) ,
  stk::KERNEL_HRT = (1 << 2) ,
  stk::KERNEL_SYNC = (1 << 3) ,
  stk::KERNEL_TICKLESS = (1 << 4)
}
 Kernel operating mode. More...
enum  stk::EKernelPanicId : uint32_t {
  stk::KERNEL_PANIC_NONE = 0 ,
  stk::KERNEL_PANIC_SPINLOCK_DEADLOCK = 1 ,
  stk::KERNEL_PANIC_STACK_CORRUPT = 2 ,
  stk::KERNEL_PANIC_ASSERT = 3 ,
  stk::KERNEL_PANIC_HRT_HARD_FAULT = 4 ,
  stk::KERNEL_PANIC_CPU_EXCEPTION = 5 ,
  stk::KERNEL_PANIC_CS_NESTING_OVERFLOW = 6 ,
  stk::KERNEL_PANIC_UNKNOWN_SVC = 7 ,
  stk::KERNEL_PANIC_BAD_STATE = 8 ,
  stk::KERNEL_PANIC_BAD_MODE = 9
}
 Identifies the source of a kernel panic. More...
enum  stk::EStackType {
  stk::STACK_USER_TASK = 0 ,
  stk::STACK_SLEEP_TRAP ,
  stk::STACK_EXIT_TRAP
}
 Stack type. More...
enum  stk::EConsts {
  stk::PERIODICITY_MAX = 99000 ,
  stk::PERIODICITY_DEFAULT = 1000 ,
  stk::STACK_SIZE_MIN = 32
}
 Constants. More...
enum  stk::ESystemTaskId {
  stk::SYS_TASK_ID_SLEEP = 0xFFFFFFFF ,
  stk::SYS_TASK_ID_EXIT = 0xFFFFFFFE
}
 System task id. More...
enum  stk::ETraceEventId {
  stk::TRACE_EVENT_UNKNOWN = 0 ,
  stk::TRACE_EVENT_SWITCH = 1000 + 1 ,
  stk::TRACE_EVENT_SLEEP = 1000 + 2
}
 Trace event id for tracing tasks suspension and resume with debugging tools (SEGGER SysView and etc.). More...

Variables

const TId stk::TID_ISR = static_cast<TId>(~0)
 Reserved task/thread id representing an ISR context.
const TId stk::TID_NONE = static_cast<TId>(0)
 Reserved task/thread id representing zero/none thread id.
const Timeout stk::WAIT_INFINITE = INT32_MAX
 Timeout value: block indefinitely until the synchronization object is signaled.
const Timeout stk::NO_WAIT = 0
 Timeout value: return immediately if the synchronization object is not yet signaled (non-blocking poll).

Detailed Description

Contains interface definitions of the library.

Definition in file stk_common.h.