Records in reverse chronological order.
os_thread_kill()
wrapper to thread::kill()
_fini()
_LITE_EXIT
redefinitionfile_descriptors_manager::used()
to tell how many file descriptors are usedtimegm()
, as the opposite of gmtime()
statvfs()
/fstatvfs()
tcdrain()
/tcflush()
/tcgetattr()
/tcsendbreak()
/ tcgetattr()
to POSIX aliases__ARM_FP
instead of __VFP_FP__
puts()
accepts empty stringupdate_for_slept_time()
tests
-> test
OS_INCLUDE_RTOS_CUSTOM_THREAD_USER_STORAGE
os_startup_initialize_hardware()
startup.c
-> startup.cpp
to be able to call C++ code, like the code to initialise the main stackOS_USE_RTOS_PORT_SYSTICK_CLOCK_SLEEP_FOR
-> OS_USE_RTOS_PORT_CLOCK_SYSTICK_WAIT_FOR
OS_USE_RTOS_PORT_REALTIME_CLOCK_SLEEP_FOR
-> OS_USE_RTOS_PORT_CLOCK_REALTIME_WAIT_FOR
os_rtos_idle_actions ()
cmsis-plus/drivers
-> cmsis-plus/driver
(singular)assert_failed()
(used by STM HAL)os_rtos_idle_enter_power_saving_mode_hook()
cmsis-plus/iso
-> cmsis-plus/estd
first-fit-top
for variable size allocationslifo
for one-time allocationsnull
to completely disable dynamic allocationsos_startup_initialize_free_store()
to initialise the application free storeOS_INTEGER_RTOS_DYNAMIC_MEMORY_SIZE_BYTES
is defined, optionally initialise a separate RTOS system allocation area and class specific pools_sbrk()
to acknowledge all available RAM is usedmalloc
& C++ new
/delete
to be thread safe and use the memory resource managernull_resource
malloc_resource
estd::pmr
namespaceestd::malloc()
is no longer needed and was removed, the standard malloc() is now thread safememory_resource
_create
-> _construct
, _destroy
-> _destruct
(add compatibility macros for the old names)new
/delete
operators to class object_named_system
, and use it as base for all system objectsrtos::make_shared<>
to use the system allocator (experimental, to be further refined with thread safe)thread::stack
class; initialise interrupts stack with pattern and check the bottom marker in the idle threados_irq_get_stack()
to the C APIos_terminate_goodbye()
to display memory usage statisticsos_initialize_args()
-> os_startup_initialize_args()
os_initialize_hardware_early()
-> os_startup_initialize_hardware_early()
os_initialize_hardware()
-> os_startup_initialize_hardware()
os_terminate()
as a portable function to terminate the application (implemented as reset on Cortex-M)block_pool
class to manage pools of memory blocksblock_pool_typed_allocated
and block_pool_typed_inclusive
templatesfirst_fit_top_allocated
and first_fit_top_inclusive
templateslifo_allocated
and lifo_inclusive
templatesos_startup_create_thread_idle()
as weakOS_INTEGER_RTOS_ALLOC_MUTEX_POOL_SIZE
and similar, to create pools of storage for system objectsthread_static<>
-> thread_inclusive<>
memory_pool_static<>
-> memory_pool_inclusive<>
message_queue_static<>
-> message_queue_inclusive<>
Experience proved that one of the above changes was trickier than planned: the rename of the os_startup_initialize_hardware()
, since without the renamed function the linker used the weak version of this function. To help developers, the weak definition was temporarily disabled, so if this function was not yet renamed in the application, the linker will complain.
internal::
named_object
-> internal::object_named
clocked_attributes
-> internal::attribute_clocked
Allocator
-> allocator_type
thread::priority_inherited()
, thread::priority_inherited(int)
thread::priority()
publicinternal_
OS_TRACE_RTOS_LISTS_CLOCKS
lock()
, unlock()
, locked(state_t)
os_irq_status_t
-> os_irq_state_t
interrupts::status_t
-> interrupts::state_t
clear()
no longer accept 0 mask; use flags::all
type()
, protocol()
, robustness()
class double_list_iterator
; use it in waiting_threads_list
timer::periodic_attributes
-> timer::attributes_periodic
internal::event_flags
; not public.recursive_attributes
-> attributes_recursive
recursive_initializer
-> initializer_recursive
normal_initializer
-> initializer_normal
os_mutex_attr_init_recursive()
-> os_mutex_attr_recursive_init()
scheduler::preemptive()
& scheduler::preemptive(bool)
OS_BOOL_RTOS_SCHEDULER_PREEMPTIVE
os_sched_is_preemptive()
& os_sched_set_preemptive()
.os_clock_get_hrclock()
inactive
, os_thread_state_inactive
sched_prio()
-> priority()
os_thread_get_priority()
, os_thread_set_priority()
thread::sched_state()
-> state()
os_thread_get_state()
.thread::flags_try_wait()
spellingsemaphore_binary
and semaphore_counting
)binary_attributes
initial_value
to os_semaphore_attr_binary_init()
and os_semaphore_binary_create()
attributes_binary
, attributes_counting
, initializer_binary
waiting
renamed suspended
os_thread_stack_get_bottom()
, os_thread_stack_get_top()
, os_thread_stack_check_bottom_magic()
, os_thread_stack_check_top_magic()
addedos_thread_stack_element_t
and os_thread_stack_allocation_element_t
added to C APIflags_clear()
, flags_get()
moved from thread
to this_thread
First fully functional reference implementation. The C and C++ APIs were completely refurbished and use all lower case letters.
Changes, in reverse chronological order:
OS_USE_SEMIHOSTING_SYSCALLS
OS_EXCLUDE_RTOS_IDLE_SLEEP
<cmsis-plus/os-app-config.h>
new_delete_allocator
os_