Safe API Framework 0.1.0 build 384e6ae
Layered API framework for safety-related applications (ERTMS RBC reference targeting CENELEC EN 50128 SIL 4)
Loading...
Searching...
No Matches
rte_ipc.h File Reference

OS Abstraction Layer - Inter-process/inter-task communication service. More...

Include dependency graph for rte_ipc.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  rte_ipc_config_t
 Configuration for rte_ipc_create(). More...

Typedefs

typedef struct rte_ipc_impl_s * rte_ipc_handle_t
 Opaque handle to a created IPC channel, returned by rte_ipc_create().

Functions

 RTE_DECLARE_STORAGE (rte_ipc_storage_t, 64U)
 Caller-owned, fixed-size storage backing one rte_ipc_handle_t.
rte_status_t rte_ipc_create (rte_ipc_storage_t *storage, const rte_ipc_config_t *config, rte_ipc_handle_t *out_handle)
 Creates a bounded message channel.
rte_status_t rte_ipc_send (rte_ipc_handle_t handle, const void *message, size_t message_size, rte_duration_ms_t timeout_ms)
 Sends one message, blocking at most timeout_ms.
rte_status_t rte_ipc_receive (rte_ipc_handle_t handle, void *out_message, size_t buffer_size, rte_duration_ms_t timeout_ms)
 Receives one message, blocking at most timeout_ms.
rte_status_t rte_ipc_destroy (rte_ipc_handle_t handle)
 Destroys a message channel.

Detailed Description

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 rte_ipc.h.