µ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++ distribution.
3 * (https://github.com/micro-os-plus)
4 * Copyright (c) 2016 Liviu Ionescu.
5 *
6 * Permission is hereby granted, free of charge, to any person
7 * obtaining a copy of this software and associated documentation
8 * files (the "Software"), to deal in the Software without
9 * restriction, including without limitation the rights to use,
10 * copy, modify, merge, publish, distribute, sublicense, and/or
11 * sell copies of the Software, and to permit persons to whom
12 * the Software is furnished to do so, subject to the following
13 * conditions:
14 *
15 * The above copyright notice and this permission notice shall be
16 * included in all copies or substantial portions of the Software.
17 *
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
20 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
22 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
23 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
24 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
25 * OTHER DEALINGS IN THE SOFTWARE.
26 */
27
28/*
29 * The structures declared in this file are used both in the C API
30 * and in the legacy CMSIS API.
31 *
32 * Since there is no method to automatically sync them with the C++
33 * definitions, they must be manually adjusted to match them, otherwise
34 * the validation checks in os-c-wrapper.cpp will fail.
35 */
36
37#ifndef CMSIS_PLUS_RTOS_OS_C_DECLS_H_
38#define CMSIS_PLUS_RTOS_OS_C_DECLS_H_
39
40// ----------------------------------------------------------------------------
41
43
44#include <cmsis-plus/os-app-config.h>
45#include <cmsis-plus/rtos/port/os-decls.h>
46
47#include <stdint.h>
48#include <stddef.h>
49#include <stdbool.h>
50
51// ----------------------------------------------------------------------------
52
53#pragma GCC diagnostic push
54
55#if defined(__clang__)
56#pragma clang diagnostic ignored "-Wdocumentation-unknown-command"
57#endif
58
59// ----------------------------------------------------------------------------
60
61#ifdef __cplusplus
62extern "C"
63{
64#endif
65
66 // ==========================================================================
67
69 {
70 void* prev;
71 void* next;
73
75
77 {
80
82 {
84 void* thread;
86
88 {
91
108 typedef uint32_t os_result_t;
109
121 typedef uint32_t os_flags_mode_t;
122
134 typedef uint32_t os_flags_mask_t;
135
141 enum
142 {
146 };
147
151#define os_flags_any 0
152
156#define os_flags_all 0xFFFFFFFF
157
158 // --------------------------------------------------------------------------
159
170 typedef os_port_scheduler_state_t os_sched_state_t;
171
184 typedef os_port_irq_state_t os_irq_state_t;
185
186 // --------------------------------------------------------------------------
187
188 // Define clock types based on port definitions.
189
199 typedef os_port_clock_timestamp_t os_clock_timestamp_t;
200
210 typedef os_port_clock_duration_t os_clock_duration_t;
211
222 typedef os_port_clock_offset_t os_clock_offset_t;
223
224 // --------------------------------------------------------------------------
225
236 typedef void* os_iterator_t;
237
238 // --------------------------------------------------------------------------
239
245 typedef uint64_t os_statistics_counter_t;
246
252 typedef uint64_t os_statistics_duration_t;
253
264 {
267
268 // ==========================================================================
269#define OS_THREAD_PRIO_SHIFT (4)
270
281 enum
282 {
283 // Ordered, with **none** as the first and **error** as the last.
284 os_thread_priority_none = 0, // not defined
296 };
297
303 enum
304 {
333 };
334
344
354 typedef void*
355 (*os_thread_func_t) (os_thread_func_args_t args);
356
362 typedef uint8_t os_thread_state_t;
363
376 typedef uint8_t os_thread_prio_t;
377
378 // --------------------------------------------------------------------------
379
389 typedef os_port_thread_stack_element_t os_thread_stack_element_t;
390
399 typedef os_port_thread_stack_allocation_element_t os_thread_stack_allocation_element_t;
400
401#pragma GCC diagnostic push
402#pragma GCC diagnostic ignored "-Wpadded"
403
414 typedef struct os_thread_stack_s
415 {
420 void* stack_addr;
421 size_t stack_size_bytes;
422
428
439 typedef struct os_thread_context_s
440 {
445 os_thread_stack_t stack;
446#if !defined(OS_USE_RTOS_PORT_SCHEDULER)
447 os_port_thread_context_t port;
448#endif
449
455
456#if defined(OS_INCLUDE_RTOS_STATISTICS_THREAD_CONTEXT_SWITCHES) \
457 || defined(OS_INCLUDE_RTOS_STATISTICS_THREAD_CPU_CYCLES)
458
470 {
475#if defined(OS_INCLUDE_RTOS_STATISTICS_THREAD_CONTEXT_SWITCHES)
476 os_statistics_counter_t context_switches;
477#endif /* defined(OS_INCLUDE_RTOS_STATISTICS_THREAD_CONTEXT_SWITCHES) */
478
479#if defined(OS_INCLUDE_RTOS_STATISTICS_THREAD_CPU_CYCLES)
480 os_statistics_duration_t cpu_cycles;
481#endif /* defined(OS_INCLUDE_RTOS_STATISTICS_THREAD_CPU_CYCLES) */
482
488
489#endif
490
501 typedef struct os_thread_attr_s
502 {
512 void* clock;
513
521
535
547
552
554
571 typedef struct os_thread_s
572 {
577 void* vtbl;
578 const char* name;
579 int errno_; // Prevent the macro to expand (for example with a prefix).
581 os_thread_func_t func;
582 os_thread_func_args_t func_args;
583 void* func_result_;
584 void* parent;
588 void* joiner;
589 void* waiting_node;
590 void* clock_node;
591 void* clock;
592 void* allocator;
593 void* allocted_stack_address;
594 size_t acquired_mutexes;
595 size_t allocated_stack_size_elements;
596 os_thread_state_t state;
597 os_thread_prio_t prio_assigned;
598 os_thread_prio_t prio_inherited;
599 bool interrupted;
600 os_internal_evflags_t event_flags;
601#if defined(OS_INCLUDE_RTOS_CUSTOM_THREAD_USER_STORAGE)
602 os_thread_user_storage_t user_storage; //
603#endif /* defined(OS_INCLUDE_RTOS_CUSTOM_THREAD_USER_STORAGE) */
604
605#if defined(OS_INCLUDE_RTOS_STATISTICS_THREAD_CONTEXT_SWITCHES) \
606 || defined(OS_INCLUDE_RTOS_STATISTICS_THREAD_CPU_CYCLES)
607 os_thread_statistics_t statistics;
608#endif /* defined(OS_INCLUDE_RTOS_STATISTICS_THREAD_CONTEXT_SWITCHES) */
609
610#if defined(OS_USE_RTOS_PORT_SCHEDULER)
611 os_thread_port_data_t port;
612#endif
613 os_thread_context_t context;
614
620
621#pragma GCC diagnostic pop
622
627 // ==========================================================================
633#pragma GCC diagnostic push
634#pragma GCC diagnostic ignored "-Wpadded"
635
648 typedef struct os_clock_s
649 {
654 void* vtbl;
655 const char* name;
657 os_clock_duration_t sleep_count;
658 os_clock_timestamp_t steady_count;
659
665
666#pragma GCC diagnostic pop
667
672 // ==========================================================================
673#pragma GCC diagnostic push
674#pragma GCC diagnostic ignored "-Wpadded"
675
676 typedef struct os_clock_node_s
677 {
678 void* next;
679 void* prev;
680 void* list;
682 void* timer;
684
685#pragma GCC diagnostic pop
686
695 enum
696 {
698 os_timer_periodic = 1 //
699 };
700
710 typedef void* os_timer_func_args_t;
711
721 typedef void
723
729 typedef uint8_t os_timer_type_t;
730
736 typedef uint8_t os_timer_state_t;
737
738#pragma GCC diagnostic push
739#pragma GCC diagnostic ignored "-Wpadded"
740
751 typedef struct os_timer_attr_s
752 {
756 void* clock;
757
762
764
781 typedef struct os_timer_s
782 {
787 const char* name;
788 os_timer_func_t func;
789 os_timer_func_args_t func_args;
790#if !defined(OS_USE_RTOS_PORT_TIMER)
791 void* clock;
793 os_clock_duration_t period;
794#endif
795#if defined(OS_USE_RTOS_PORT_TIMER)
796 os_timer_port_data_t port_;
797#endif
798 os_timer_type_t type;
799 os_timer_state_t state;
800
806
807#pragma GCC diagnostic pop
808
813 // ==========================================================================
814 typedef int16_t os_mutex_count_t;
815 typedef uint8_t os_mutex_type_t;
816 typedef uint8_t os_mutex_protocol_t;
817 typedef uint8_t os_mutex_robustness_t;
818
829 enum
830 {
835
840
845
850 };
851
857 enum
858 {
863
868
873 };
874
880 enum
881 {
886
891
896
901 };
902
903#pragma GCC diagnostic push
904#pragma GCC diagnostic ignored "-Wpadded"
905
916 typedef struct os_mutex_attr_s
917 {
921 void* clock;
922
927
932
937
942
947
949
966 typedef struct os_mutex_s
967 {
972 const char* name;
973 void* owner;
974#if !defined(OS_USE_RTOS_PORT_MUTEX)
976 void* clock;
977#endif
979#if defined(OS_USE_RTOS_PORT_MUTEX)
980 os_mutex_port_data_t port;
981#endif
982 os_mutex_count_t count;
983 os_thread_prio_t initial_prio_ceiling;
984 os_thread_prio_t prio_ceiling;
985 os_thread_prio_t bosted_prio;
986 bool owner_dead;
987 bool consistent;
988 bool recoverable;
989 os_mutex_type_t type;
990 os_mutex_protocol_t protocol;
991 os_mutex_robustness_t robustness;
992 os_mutex_count_t max_count;
993
999
1000#pragma GCC diagnostic pop
1001
1006 // ==========================================================================
1022 typedef struct os_condvar_attr_s
1023 {
1027 void* clock;
1028
1030
1048 typedef struct os_condvar_s
1049 {
1054 const char* name;
1055#if !defined(OS_USE_RTOS_PORT_CONDITION_VARIABLE)
1057 // void* clock;
1058#endif
1059
1065
1070 // ==========================================================================
1081 typedef int16_t os_semaphore_count_t;
1082
1083#pragma GCC diagnostic push
1084#pragma GCC diagnostic ignored "-Wpadded"
1085
1096 typedef struct os_semaphore_attr_s
1097 {
1101 void* clock;
1102
1107
1112
1114
1131 typedef struct os_semaphore_s
1132 {
1137 const char* name;
1138#if !defined(OS_USE_RTOS_PORT_SEMAPHORE)
1140 void* clock;
1141#endif
1142#if defined(OS_USE_RTOS_PORT_SEMAPHORE)
1143 os_semaphore_port_data_t port;
1144#endif
1145 os_semaphore_count_t initial_count;
1147 os_semaphore_count_t max_count;
1148
1154
1155#pragma GCC diagnostic pop
1156
1161 // ==========================================================================
1162 typedef uint16_t os_mempool_size_t;
1163
1169#pragma GCC diagnostic push
1170#pragma GCC diagnostic ignored "-Wpadded"
1171
1182 typedef struct os_mempool_attr_s
1183 {
1187 void* clock;
1188
1193
1198
1200
1217 typedef struct os_mempool_s
1218 {
1223 void* vtbl;
1224 const char* name;
1225#if !defined(OS_USE_RTOS_PORT_MEMORY_POOL)
1227 void* clock;
1228#endif
1229 void* pool_addr;
1230 void* allocated_pool_addr;
1231 void* allocator;
1232#if defined(OS_USE_RTOS_PORT_MEMORY_POOL)
1233 os_mempool_port_data_t port;
1234#endif
1235 size_t pool_size_bytes;
1236 size_t allocated_pool_size_elements_;
1237 os_mempool_size_t blocks;
1238 os_mempool_size_t block_size_bytes;
1239 os_mempool_size_t count;
1240 void* first;
1241
1247
1248#pragma GCC diagnostic pop
1249
1254 // ==========================================================================
1255#if defined(OS_BOOL_RTOS_MESSAGE_QUEUE_SIZE_16BITS)
1256 typedef uint16_t os_mqueue_size_t;
1257#else
1258 typedef uint8_t os_mqueue_size_t;
1259#endif
1260
1261 typedef uint16_t os_mqueue_msg_size_t;
1263
1274 typedef uint8_t os_mqueue_prio_t;
1275
1276#pragma GCC diagnostic push
1277#pragma GCC diagnostic ignored "-Wpadded"
1278
1289 typedef struct os_mqueue_attr_s
1290 {
1294 void* clock;
1295
1300
1305
1307
1324 typedef struct os_mqueue_s
1325 {
1330 void* vtbl;
1331 const char* name;
1332#if !defined(OS_USE_RTOS_PORT_MESSAGE_QUEUE)
1335 void* clock;
1336 os_mqueue_index_t* prev_array;
1337 os_mqueue_index_t* next_array;
1338 os_mqueue_prio_t* prio_array;
1339 void* first_free;
1340#endif
1341
1342 void* queue_addr;
1343 void* allocated_queue_addr;
1344 void* allocator;
1345
1346#if defined(OS_USE_RTOS_PORT_MESSAGE_QUEUE)
1347 os_mqueue_port_data_t port;
1348#endif
1349
1350 size_t queue_size_bytes;
1351 size_t allocated_queue_size_elements;
1352
1353 os_mqueue_msg_size_t msg_size_bytes;
1354 os_mqueue_size_t msgs;
1355
1356 os_mqueue_size_t count;
1357#if !defined(OS_USE_RTOS_PORT_MESSAGE_QUEUE)
1358 os_mqueue_index_t head;
1359#endif
1360
1366
1367#pragma GCC diagnostic pop
1368
1373 // ==========================================================================
1379#pragma GCC diagnostic push
1380#pragma GCC diagnostic ignored "-Wpadded"
1381
1392 typedef struct os_evflags_attr_s
1393 {
1397 void* clock;
1398
1400
1417 typedef struct os_evflags_s
1418 {
1423 const char* name;
1424#if !defined(OS_USE_RTOS_PORT_EVENT_FLAGS)
1426 void* clock;
1427#endif
1428
1429#if defined(OS_USE_RTOS_PORT_EVENT_FLAGS)
1430 os_evflags_port_data_t port_;
1431#endif
1432
1434
1440
1441#pragma GCC diagnostic pop
1442
1447 // ==========================================================================
1461 void
1462 os_systick_handler (void);
1463
1467 void
1468 os_rtc_handler (void);
1469
1478 // ==========================================================================
1498 typedef struct os_memory_s
1499 {
1500 char dummy; // Content is not relevant.
1502
1507// ============================================================================
1508#ifdef __cplusplus
1509}
1510#endif
1511
1512// ----------------------------------------------------------------------------
1513
1514#pragma GCC diagnostic push
1515
1516// ----------------------------------------------------------------------------
1517
1518#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:48
void os_rtc_handler(void)
RTC interrupt handler.
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:134
uint64_t os_statistics_counter_t
Type of variables holding context switches counters.
Definition os-c-decls.h:245
os_port_irq_state_t os_irq_state_t
Type of variables holding interrupts priority values.
Definition os-c-decls.h:184
uint32_t os_flags_mode_t
Type of variables holding flags modes.
Definition os-c-decls.h:121
os_port_scheduler_state_t os_sched_state_t
Type of variables holding scheduler state codes.
Definition os-c-decls.h:170
os_port_clock_offset_t os_clock_offset_t
Type of variables holding clock offsets.
Definition os-c-decls.h:222
void * os_iterator_t
Generic iterator, implemented as a pointer.
Definition os-c-decls.h:236
uint64_t os_statistics_duration_t
Type of variables holding durations in CPU cycles.
Definition os-c-decls.h:252
os_port_clock_duration_t os_clock_duration_t
Type of variables holding clock durations.
Definition os-c-decls.h:210
os_port_clock_timestamp_t os_clock_timestamp_t
Type of variables holding clock time stamps.
Definition os-c-decls.h:199
uint32_t os_result_t
Type of values returned by RTOS functions.
Definition os-c-decls.h:108
@ os_flags_mode_clear
Definition os-c-decls.h:145
@ os_flags_mode_all
Definition os-c-decls.h:143
@ os_flags_mode_any
Definition os-c-decls.h:144
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:839
@ os_mutex_protocol_protect
Execute at the highest priority.
Definition os-c-decls.h:844
@ os_mutex_protocol_none
Priority and scheduling not affected by mutex ownership.
Definition os-c-decls.h:834
@ os_mutex_protocol_default
Default mutex protocol.
Definition os-c-decls.h:849
@ os_mutex_type_recursive
Recursive mutex behaviour.
Definition os-c-decls.h:895
@ os_mutex_type_errorcheck
Check mutex behaviour.
Definition os-c-decls.h:890
@ os_mutex_type_default
Default mutex type.
Definition os-c-decls.h:900
@ os_mutex_type_normal
Normal mutex behaviour.
Definition os-c-decls.h:885
@ os_mutex_robustness_default
Default mutex robustness.
Definition os-c-decls.h:872
@ os_mutex_robustness_robust
Enhanced robustness at thread termination.
Definition os-c-decls.h:867
@ os_mutex_robustness_stalled
Normal robustness.
Definition os-c-decls.h:862
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:399
void *(* os_thread_func_t)(os_thread_func_args_t args)
Type of thread function.
Definition os-c-decls.h:355
uint8_t os_thread_prio_t
Type of variables holding thread priorities.
Definition os-c-decls.h:376
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:389
void * os_thread_func_args_t
Type of thread function arguments.
Definition os-c-decls.h:343
uint8_t os_thread_state_t
Type of variables holding thread states.
Definition os-c-decls.h:362
@ os_thread_state_terminated
No longer usable, but resources not yet released.
Definition os-c-decls.h:324
@ os_thread_state_suspended
Not present in the READY list, waiting for an event.
Definition os-c-decls.h:320
@ os_thread_state_undefined
Used to catch uninitialised threads.
Definition os-c-decls.h:308
@ os_thread_state_ready
Present in the READY list and competing for CPU.
Definition os-c-decls.h:312
@ os_thread_state_initialising
Used to check reused threads.
Definition os-c-decls.h:332
@ os_thread_state_destroyed
Terminated and resources (like stack) released.
Definition os-c-decls.h:328
@ os_thread_state_running
Has the CPU and runs.
Definition os-c-decls.h:316
@ os_thread_priority_highest
Definition os-c-decls.h:293
@ os_thread_priority_isr
Definition os-c-decls.h:294
@ os_thread_priority_lowest
Definition os-c-decls.h:286
@ os_thread_priority_error
Definition os-c-decls.h:295
@ os_thread_priority_below_normal
Definition os-c-decls.h:288
@ os_thread_priority_high
Definition os-c-decls.h:291
@ os_thread_priority_none
Definition os-c-decls.h:284
@ os_thread_priority_realtime
Definition os-c-decls.h:292
@ os_thread_priority_idle
Definition os-c-decls.h:285
@ os_thread_priority_normal
Definition os-c-decls.h:289
@ os_thread_priority_low
Definition os-c-decls.h:287
@ os_thread_priority_above_normal
Definition os-c-decls.h:290
uint8_t os_timer_type_t
Type of variables holding timer types.
Definition os-c-decls.h:729
void(* os_timer_func_t)(os_timer_func_args_t args)
Type of timer function.
Definition os-c-decls.h:722
void * os_timer_func_args_t
Type of timer function arguments.
Definition os-c-decls.h:710
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:736
@ os_timer_once
Definition os-c-decls.h:697
@ os_timer_periodic
Definition os-c-decls.h:698
os_mqueue_size_t os_mqueue_index_t
uint8_t os_mutex_protocol_t
Definition os-c-decls.h:816
os_internal_double_list_links_t os_internal_threads_waiting_list_t
Definition os-c-decls.h:74
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:815
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:269
uint8_t os_mutex_robustness_t
Definition os-c-decls.h:817
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:814
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:681
Clock object storage.
Definition os-c-decls.h:649
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:89
Internal event flags.
Definition os-c-decls.h:264
os_flags_mask_t flags_mask
Definition os-c-decls.h:265
os_internal_double_list_links_t links
Definition os-c-decls.h:78
os_internal_double_list_links_t links
Definition os-c-decls.h:83
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:917
os_mutex_type_t mx_type
Mutex type.
Definition os-c-decls.h:941
os_mutex_protocol_t mx_protocol
Mutex protocol.
Definition os-c-decls.h:931
os_mutex_count_t mx_max_count
Recursive mutex max count.
Definition os-c-decls.h:946
os_mutex_robustness_t mx_robustness
Mutex robustness.
Definition os-c-decls.h:936
os_thread_prio_t mx_priority_ceiling
Mutex priority ceiling.
Definition os-c-decls.h:926
void * clock
Pointer to clock object instance.
Definition os-c-decls.h:921
Mutex object storage.
Definition os-c-decls.h:967
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:502
os_thread_prio_t th_priority
Thread initial priority.
Definition os-c-decls.h:546
void * th_stack_address
Address of the user defined storage for the thread stack.
Definition os-c-decls.h:520
bool th_enable_assert_reuse
Definition os-c-decls.h:551
void * clock
Address of the clock to use for timeouts.
Definition os-c-decls.h:512
size_t th_stack_size_bytes
Size of the user defined storage for the thread stack, in bytes.
Definition os-c-decls.h:534
Thread context.
Definition os-c-decls.h:440
Thread object storage.
Definition os-c-decls.h:572
Thread stack.
Definition os-c-decls.h:415
Thread statistics.
Definition os-c-decls.h:470
Timer attributes.
Definition os-c-decls.h:752
void * clock
Pointer to clock object instance.
Definition os-c-decls.h:756
os_timer_type_t tm_type
Timer type.
Definition os-c-decls.h:761
Timer object storage.
Definition os-c-decls.h:782