µ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-2023 Liviu Ionescu. All rights reserved.
5 *
6 * Permission to use, copy, modify, and/or distribute this software
7 * for any purpose is hereby granted, under the terms of the MIT license.
8 *
9 * If a copy of the license was not distributed with this file, it can
10 * be obtained from https://opensource.org/licenses/mit/.
11 */
12
13/*
14 * The structures declared in this file are used both in the C API
15 * and in the legacy CMSIS API.
16 *
17 * Since there is no method to automatically sync them with the C++
18 * definitions, they must be manually adjusted to match them, otherwise
19 * the validation checks in os-c-wrapper.cpp will fail.
20 */
21
22#ifndef CMSIS_PLUS_RTOS_OS_C_DECLS_H_
23#define CMSIS_PLUS_RTOS_OS_C_DECLS_H_
24
25// ----------------------------------------------------------------------------
26
28
29#if defined(OS_USE_OS_APP_CONFIG_H)
30#include <cmsis-plus/os-app-config.h>
31#endif
32
33#include <cmsis-plus/rtos/port/os-decls.h>
34
35#include <stdint.h>
36#include <stddef.h>
37#include <stdbool.h>
38
39// ----------------------------------------------------------------------------
40
41#pragma GCC diagnostic push
42#if defined(__clang__)
43#pragma clang diagnostic ignored "-Wdocumentation-unknown-command"
44#endif
45
46// ----------------------------------------------------------------------------
47
48#ifdef __cplusplus
49extern "C"
50{
51#endif
52
53 // ==========================================================================
54
56 {
57 void* prev;
58 void* next;
60
62
64 {
67
69 {
71 void* thread;
73
75 {
78
95 typedef uint32_t os_result_t;
96
108 typedef uint32_t os_flags_mode_t;
109
121 typedef uint32_t os_flags_mask_t;
122
128 enum
129 {
133 };
134
138#define os_flags_any 0
139
143#define os_flags_all 0xFFFFFFFF
144
145 // --------------------------------------------------------------------------
146
157 typedef os_port_scheduler_state_t os_sched_state_t;
158
171 typedef os_port_irq_state_t os_irq_state_t;
172
173 // --------------------------------------------------------------------------
174
175 // Define clock types based on port definitions.
176
186 typedef os_port_clock_timestamp_t os_clock_timestamp_t;
187
197 typedef os_port_clock_duration_t os_clock_duration_t;
198
209 typedef os_port_clock_offset_t os_clock_offset_t;
210
211 // --------------------------------------------------------------------------
212
223 typedef void* os_iterator_t;
224
225 // --------------------------------------------------------------------------
226
232 typedef uint64_t os_statistics_counter_t;
233
239 typedef uint64_t os_statistics_duration_t;
240
251 {
254
255 // ==========================================================================
256#define OS_THREAD_PRIO_SHIFT (4)
257
268 enum
269 {
270 // Ordered, with **none** as the first and **error** as the last.
271 os_thread_priority_none = 0, // not defined
283 };
284
290 enum
291 {
320 };
321
331
341 typedef void*
342 (*os_thread_func_t) (os_thread_func_args_t args);
343
349 typedef uint8_t os_thread_state_t;
350
363 typedef uint8_t os_thread_prio_t;
364
365 // --------------------------------------------------------------------------
366
376 typedef os_port_thread_stack_element_t os_thread_stack_element_t;
377
386 typedef os_port_thread_stack_allocation_element_t os_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
722
728 typedef uint8_t os_timer_type_t;
729
735 typedef uint8_t os_timer_state_t;
736
737#pragma GCC diagnostic push
738#if defined(__clang__)
739#pragma clang diagnostic ignored "-Wpadded"
740#elif defined(__GNUC__)
741#pragma GCC diagnostic ignored "-Wpadded"
742#endif
743
754 typedef struct os_timer_attr_s
755 {
759 void* clock;
760
765
767
784 typedef struct os_timer_s
785 {
790 const char* name;
791 os_timer_func_t func;
792 os_timer_func_args_t func_args;
793#if !defined(OS_USE_RTOS_PORT_TIMER)
794 void* clock;
796 os_clock_duration_t period;
797#endif
798#if defined(OS_USE_RTOS_PORT_TIMER)
799 os_timer_port_data_t port_;
800#endif
801 os_timer_type_t type;
802 os_timer_state_t state;
803
809
810#pragma GCC diagnostic pop
811
816 // ==========================================================================
817 typedef int16_t os_mutex_count_t;
818 typedef uint8_t os_mutex_type_t;
819 typedef uint8_t os_mutex_protocol_t;
820 typedef uint8_t os_mutex_robustness_t;
821
832 enum
833 {
838
843
848
853 };
854
860 enum
861 {
866
871
876 };
877
883 enum
884 {
889
894
899
904 };
905
906#pragma GCC diagnostic push
907#if defined(__clang__)
908#pragma clang diagnostic ignored "-Wpadded"
909#elif defined(__GNUC__)
910#pragma GCC diagnostic ignored "-Wpadded"
911#endif
912
923 typedef struct os_mutex_attr_s
924 {
928 void* clock;
929
934
939
944
949
954
956
973 typedef struct os_mutex_s
974 {
979 const char* name;
980 void* owner;
981#if !defined(OS_USE_RTOS_PORT_MUTEX)
983 void* clock;
984#endif
986#if defined(OS_USE_RTOS_PORT_MUTEX)
987 os_mutex_port_data_t port;
988#endif
989 os_mutex_count_t count;
990 os_thread_prio_t initial_prio_ceiling;
991 os_thread_prio_t prio_ceiling;
992 os_thread_prio_t bosted_prio;
993 bool owner_dead;
994 bool consistent;
995 bool recoverable;
996 os_mutex_type_t type;
997 os_mutex_protocol_t protocol;
998 os_mutex_robustness_t robustness;
999 os_mutex_count_t max_count;
1000
1006
1007#pragma GCC diagnostic pop
1008
1013 // ==========================================================================
1029 typedef struct os_condvar_attr_s
1030 {
1034 void* clock;
1035
1037
1055 typedef struct os_condvar_s
1056 {
1061 const char* name;
1062#if !defined(OS_USE_RTOS_PORT_CONDITION_VARIABLE)
1064 // void* clock;
1065#endif
1066
1072
1077 // ==========================================================================
1088 typedef int16_t os_semaphore_count_t;
1089
1090#pragma GCC diagnostic push
1091#if defined(__clang__)
1092#pragma clang diagnostic ignored "-Wpadded"
1093#elif defined(__GNUC__)
1094#pragma GCC diagnostic ignored "-Wpadded"
1095#endif
1096
1107 typedef struct os_semaphore_attr_s
1108 {
1112 void* clock;
1113
1118
1123
1125
1142 typedef struct os_semaphore_s
1143 {
1148 const char* name;
1149#if !defined(OS_USE_RTOS_PORT_SEMAPHORE)
1151 void* clock;
1152#endif
1153#if defined(OS_USE_RTOS_PORT_SEMAPHORE)
1154 os_semaphore_port_data_t port;
1155#endif
1156 os_semaphore_count_t initial_count;
1158 os_semaphore_count_t max_count;
1159
1165
1166#pragma GCC diagnostic pop
1167
1172 // ==========================================================================
1173 typedef uint16_t os_mempool_size_t;
1174
1180#pragma GCC diagnostic push
1181#if defined(__clang__)
1182#pragma clang diagnostic ignored "-Wpadded"
1183#elif defined(__GNUC__)
1184#pragma GCC diagnostic ignored "-Wpadded"
1185#endif
1186
1197 typedef struct os_mempool_attr_s
1198 {
1202 void* clock;
1203
1208
1213
1215
1232 typedef struct os_mempool_s
1233 {
1238 void* vtbl;
1239 const char* name;
1240#if !defined(OS_USE_RTOS_PORT_MEMORY_POOL)
1242 void* clock;
1243#endif
1244 void* pool_addr;
1245 void* allocated_pool_addr;
1246 void* allocator;
1247#if defined(OS_USE_RTOS_PORT_MEMORY_POOL)
1248 os_mempool_port_data_t port;
1249#endif
1250 size_t pool_size_bytes;
1251 size_t allocated_pool_size_elements_;
1252 os_mempool_size_t blocks;
1253 os_mempool_size_t block_size_bytes;
1254 os_mempool_size_t count;
1255 void* first;
1256
1262
1263#pragma GCC diagnostic pop
1264
1269 // ==========================================================================
1270#if defined(OS_BOOL_RTOS_MESSAGE_QUEUE_SIZE_16BITS)
1271 typedef uint16_t os_mqueue_size_t;
1272#else
1273 typedef uint8_t os_mqueue_size_t;
1274#endif
1275
1276 typedef uint16_t os_mqueue_msg_size_t;
1278
1289 typedef uint8_t os_mqueue_prio_t;
1290
1291#pragma GCC diagnostic push
1292#if defined(__clang__)
1293#pragma clang diagnostic ignored "-Wpadded"
1294#elif defined(__GNUC__)
1295#pragma GCC diagnostic ignored "-Wpadded"
1296#endif
1297
1308 typedef struct os_mqueue_attr_s
1309 {
1313 void* clock;
1314
1319
1324
1326
1343 typedef struct os_mqueue_s
1344 {
1349 void* vtbl;
1350 const char* name;
1351#if !defined(OS_USE_RTOS_PORT_MESSAGE_QUEUE)
1354 void* clock;
1355 os_mqueue_index_t* prev_array;
1356 os_mqueue_index_t* next_array;
1357 os_mqueue_prio_t* prio_array;
1358 void* first_free;
1359#endif
1360
1361 void* queue_addr;
1362 void* allocated_queue_addr;
1363 void* allocator;
1364
1365#if defined(OS_USE_RTOS_PORT_MESSAGE_QUEUE)
1366 os_mqueue_port_data_t port;
1367#endif
1368
1369 size_t queue_size_bytes;
1370 size_t allocated_queue_size_elements;
1371
1372 os_mqueue_msg_size_t msg_size_bytes;
1373 os_mqueue_size_t msgs;
1374
1375 os_mqueue_size_t count;
1376#if !defined(OS_USE_RTOS_PORT_MESSAGE_QUEUE)
1377 os_mqueue_index_t head;
1378#endif
1379
1385
1386#pragma GCC diagnostic pop
1387
1392 // ==========================================================================
1398#pragma GCC diagnostic push
1399#if defined(__clang__)
1400#pragma clang diagnostic ignored "-Wpadded"
1401#elif defined(__GNUC__)
1402#pragma GCC diagnostic ignored "-Wpadded"
1403#endif
1404
1415 typedef struct os_evflags_attr_s
1416 {
1420 void* clock;
1421
1423
1440 typedef struct os_evflags_s
1441 {
1446 const char* name;
1447#if !defined(OS_USE_RTOS_PORT_EVENT_FLAGS)
1449 void* clock;
1450#endif
1451
1452#if defined(OS_USE_RTOS_PORT_EVENT_FLAGS)
1453 os_evflags_port_data_t port_;
1454#endif
1455
1457
1463
1464#pragma GCC diagnostic pop
1465
1470 // ==========================================================================
1484 void
1485 os_systick_handler (void);
1486
1490 void
1491 os_rtc_handler (void);
1492
1501 // ==========================================================================
1521 typedef struct os_memory_s
1522 {
1523 char dummy; // Content is not relevant.
1525
1530// ============================================================================
1531#ifdef __cplusplus
1532}
1533#endif
1534
1535// ----------------------------------------------------------------------------
1536
1537#pragma GCC diagnostic push
1538
1539// ----------------------------------------------------------------------------
1540
1541#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:37
void os_rtc_handler(void)
RTC interrupt handler.
Definition os-clocks.cpp:96
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:121
uint64_t os_statistics_counter_t
Type of variables holding context switches counters.
Definition os-c-decls.h:232
os_port_irq_state_t os_irq_state_t
Type of variables holding interrupts priority values.
Definition os-c-decls.h:171
uint32_t os_flags_mode_t
Type of variables holding flags modes.
Definition os-c-decls.h:108
os_port_scheduler_state_t os_sched_state_t
Type of variables holding scheduler state codes.
Definition os-c-decls.h:157
os_port_clock_offset_t os_clock_offset_t
Type of variables holding clock offsets.
Definition os-c-decls.h:209
void * os_iterator_t
Generic iterator, implemented as a pointer.
Definition os-c-decls.h:223
uint64_t os_statistics_duration_t
Type of variables holding durations in CPU cycles.
Definition os-c-decls.h:239
os_port_clock_duration_t os_clock_duration_t
Type of variables holding clock durations.
Definition os-c-decls.h:197
os_port_clock_timestamp_t os_clock_timestamp_t
Type of variables holding clock time stamps.
Definition os-c-decls.h:186
uint32_t os_result_t
Type of values returned by RTOS functions.
Definition os-c-decls.h:95
@ os_flags_mode_clear
Definition os-c-decls.h:132
@ os_flags_mode_all
Definition os-c-decls.h:130
@ os_flags_mode_any
Definition os-c-decls.h:131
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:842
@ os_mutex_protocol_protect
Execute at the highest priority.
Definition os-c-decls.h:847
@ os_mutex_protocol_none
Priority and scheduling not affected by mutex ownership.
Definition os-c-decls.h:837
@ os_mutex_protocol_default
Default mutex protocol.
Definition os-c-decls.h:852
@ os_mutex_type_recursive
Recursive mutex behaviour.
Definition os-c-decls.h:898
@ os_mutex_type_errorcheck
Check mutex behaviour.
Definition os-c-decls.h:893
@ os_mutex_type_default
Default mutex type.
Definition os-c-decls.h:903
@ os_mutex_type_normal
Normal mutex behaviour.
Definition os-c-decls.h:888
@ os_mutex_robustness_default
Default mutex robustness.
Definition os-c-decls.h:875
@ os_mutex_robustness_robust
Enhanced robustness at thread termination.
Definition os-c-decls.h:870
@ os_mutex_robustness_stalled
Normal robustness.
Definition os-c-decls.h:865
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:342
uint8_t os_thread_prio_t
Type of variables holding thread priorities.
Definition os-c-decls.h:363
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:376
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:349
@ os_thread_state_terminated
No longer usable, but resources not yet released.
Definition os-c-decls.h:311
@ os_thread_state_suspended
Not present in the READY list, waiting for an event.
Definition os-c-decls.h:307
@ os_thread_state_undefined
Used to catch uninitialised threads.
Definition os-c-decls.h:295
@ os_thread_state_ready
Present in the READY list and competing for CPU.
Definition os-c-decls.h:299
@ os_thread_state_initialising
Used to check reused threads.
Definition os-c-decls.h:319
@ os_thread_state_destroyed
Terminated and resources (like stack) released.
Definition os-c-decls.h:315
@ os_thread_state_running
Has the CPU and runs.
Definition os-c-decls.h:303
@ os_thread_priority_highest
Definition os-c-decls.h:280
@ os_thread_priority_isr
Definition os-c-decls.h:281
@ os_thread_priority_lowest
Definition os-c-decls.h:273
@ os_thread_priority_error
Definition os-c-decls.h:282
@ os_thread_priority_below_normal
Definition os-c-decls.h:275
@ os_thread_priority_high
Definition os-c-decls.h:278
@ os_thread_priority_none
Definition os-c-decls.h:271
@ os_thread_priority_realtime
Definition os-c-decls.h:279
@ os_thread_priority_idle
Definition os-c-decls.h:272
@ os_thread_priority_normal
Definition os-c-decls.h:276
@ os_thread_priority_low
Definition os-c-decls.h:274
@ os_thread_priority_above_normal
Definition os-c-decls.h:277
uint8_t os_timer_type_t
Type of variables holding timer types.
Definition os-c-decls.h:728
void(* os_timer_func_t)(os_timer_func_args_t args)
Type of timer function.
Definition os-c-decls.h:721
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:735
@ 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:819
os_internal_double_list_links_t os_internal_threads_waiting_list_t
Definition os-c-decls.h:61
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:818
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:256
uint8_t os_mutex_robustness_t
Definition os-c-decls.h:820
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:817
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:76
Internal event flags.
Definition os-c-decls.h:251
os_flags_mask_t flags_mask
Definition os-c-decls.h:252
os_internal_double_list_links_t links
Definition os-c-decls.h:65
os_internal_double_list_links_t links
Definition os-c-decls.h:70
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:924
os_mutex_type_t mx_type
Mutex type.
Definition os-c-decls.h:948
os_mutex_protocol_t mx_protocol
Mutex protocol.
Definition os-c-decls.h:938
os_mutex_count_t mx_max_count
Recursive mutex max count.
Definition os-c-decls.h:953
os_mutex_robustness_t mx_robustness
Mutex robustness.
Definition os-c-decls.h:943
os_thread_prio_t mx_priority_ceiling
Mutex priority ceiling.
Definition os-c-decls.h:933
void * clock
Pointer to clock object instance.
Definition os-c-decls.h:928
Mutex object storage.
Definition os-c-decls.h:974
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:755
void * clock
Pointer to clock object instance.
Definition os-c-decls.h:759
os_timer_type_t tm_type
Timer type.
Definition os-c-decls.h:764
Timer object storage.
Definition os-c-decls.h:785