|
Safe API Framework
Layered API framework for safety-related applications (ERTMS RBC reference targeting CENELEC EN 50128 SIL 4)
|
OS Abstraction Layer - Inter-process/inter-task communication service. More...
Go to the source code of this file.
Data Structures | |
| struct | sapi_ipc_config_t |
| Configuration for sapi_ipc_create(). More... | |
Typedefs | |
| typedef struct sapi_ipc_impl_s * | sapi_ipc_handle_t |
| Opaque handle to a created IPC channel, returned by sapi_ipc_create(). | |
Functions | |
| SAFEAPI_DECLARE_STORAGE (sapi_ipc_storage_t, 64U) | |
| Caller-owned, fixed-size storage backing one sapi_ipc_handle_t. | |
| sapi_status_t | sapi_ipc_create (sapi_ipc_storage_t *storage, const sapi_ipc_config_t *config, sapi_ipc_handle_t *out_handle) |
| Creates a bounded message channel. | |
| sapi_status_t | sapi_ipc_send (sapi_ipc_handle_t handle, const void *message, size_t message_size, sapi_duration_ms_t timeout_ms) |
| Sends one message, blocking at most timeout_ms. | |
| sapi_status_t | sapi_ipc_receive (sapi_ipc_handle_t handle, void *out_message, size_t buffer_size, sapi_duration_ms_t timeout_ms) |
| Receives one message, blocking at most timeout_ms. | |
| sapi_status_t | sapi_ipc_destroy (sapi_ipc_handle_t handle) |
| Destroys a message channel. | |
OS Abstraction Layer - Inter-process/inter-task communication service.
Bounded message queues/channels between safety tasks. Intended as the transport underneath a future L1 safety communication layer (sequence numbers, timeouts, authentication per EN 50159) - those defenses are out of scope here; this service only guarantees bounded, non-corrupting transport of fixed-size messages. See ADR-001.
REQ-OAL-IPC-001: queues are bounded and statically sized at creation; no unbounded growth. REQ-OAL-IPC-002: send/receive shall accept an explicit timeout and shall never block indefinitely by default.
Definition in file sapi_ipc.h.