|
oveRTOS C API
Embedded RTOS framework — build system, configuration, and portable C API
|
Backend-specific opaque storage types and static-allocation macros. More...

Modules | |
| Heap Gates | |
Preprocessor flags indicating which heap-backed _create()/ are compiled. | |
| OVE_*_DEFINE Macros | |
| File-scope static storage object declarations. | |
| OVE_*_DEFINE_STATIC Macros | |
| One-step static primitive declaration with automatic initialisation. | |
Macros | |
| #define | OVE_STATIC_INIT_ASSERT(cond) assert(cond) |
| Assertion macro used by static constructor macros on init failure. | |
Backend-specific opaque storage types and static-allocation macros.
This header selects the correct backend storage header and exposes:
ove_*_storage_t) — raw byte arrays with the correct size and alignment for each backend's primitive. Use these with _init() functions for zero-heap (static) allocation.OVE_*_DEFINE() macros — file-scope convenience wrappers that declare a named storage object of the correct type.OVE_*_DEFINE_STATIC() macros — one-step primitives that declare a handle, allocate static storage, and register a C constructor that initialises the handle before main(). In heap mode they call the corresponding _create() function instead.CONFIG_OVE_RTOS_* defines. Foreign-language toolchains use alternate selection logic:__BINDGEN__ (Rust bindgen): uses exact build-time sizes from storage_sizes.h generated by ove_rust.cmake.__ZIG_CIMPORT__ (Zig @cImport): uses either exact build-time sizes from zig_storage_sizes.h (zero-heap) or minimal 1-byte opaque types (heap mode).CONFIG_OVE_ZERO_HEAP) the OVE_HEAP_* gates are not defined, so no heap-backed _create()/_destroy() functions are compiled. However, each module provides macros with the same _create()/_destroy() names that generate per-call-site static storage, giving a unified API in both modes. | #define OVE_STATIC_INIT_ASSERT | ( | cond | ) | assert(cond) |
Assertion macro used by static constructor macros on init failure.
Defaults to assert(). Define OVE_STATIC_INIT_ASSERT before including any oveRTOS header to override with a custom handler (e.g. a board-specific panic routine).