µOS++ IIIe Reference 7.0.0
The third edition of µOS++, a POSIX inspired open source framework, written in C++
Loading...
Searching...
No Matches
os-c-decls.h
Go to the documentation of this file.
1/*
2 * This file is part of the µOS++ project (https://micro-os-plus.github.io/).
3 * Copyright (c) 2016-2025 Liviu Ionescu. All rights reserved.
4 *
5 * Permission to use, copy, modify, and/or distribute this software
6 * for any purpose is hereby granted, under the terms of the MIT license.
7 *
8 * If a copy of the license was not distributed with this file, it can
9 * be obtained from https://opensource.org/licenses/mit.
10 */
11
12/*
13 * The structures declared in this file are used both in the C API
14 * and in the legacy CMSIS API.
15 *
16 * Since there is no method to automatically sync them with the C++
17 * definitions, they must be manually adjusted to match them, otherwise
18 * the validation checks in os-c-wrapper.cpp will fail.
19 */
20
21#ifndef CMSIS_PLUS_RTOS_OS_C_DECLS_H_
22#define CMSIS_PLUS_RTOS_OS_C_DECLS_H_
23
24// ----------------------------------------------------------------------------
25
27
28#if defined(OS_USE_OS_APP_CONFIG_H)
29#include <cmsis-plus/os-app-config.h>
30#endif
31
32#include <cmsis-plus/rtos/port/os-decls.h>
33
34#include <stdint.h>
35#include <stddef.h>
36#include <stdbool.h>
37
38// ----------------------------------------------------------------------------
39
40#pragma GCC diagnostic push
41#if defined(__clang__)
42#pragma clang diagnostic ignored "-Wdocumentation-unknown-command"
43#endif
44
45// ----------------------------------------------------------------------------
46
47#ifdef __cplusplus
48extern "C"
49{
50#endif
51
52 // ==========================================================================
53
55 {
56 void* prev;
57 void* next;
59
61
63 {
66
68 {
70 void* thread;
72
74 {
77
94 typedef uint32_t os_result_t;
95
107 typedef uint32_t os_flags_mode_t;
108
120 typedef uint32_t os_flags_mask_t;
121
127 enum
128 {
132 };
133
137#define os_flags_any 0
138
142#define os_flags_all 0xFFFFFFFF
143
144 // --------------------------------------------------------------------------
145
156 typedef os_port_scheduler_state_t os_sched_state_t;
157
170 typedef os_port_irq_state_t os_irq_state_t;
171
172 // --------------------------------------------------------------------------
173
174 // Define clock types based on port definitions.
175
185 typedef os_port_clock_timestamp_t os_clock_timestamp_t;
186
196 typedef os_port_clock_duration_t os_clock_duration_t;
197
208 typedef os_port_clock_offset_t os_clock_offset_t;
209
210 // --------------------------------------------------------------------------
211
222 typedef void* os_iterator_t;
223
224 // --------------------------------------------------------------------------
225
231 typedef uint64_t os_statistics_counter_t;
232
238 typedef uint64_t os_statistics_duration_t;
239
250 {
253
254 // ==========================================================================
255#define OS_THREAD_PRIO_SHIFT (4)
256
267 enum
268 {
269 // Ordered, with **none** as the first and **error** as the last.
270 os_thread_priority_none = 0, // not defined
282 };
283
289 enum
290 {
319 };
320
331
341 typedef void* (*os_thread_func_t) (os_thread_func_args_t args);
342
348 typedef uint8_t os_thread_state_t;
349
362 typedef uint8_t os_thread_prio_t;
363
364 // --------------------------------------------------------------------------
365
375 typedef os_port_thread_stack_element_t os_thread_stack_element_t;
376
385 typedef os_port_thread_stack_allocation_element_t
387
388#pragma GCC diagnostic push
389#if defined(__clang__)
390#pragma clang diagnostic ignored "-Wpadded"
391#elif defined(__GNUC__)
392#pragma GCC diagnostic ignored "-Wpadded"
393#endif
394
405 typedef struct os_thread_stack_s
406 {
411 void* stack_addr;
412 size_t stack_size_bytes;
413
419
430 typedef struct os_thread_context_s
431 {
436 os_thread_stack_t stack;
437#if !defined(OS_USE_RTOS_PORT_SCHEDULER)
438 os_port_thread_context_t port;
439#endif
440
446
447#if defined(OS_INCLUDE_RTOS_STATISTICS_THREAD_CONTEXT_SWITCHES) \
448 || defined(OS_INCLUDE_RTOS_STATISTICS_THREAD_CPU_CYCLES)
449
461 {
466#if defined(OS_INCLUDE_RTOS_STATISTICS_THREAD_CONTEXT_SWITCHES)
467 os_statistics_counter_t context_switches;
468#endif /* defined(OS_INCLUDE_RTOS_STATISTICS_THREAD_CONTEXT_SWITCHES) */
469
470#if defined(OS_INCLUDE_RTOS_STATISTICS_THREAD_CPU_CYCLES)
471 os_statistics_duration_t cpu_cycles;
472#endif /* defined(OS_INCLUDE_RTOS_STATISTICS_THREAD_CPU_CYCLES) */
473
479
480#endif
481
492 typedef struct os_thread_attr_s
493 {
503 void* clock;
504
512
526
538
543
545
562 typedef struct os_thread_s
563 {
568 void* vtbl;
569 const char* name;
570 int errno_; // Prevent the macro to expand (for example with a prefix).
572 os_thread_func_t func;
573 os_thread_func_args_t func_args;
574 void* func_result_;
575 void* parent;
579 void* joiner;
580 void* waiting_node;
581 void* clock_node;
582 void* clock;
583 void* allocator;
584 void* allocted_stack_address;
585 size_t acquired_mutexes;
586 size_t allocated_stack_size_elements;
587 os_thread_state_t state;
588 os_thread_prio_t prio_assigned;
589 os_thread_prio_t prio_inherited;
590 bool interrupted;
591 os_internal_evflags_t event_flags;
592#if defined(OS_INCLUDE_RTOS_CUSTOM_THREAD_USER_STORAGE)
593 os_thread_user_storage_t user_storage; //
594#endif /* defined(OS_INCLUDE_RTOS_CUSTOM_THREAD_USER_STORAGE) */
595
596#if defined(OS_INCLUDE_RTOS_STATISTICS_THREAD_CONTEXT_SWITCHES) \
597 || defined(OS_INCLUDE_RTOS_STATISTICS_THREAD_CPU_CYCLES)
598 os_thread_statistics_t statistics;
599#endif /* defined(OS_INCLUDE_RTOS_STATISTICS_THREAD_CONTEXT_SWITCHES) */
600
601#if defined(OS_USE_RTOS_PORT_SCHEDULER)
602 os_thread_port_data_t port;
603#endif
604 os_thread_context_t context;
605
611
612#pragma GCC diagnostic pop
613
618 // ==========================================================================
624#pragma GCC diagnostic push
625#if defined(__clang__)
626#pragma clang diagnostic ignored "-Wpadded"
627#elif defined(__GNUC__)
628#pragma GCC diagnostic ignored "-Wpadded"
629#endif
630
643 typedef struct os_clock_s
644 {
649 void* vtbl;
650 const char* name;
652 os_clock_duration_t sleep_count;
653 os_clock_timestamp_t steady_count;
654
660
661#pragma GCC diagnostic pop
662
667 // ==========================================================================
668#pragma GCC diagnostic push
669#if defined(__clang__)
670#pragma clang diagnostic ignored "-Wpadded"
671#elif defined(__GNUC__)
672#pragma GCC diagnostic ignored "-Wpadded"
673#endif
674
675 typedef struct os_clock_node_s
676 {
677 void* next;
678 void* prev;
679 void* list;
681 void* timer;
683
684#pragma GCC diagnostic pop
685
694 enum
695 {
697 os_timer_periodic = 1 //
698 };
699
709 typedef void* os_timer_func_args_t;
710
720 typedef void (*os_timer_func_t) (os_timer_func_args_t args);
721
727 typedef uint8_t os_timer_type_t;
728
734 typedef uint8_t os_timer_state_t;
735
736#pragma GCC diagnostic push
737#if defined(__clang__)
738#pragma clang diagnostic ignored "-Wpadded"
739#elif defined(__GNUC__)
740#pragma GCC diagnostic ignored "-Wpadded"
741#endif
742
753 typedef struct os_timer_attr_s
754 {
758 void* clock;
759
764
766
783 typedef struct os_timer_s
784 {
789 const char* name;
790 os_timer_func_t func;
791 os_timer_func_args_t func_args;
792#if !defined(OS_USE_RTOS_PORT_TIMER)
793 void* clock;
795 os_clock_duration_t period;
796#endif
797#if defined(OS_USE_RTOS_PORT_TIMER)
798 os_timer_port_data_t port_;
799#endif
800 os_timer_type_t type;
801 os_timer_state_t state;
802
808
809#pragma GCC diagnostic pop
810
815 // ==========================================================================
816 typedef int16_t os_mutex_count_t;
817 typedef uint8_t os_mutex_type_t;
818 typedef uint8_t os_mutex_protocol_t;
819 typedef uint8_t os_mutex_robustness_t;
820
831 enum
832 {
837
842
847
852 };
853
859 enum
860 {
865
870
875 };
876
882 enum
883 {
888
893
898
903 };
904
905#pragma GCC diagnostic push
906#if defined(__clang__)
907#pragma clang diagnostic ignored "-Wpadded"
908#elif defined(__GNUC__)
909#pragma GCC diagnostic ignored "-Wpadded"
910#endif
911
922 typedef struct os_mutex_attr_s
923 {
927 void* clock;
928
933
938
943
948
953
955
972 typedef struct os_mutex_s
973 {
978 const char* name;
979 void* owner;
980#if !defined(OS_USE_RTOS_PORT_MUTEX)
982 void* clock;
983#endif
985#if defined(OS_USE_RTOS_PORT_MUTEX)
986 os_mutex_port_data_t port;
987#endif
988 os_mutex_count_t count;
989 os_thread_prio_t initial_prio_ceiling;
990 os_thread_prio_t prio_ceiling;
991 os_thread_prio_t bosted_prio;
992 bool owner_dead;
993 bool consistent;
994 bool recoverable;
995 os_mutex_type_t type;
996 os_mutex_protocol_t protocol;
997 os_mutex_robustness_t robustness;
998 os_mutex_count_t max_count;
999
1005
1006#pragma GCC diagnostic pop
1007
1012 // ==========================================================================
1028 typedef struct os_condvar_attr_s
1029 {
1033 void* clock;
1034
1036
1054 typedef struct os_condvar_s
1055 {
1060 const char* name;
1061#if !defined(OS_USE_RTOS_PORT_CONDITION_VARIABLE)
1063 // void* clock;
1064#endif
1065
1071
1076 // ==========================================================================
1087 typedef int16_t os_semaphore_count_t;
1088
1089#pragma GCC diagnostic push
1090#if defined(__clang__)
1091#pragma clang diagnostic ignored "-Wpadded"
1092#elif defined(__GNUC__)
1093#pragma GCC diagnostic ignored "-Wpadded"
1094#endif
1095
1106 typedef struct os_semaphore_attr_s
1107 {
1111 void* clock;
1112
1117
1122
1124
1141 typedef struct os_semaphore_s
1142 {
1147 const char* name;
1148#if !defined(OS_USE_RTOS_PORT_SEMAPHORE)
1150 void* clock;
1151#endif
1152#if defined(OS_USE_RTOS_PORT_SEMAPHORE)
1153 os_semaphore_port_data_t port;
1154#endif
1155 os_semaphore_count_t initial_count;
1157 os_semaphore_count_t max_count;
1158
1164
1165#pragma GCC diagnostic pop
1166
1171 // ==========================================================================
1172 typedef uint16_t os_mempool_size_t;
1173
1179#pragma GCC diagnostic push
1180#if defined(__clang__)
1181#pragma clang diagnostic ignored "-Wpadded"
1182#elif defined(__GNUC__)
1183#pragma GCC diagnostic ignored "-Wpadded"
1184#endif
1185
1196 typedef struct os_mempool_attr_s
1197 {
1201 void* clock;
1202
1207
1212
1214
1231 typedef struct os_mempool_s
1232 {
1237 void* vtbl;
1238 const char* name;
1239#if !defined(OS_USE_RTOS_PORT_MEMORY_POOL)
1241 void* clock;
1242#endif
1243 void* pool_addr;
1244 void* allocated_pool_addr;
1245 void* allocator;
1246#if defined(OS_USE_RTOS_PORT_MEMORY_POOL)
1247 os_mempool_port_data_t port;
1248#endif
1249 size_t pool_size_bytes;
1250 size_t allocated_pool_size_elements_;
1251 os_mempool_size_t blocks;
1252 os_mempool_size_t block_size_bytes;
1253 os_mempool_size_t count;
1254 void* first;
1255
1261
1262#pragma GCC diagnostic pop
1263
1268 // ==========================================================================
1269#if defined(OS_BOOL_RTOS_MESSAGE_QUEUE_SIZE_16BITS)
1270 typedef uint16_t os_mqueue_size_t;
1271#else
1272typedef uint8_t os_mqueue_size_t;
1273#endif
1274
1275 typedef uint16_t os_mqueue_msg_size_t;
1277
1288 typedef uint8_t os_mqueue_prio_t;
1289
1290#pragma GCC diagnostic push
1291#if defined(__clang__)
1292#pragma clang diagnostic ignored "-Wpadded"
1293#elif defined(__GNUC__)
1294#pragma GCC diagnostic ignored "-Wpadded"
1295#endif
1296
1307 typedef struct os_mqueue_attr_s
1308 {
1312 void* clock;
1313
1318
1323
1325
1342 typedef struct os_mqueue_s
1343 {
1348 void* vtbl;
1349 const char* name;
1350#if !defined(OS_USE_RTOS_PORT_MESSAGE_QUEUE)
1353 void* clock;
1354 os_mqueue_index_t* prev_array;
1355 os_mqueue_index_t* next_array;
1356 os_mqueue_prio_t* prio_array;
1357 void* first_free;
1358#endif
1359
1360 void* queue_addr;
1361 void* allocated_queue_addr;
1362 void* allocator;
1363
1364#if defined(OS_USE_RTOS_PORT_MESSAGE_QUEUE)
1365 os_mqueue_port_data_t port;
1366#endif
1367
1368 size_t queue_size_bytes;
1369 size_t allocated_queue_size_elements;
1370
1371 os_mqueue_msg_size_t msg_size_bytes;
1372 os_mqueue_size_t msgs;
1373
1374 os_mqueue_size_t count;
1375#if !defined(OS_USE_RTOS_PORT_MESSAGE_QUEUE)
1376 os_mqueue_index_t head;
1377#endif
1378
1384
1385#pragma GCC diagnostic pop
1386
1391 // ==========================================================================
1397#pragma GCC diagnostic push
1398#if defined(__clang__)
1399#pragma clang diagnostic ignored "-Wpadded"
1400#elif defined(__GNUC__)
1401#pragma GCC diagnostic ignored "-Wpadded"
1402#endif
1403
1414 typedef struct os_evflags_attr_s
1415 {
1419 void* clock;
1420
1422
1439 typedef struct os_evflags_s
1440 {
1445 const char* name;
1446#if !defined(OS_USE_RTOS_PORT_EVENT_FLAGS)
1448 void* clock;
1449#endif
1450
1451#if defined(OS_USE_RTOS_PORT_EVENT_FLAGS)
1452 os_evflags_port_data_t port_;
1453#endif
1454
1456
1462
1463#pragma GCC diagnostic pop
1464
1469 // ==========================================================================
1483 void
1484 os_systick_handler (void);
1485
1489 void
1490 os_rtc_handler (void);
1491
1500 // ==========================================================================
1520 typedef struct os_memory_s
1521 {
1522 char dummy; // Content is not relevant.
1524
1529// ============================================================================
1530#ifdef __cplusplus
1531}
1532#endif
1533
1534// ----------------------------------------------------------------------------
1535
1536#pragma GCC diagnostic push
1537
1538// ----------------------------------------------------------------------------
1539
1540#endif /* CMSIS_PLUS_RTOS_OS_C_STRUCTS_H_ */
clock_t clock(void)
struct os_clock_s os_clock_t
Clock object storage.
void os_systick_handler(void)
SysTick interrupt handler.
Definition os-clocks.cpp:36
void os_rtc_handler(void)
RTC interrupt handler.
Definition os-clocks.cpp:95
struct os_condvar_attr_s os_condvar_attr_t
Condition variable attributes.
struct os_condvar_s os_condvar_t
Condition variable object storage.
uint32_t os_flags_mask_t
Type of variables holding flags masks.
Definition os-c-decls.h:120
uint64_t os_statistics_counter_t
Type of variables holding context switches counters.
Definition os-c-decls.h:231
os_port_irq_state_t os_irq_state_t
Type of variables holding interrupts priority values.
Definition os-c-decls.h:170
uint32_t os_flags_mode_t
Type of variables holding flags modes.
Definition os-c-decls.h:107
os_port_scheduler_state_t os_sched_state_t
Type of variables holding scheduler state codes.
Definition os-c-decls.h:156
os_port_clock_offset_t os_clock_offset_t
Type of variables holding clock offsets.
Definition os-c-decls.h:208
void * os_iterator_t
Generic iterator, implemented as a pointer.
Definition os-c-decls.h:222
uint64_t os_statistics_duration_t
Type of variables holding durations in CPU cycles.
Definition os-c-decls.h:238
os_port_clock_duration_t os_clock_duration_t
Type of variables holding clock durations.
Definition os-c-decls.h:196
os_port_clock_timestamp_t os_clock_timestamp_t
Type of variables holding clock time stamps.
Definition os-c-decls.h:185
uint32_t os_result_t
Type of values returned by RTOS functions.
Definition os-c-decls.h:94
@ os_flags_mode_clear
Definition os-c-decls.h:131
@ os_flags_mode_all
Definition os-c-decls.h:129
@ os_flags_mode_any
Definition os-c-decls.h:130
struct os_evflags_s os_evflags_t
Event flags object storage.
struct os_evflags_attr_s os_evflags_attr_t
Event flags attributes.
struct os_mempool_s os_mempool_t
Memory pool object storage.
struct os_mempool_attr_s os_mempool_attr_t
Memory pool attributes.
struct os_memory_s os_memory_t
Memory resource object storage.
struct os_mqueue_attr_s os_mqueue_attr_t
Message queue attributes.
struct os_mqueue_s os_mqueue_t
Message queue object storage.
uint8_t os_mqueue_prio_t
Type of variables holding message queue priorities.
struct os_mutex_attr_s os_mutex_attr_t
Mutex attributes.
struct os_mutex_s os_mutex_t
Mutex object storage.
@ os_mutex_protocol_inherit
Inherit priority from highest priority thread.
Definition os-c-decls.h:841
@ os_mutex_protocol_protect
Execute at the highest priority.
Definition os-c-decls.h:846
@ os_mutex_protocol_none
Priority and scheduling not affected by mutex ownership.
Definition os-c-decls.h:836
@ os_mutex_protocol_default
Default mutex protocol.
Definition os-c-decls.h:851
@ os_mutex_type_recursive
Recursive mutex behaviour.
Definition os-c-decls.h:897
@ os_mutex_type_errorcheck
Check mutex behaviour.
Definition os-c-decls.h:892
@ os_mutex_type_default
Default mutex type.
Definition os-c-decls.h:902
@ os_mutex_type_normal
Normal mutex behaviour.
Definition os-c-decls.h:887
@ os_mutex_robustness_default
Default mutex robustness.
Definition os-c-decls.h:874
@ os_mutex_robustness_robust
Enhanced robustness at thread termination.
Definition os-c-decls.h:869
@ os_mutex_robustness_stalled
Normal robustness.
Definition os-c-decls.h:864
struct os_semaphore_attr_s os_semaphore_attr_t
Semaphore attributes.
struct os_semaphore_s os_semaphore_t
Semaphore object storage.
int16_t os_semaphore_count_t
Type of variables holding semaphore counts.
struct os_thread_context_s os_thread_context_t
Thread context.
struct os_thread_attr_s os_thread_attr_t
Thread attributes.
os_port_thread_stack_allocation_element_t os_thread_stack_allocation_element_t
Type of variables holding aligned stack elements.
Definition os-c-decls.h:386
void *(* os_thread_func_t)(os_thread_func_args_t args)
Type of thread function.
Definition os-c-decls.h:341
uint8_t os_thread_prio_t
Type of variables holding thread priorities.
Definition os-c-decls.h:362
struct os_thread_statistics_s os_thread_statistics_t
Thread statistics.
struct os_thread_stack_s os_thread_stack_t
Thread stack.
struct os_thread_s os_thread_t
Thread object storage.
os_port_thread_stack_element_t os_thread_stack_element_t
Type of variables holding stack words.
Definition os-c-decls.h:375
void * os_thread_func_args_t
Type of thread function arguments.
Definition os-c-decls.h:330
uint8_t os_thread_state_t
Type of variables holding thread states.
Definition os-c-decls.h:348
@ os_thread_state_terminated
No longer usable, but resources not yet released.
Definition os-c-decls.h:310
@ os_thread_state_suspended
Not present in the READY list, waiting for an event.
Definition os-c-decls.h:306
@ os_thread_state_undefined
Used to catch uninitialised threads.
Definition os-c-decls.h:294
@ os_thread_state_ready
Present in the READY list and competing for CPU.
Definition os-c-decls.h:298
@ os_thread_state_initialising
Used to check reused threads.
Definition os-c-decls.h:318
@ os_thread_state_destroyed
Terminated and resources (like stack) released.
Definition os-c-decls.h:314
@ os_thread_state_running
Has the CPU and runs.
Definition os-c-decls.h:302
@ os_thread_priority_highest
Definition os-c-decls.h:279
@ os_thread_priority_isr
Definition os-c-decls.h:280
@ os_thread_priority_lowest
Definition os-c-decls.h:272
@ os_thread_priority_error
Definition os-c-decls.h:281
@ os_thread_priority_below_normal
Definition os-c-decls.h:274
@ os_thread_priority_high
Definition os-c-decls.h:277
@ os_thread_priority_none
Definition os-c-decls.h:270
@ os_thread_priority_realtime
Definition os-c-decls.h:278
@ os_thread_priority_idle
Definition os-c-decls.h:271
@ os_thread_priority_normal
Definition os-c-decls.h:275
@ os_thread_priority_low
Definition os-c-decls.h:273
@ os_thread_priority_above_normal
Definition os-c-decls.h:276
uint8_t os_timer_type_t
Type of variables holding timer types.
Definition os-c-decls.h:727
void(* os_timer_func_t)(os_timer_func_args_t args)
Type of timer function.
Definition os-c-decls.h:720
void * os_timer_func_args_t
Type of timer function arguments.
Definition os-c-decls.h:709
struct os_timer_attr_s os_timer_attr_t
Timer attributes.
struct os_timer_s os_timer_t
Timer object storage.
uint8_t os_timer_state_t
Type of variables holding timer states.
Definition os-c-decls.h:734
@ os_timer_once
Definition os-c-decls.h:696
@ os_timer_periodic
Definition os-c-decls.h:697
os_mqueue_size_t os_mqueue_index_t
uint8_t os_mutex_protocol_t
Definition os-c-decls.h:818
os_internal_double_list_links_t os_internal_threads_waiting_list_t
Definition os-c-decls.h:60
struct os_internal_waiting_thread_node_s os_internal_waiting_thread_node_t
struct os_internal_evflags_s os_internal_evflags_t
Internal event flags.
uint8_t os_mutex_type_t
Definition os-c-decls.h:817
uint8_t os_mqueue_size_t
struct os_internal_clock_timestamps_list_s os_internal_clock_timestamps_list_t
#define OS_THREAD_PRIO_SHIFT
Definition os-c-decls.h:255
uint8_t os_mutex_robustness_t
Definition os-c-decls.h:819
struct os_internal_thread_children_list_s os_internal_thread_children_list_t
uint16_t os_mempool_size_t
struct os_clock_node_s os_internal_clock_timer_node_t
int16_t os_mutex_count_t
Definition os-c-decls.h:816
struct os_internal_double_list_links_s os_internal_double_list_links_t
uint16_t os_mqueue_msg_size_t
os_clock_timestamp_t timestamp
Definition os-c-decls.h:680
Clock object storage.
Definition os-c-decls.h:644
Condition variable attributes.
void * clock
Pointer to clock object instance.
Condition variable object storage.
Event flags attributes.
void * clock
Pointer to clock object instance.
Event flags object storage.
os_internal_double_list_links_t links
Definition os-c-decls.h:75
Internal event flags.
Definition os-c-decls.h:250
os_flags_mask_t flags_mask
Definition os-c-decls.h:251
os_internal_double_list_links_t links
Definition os-c-decls.h:64
os_internal_double_list_links_t links
Definition os-c-decls.h:69
Memory resource object storage.
Memory pool attributes.
size_t mp_pool_size_bytes
Size of user provided memory pool area, in bytes.
void * mp_pool_address
Pointer to user provided memory pool area.
void * clock
Pointer to clock object instance.
Memory pool object storage.
Message queue attributes.
void * mq_queue_addr
Pointer to user provided message queue area.
void * clock
Pointer to clock object instance.
size_t mq_queue_size_bytes
Size of user provided message queue area, in bytes.
Message queue object storage.
Mutex attributes.
Definition os-c-decls.h:923
os_mutex_type_t mx_type
Mutex type.
Definition os-c-decls.h:947
os_mutex_protocol_t mx_protocol
Mutex protocol.
Definition os-c-decls.h:937
os_mutex_count_t mx_max_count
Recursive mutex max count.
Definition os-c-decls.h:952
os_mutex_robustness_t mx_robustness
Mutex robustness.
Definition os-c-decls.h:942
os_thread_prio_t mx_priority_ceiling
Mutex priority ceiling.
Definition os-c-decls.h:932
void * clock
Pointer to clock object instance.
Definition os-c-decls.h:927
Mutex object storage.
Definition os-c-decls.h:973
Semaphore attributes.
void * clock
Pointer to clock object instance.
os_semaphore_count_t sm_max_value
Semaphore max count value.
os_semaphore_count_t sm_initial_value
Semaphore initial count value.
Semaphore object storage.
Thread attributes.
Definition os-c-decls.h:493
os_thread_prio_t th_priority
Thread initial priority.
Definition os-c-decls.h:537
void * th_stack_address
Address of the user defined storage for the thread stack.
Definition os-c-decls.h:511
bool th_enable_assert_reuse
Definition os-c-decls.h:542
void * clock
Address of the clock to use for timeouts.
Definition os-c-decls.h:503
size_t th_stack_size_bytes
Size of the user defined storage for the thread stack, in bytes.
Definition os-c-decls.h:525
Thread context.
Definition os-c-decls.h:431
Thread object storage.
Definition os-c-decls.h:563
Thread stack.
Definition os-c-decls.h:406
Thread statistics.
Definition os-c-decls.h:461
Timer attributes.
Definition os-c-decls.h:754
void * clock
Pointer to clock object instance.
Definition os-c-decls.h:758
os_timer_type_t tm_type
Timer type.
Definition os-c-decls.h:763
Timer object storage.
Definition os-c-decls.h:784