#include <cmsis-plus/os-versions.h>
#include <cmsis-plus/os-app-config.h>
#include <cmsis-plus/rtos/port/os-decls.h>
#include <cmsis-plus/diag/trace.h>
#include <cstdint>
#include <cstddef>
#include <cerrno>
#include <cstring>
#include <cmsis-plus/rtos/internal/os-lists.h>
#include <cmsis-plus/rtos/os-types.h>
#include <cmsis-plus/estd/system_error>
Go to the source code of this file.
Classes | |
class | os::rtos::memory::allocator_stateless_default_resource< T > |
Standard allocator based on the RTOS system default memory manager. More... | |
class | os::rtos::internal::attributes_clocked |
Base class for attributes. More... | |
class | os::rtos::port::clock_highres |
class | os::rtos::port::clock_rtc |
class | os::rtos::port::clock_systick |
class | os::rtos::port::context |
class | os::rtos::port::interrupts::critical_section |
class | os::rtos::null_locker |
Null locker. More... | |
class | os::rtos::internal::object_named |
Base class for named objects. More... | |
class | os::rtos::internal::object_named_system |
Base class for named system objects. More... | |
class | os::rtos::port::thread |
class | os::rtos::port::interrupts::uncritical_section |
Namespaces | |
os | |
System namespace. | |
os::rtos | |
RTOS namespace. | |
os::rtos::flags | |
Generic flags namespace. | |
os::rtos::flags::mode | |
Flags modes. | |
os::rtos::internal | |
A namespace to group all internal implementation objects. | |
os::rtos::interrupts | |
Interrupts namespace. | |
os::rtos::memory | |
os::rtos::port | |
os::rtos::port::clock | |
os::rtos::port::interrupts | |
os::rtos::port::scheduler | |
os::rtos::port::this_thread | |
os::rtos::result | |
Values returned by RTOS functions. | |
os::rtos::scheduler | |
Scheduler namespace. | |
os::rtos::statistics | |
Statistics namespace. | |
os::rtos::this_thread | |
A convenience namespace to access the current running thread. | |
Macros | |
#define | os_assert_err(__e, __er) assert(__e) |
Assert or return an error. More... | |
#define | os_assert_throw(__e, __er) assert(__e) |
Assert or throw a system error exception. More... | |
#define | OS_BOOL_RTOS_SCHEDULER_PREEMPTIVE (true) |
#define | OS_INTEGER_RTOS_IDLE_STACK_SIZE_BYTES (os::rtos::port::stack::default_size_bytes) |
#define | OS_INTEGER_RTOS_MAIN_STACK_SIZE_BYTES (os::rtos::port::stack::default_size_bytes) |
#define | OS_INTEGER_SYSTICK_FREQUENCY_HZ (1000) |
Types | |
using | os::rtos::statistics::counter_t = uint64_t |
Type of variables holding context switches counters. More... | |
using | os::rtos::statistics::duration_t = uint64_t |
Type of variables holding durations in CPU cycles. More... | |
using | os::rtos::port::clock::duration_t = uint32_t |
Type of variables holding timer durations. More... | |
using | os::rtos::flags::mask_t = uint32_t |
Type of variables holding flags masks. More... | |
using | os::rtos::flags::mode_t = uint32_t |
Type of variables holding flags modes. More... | |
using | os::rtos::port::clock::offset_t = int64_t |
using | os::rtos::result_t = uint32_t |
Type of values returned by RTOS functions. More... | |
using | os::rtos::scheduler::state_t = port::scheduler::state_t |
Type of variables holding scheduler state codes. More... | |
using | os::rtos::interrupts::state_t = port::interrupts::state_t |
Type of variables holding interrupts statu codes. More... | |
using | os::rtos::port::clock::timestamp_t = uint64_t |
Type of variables holding time stamps. More... | |
Enumerations | |
enum | : result_t { os::rtos::result::ok = 0 } |
Custom enumerated values. More... | |
enum | : mask_t { os::rtos::flags::any = 0, os::rtos::flags::all = 0xFFFFFFFF } |
Flags sets with special meaning. More... | |
enum | : mode_t { os::rtos::flags::mode::all = 1, os::rtos::flags::mode::any = 2, os::rtos::flags::mode::clear = 4 } |
Bits used to specify the flags modes. More... | |
Functions | |
void | os::rtos::port::scheduler::_wait_for_interrupt (void) |
void | os::rtos::port::scheduler::greeting (void) |
bool | os::rtos::port::interrupts::in_handler_mode (void) |
Check if the CPU is in handler mode. More... | |
result_t | os::rtos::port::scheduler::initialize (void) |
Initialise the RTOS scheduler. More... | |
port::scheduler::state_t | os::rtos::port::scheduler::lock (void) |
Lock the scheduler. More... | |
port::scheduler::state_t | os::rtos::port::scheduler::locked (port::scheduler::state_t state) |
Lock/unlock the scheduler. More... | |
bool | os::rtos::port::scheduler::locked (void) |
Check if the scheduler is locked. More... | |
bool | os::rtos::port::scheduler::preemptive (void) |
Check if the scheduler is in preemptive mode. More... | |
bool | os::rtos::port::scheduler::preemptive (bool) |
Set the scheduler preemptive mode. More... | |
void | os::rtos::port::this_thread::prepare_suspend (void) |
void | os::rtos::port::scheduler::reschedule (void) |
void | os::rtos::port::scheduler::start (void) |
Start the RTOS scheduler. More... | |
stack::element_t * | os::rtos::port::scheduler::switch_stacks (stack::element_t *sp) |
port::scheduler::state_t | os::rtos::port::scheduler::unlock (void) |
Unlock the scheduler. More... | |
void | os::rtos::port::this_thread::yield (void) |
Yield the CPU to the next ready thread. More... | |
#define os_assert_err | ( | __e, | |
__er | |||
) | assert(__e) |
Assert or return an error.
As required by the ANSI standards, if NDEBUG
is defined, the assertion is disabled and if the condition is true, the given error code is returned.
Definition at line 1112 of file os-decls.h.
#define os_assert_throw | ( | __e, | |
__er | |||
) | assert(__e) |
Assert or throw a system error exception.
As required by the ANSI standards, if NDEBUG
is defined, the assertion is disabled and if the condition is true, a ssytem error exception is thrown (which is replaced by an abort()
if exceptions are disabled).
Definition at line 1127 of file os-decls.h.
#define OS_BOOL_RTOS_SCHEDULER_PREEMPTIVE (true) |
Definition at line 1152 of file os-decls.h.
#define OS_INTEGER_RTOS_IDLE_STACK_SIZE_BYTES (os::rtos::port::stack::default_size_bytes) |
Definition at line 1148 of file os-decls.h.
#define OS_INTEGER_RTOS_MAIN_STACK_SIZE_BYTES (os::rtos::port::stack::default_size_bytes) |
Definition at line 1144 of file os-decls.h.
#define OS_INTEGER_SYSTICK_FREQUENCY_HZ (1000) |
Definition at line 1138 of file os-decls.h.