|
Safe API Framework 0.1.0 build 384e6ae
Layered API framework for safety-related applications (ERTMS RBC reference targeting CENELEC EN 50128 SIL 4)
|
Bounded message queues between safety tasks (ADR-001). More...
Files | |
| file | include/rte/oal/ipc/rte_ipc_pubsub.h |
| IPC Publish-Subscribe Pattern (one-to-many broadcasting). | |
| file | include/rte/oal/ipc/rte_ipc_request_reply.h |
| IPC Request-Reply Pattern (RPC-style communication). | |
| file | src/oal/ipc/rte_ipc.c |
| IPC service: validates parameters, then dispatches to the OSAdapter registered via rte_osadapter_ipc_register() (ADR-005). | |
| file | src/oal/ipc/rte_ipc_pubsub.c |
| IPC Publish-Subscribe implementation. | |
| file | src/oal/ipc/rte_ipc_request_reply.c |
| IPC Request-Reply implementation. | |
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. | |
Bounded message queues between safety tasks (ADR-001).
| typedef struct rte_ipc_impl_s* rte_ipc_handle_t |
Opaque handle to a created IPC channel, returned by rte_ipc_create().
| 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.
| storage | Caller-owned storage for the handle's state. Must not be NULL. |
| config | Channel configuration. Must not be NULL; config->message_size and config->queue_depth must both be > 0. |
| out_handle | Receives the created channel's handle. Must not be NULL. |
| 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.
| handle | Channel handle. Must not be NULL. |
| message | Message data to send. Must not be NULL. |
| message_size | Size of message in bytes; must be > 0. |
| timeout_ms | Maximum time to wait for queue space. |
| 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.
| handle | Channel handle. Must not be NULL. |
| out_message | Destination buffer. Must not be NULL. |
| buffer_size | Usable size of out_message in bytes; must be > 0. |
| timeout_ms | Maximum time to wait for a message to arrive. |
| rte_status_t rte_ipc_destroy | ( | rte_ipc_handle_t | handle | ) |
Destroys a message channel.
| handle | Channel handle. Must not be NULL. Invalid to use after this call. |