µOS++ IIIe Reference  v6.3.15
“Perfekt ist nicht gut genug”
The third edition of µOS++, a POSIX inspired open source system, written in C++.
os-decls.h File Reference
#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...
 

Macro Definition Documentation

◆ os_assert_err

#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.

◆ os_assert_throw

#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.

◆ OS_BOOL_RTOS_SCHEDULER_PREEMPTIVE

#define OS_BOOL_RTOS_SCHEDULER_PREEMPTIVE   (true)

Definition at line 1152 of file os-decls.h.

◆ OS_INTEGER_RTOS_IDLE_STACK_SIZE_BYTES

#define OS_INTEGER_RTOS_IDLE_STACK_SIZE_BYTES   (os::rtos::port::stack::default_size_bytes)

Definition at line 1148 of file os-decls.h.

◆ OS_INTEGER_RTOS_MAIN_STACK_SIZE_BYTES

#define OS_INTEGER_RTOS_MAIN_STACK_SIZE_BYTES   (os::rtos::port::stack::default_size_bytes)

Definition at line 1144 of file os-decls.h.

◆ OS_INTEGER_SYSTICK_FREQUENCY_HZ

#define OS_INTEGER_SYSTICK_FREQUENCY_HZ   (1000)

Definition at line 1138 of file os-decls.h.