oveRTOS C API
Embedded RTOS framework — build system, configuration, and portable C API
Loading...
Searching...
No Matches
Modules | Macros
Storage Types

Backend-specific opaque storage types and static-allocation macros. More...

Collaboration diagram for Storage Types:

Modules

 Heap Gates
 Preprocessor flags indicating which heap-backed _create()/_destroy() functions 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.
 

Detailed Description

Backend-specific opaque storage types and static-allocation macros.

This header selects the correct backend storage header and exposes:

Backend selection
The correct backend header is chosen at build time via the 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).
Note
In zero-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.

Macro Definition Documentation

◆ OVE_STATIC_INIT_ASSERT

#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).