65#ifndef CMSIS_PLUS_RTOS_OS_H_
66#define CMSIS_PLUS_RTOS_OS_H_
70#if defined(__cplusplus)
72#if defined(OS_USE_OS_APP_CONFIG_H)
73#include <cmsis-plus/os-app-config.h>
97#include <cmsis-plus/rtos/port/os-inlines.h>
101#pragma GCC diagnostic push
102#if defined(__clang__)
103#pragma clang diagnostic ignored "-Wc++98-compat"
121 extern thread::threads_list top_threads_list_;
132 thread::threads_list&
141#if defined(OS_HAS_INTERRUPTS_STACK) || defined(__DOXYGEN__)
158#pragma GCC diagnostic push
159#if defined(__clang__)
160#elif defined(__GNUC__)
161#pragma GCC diagnostic ignored "-Waggregate-return"
174 template <
typename T,
typename... Args>
175 inline typename std::enable_if<!std::is_array<T>::value,
176 std::shared_ptr<T>>::type
180 typedef typename std::remove_const<T>::type T_nc;
182 std::forward<Args> (args)...);
185#pragma GCC diagnostic pop
190#pragma GCC diagnostic pop
Standard allocator based on the RTOS system default memory manager.
class thread::stack * stack(void)
Get the interrupts stack.
std::enable_if<!std::is_array< T >::value, std::shared_ptr< T > >::type make_shared(Args &&... args)
Create an object that is owned by a shared_ptr and is allocated using the RTOS system allocator.
thread::threads_list & children_threads(thread *th)
Get the children threads.