Safe API Framework
Layered API framework for safety-related applications (ERTMS RBC reference targeting CENELEC EN 50128 SIL 4)
Toggle main menu visibility
Loading...
Searching...
No Matches
sapi_ipc_backend.h
Go to the documentation of this file.
1
15
#ifndef SAFEAPI_OS_IPC_BACKEND_H
16
#define SAFEAPI_OS_IPC_BACKEND_H
17
18
#include "
safeapi/oal/ipc/sapi_ipc.h
"
19
#include "
safeapi/utils/status/sapi_status.h
"
20
21
#ifdef __cplusplus
22
extern
"C"
{
23
#endif
24
30
typedef
struct
sapi_ipc_backend_s
31
{
33
sapi_status_t
(*
create
)(sapi_ipc_storage_t *storage,
34
const
sapi_ipc_config_t
*config,
35
sapi_ipc_handle_t
*out_handle);
37
sapi_status_t
(*
send
)(
sapi_ipc_handle_t
handle,
const
void
*message,
38
size_t
message_size,
sapi_duration_ms_t
timeout_ms);
40
sapi_status_t
(*
receive
)(
sapi_ipc_handle_t
handle,
void
*out_message,
41
size_t
buffer_size,
sapi_duration_ms_t
timeout_ms);
43
sapi_status_t
(*
destroy
)(
sapi_ipc_handle_t
handle);
44
}
sapi_ipc_backend_t
;
45
55
sapi_status_t
sapi_ipc_register_backend
(
const
sapi_ipc_backend_t
*backend);
56
57
#ifdef __cplusplus
58
}
59
#endif
60
61
#endif
/* SAFEAPI_OS_IPC_BACKEND_H */
62
/* IPC_BACKEND */
sapi_ipc_register_backend
sapi_status_t sapi_ipc_register_backend(const sapi_ipc_backend_t *backend)
Registers the backend implementation used by every sapi_ipc_* call (ADR-005 section 2....
Definition
sapi_ipc.c:25
sapi_ipc_handle_t
struct sapi_ipc_impl_s * sapi_ipc_handle_t
Opaque handle to a created IPC channel, returned by sapi_ipc_create().
Definition
sapi_ipc.h:34
sapi_status_t
sapi_status_t
Common result/status codes.
Definition
sapi_status.h:27
sapi_duration_ms_t
uint32_t sapi_duration_ms_t
Definition
sapi_types.h:27
sapi_ipc.h
OS Abstraction Layer - Inter-process/inter-task communication service.
sapi_status.h
Common status/error codes returned by every Safe API Framework function. Shared across all OS Abstrac...
sapi_ipc_backend_t
Backend vtable: an integrator's implementation of the IPC service for a specific OS/RTOS (ADR-005)....
Definition
sapi_ipc_backend.h:31
sapi_ipc_backend_t::send
sapi_status_t(*) send(sapi_ipc_handle_t handle, const void *message, size_t message_size, sapi_duration_ms_t timeout_ms)
Backend implementation of sapi_ipc_send(). May be NULL.
Definition
sapi_ipc_backend.h:37
sapi_ipc_backend_t::receive
sapi_status_t(*) receive(sapi_ipc_handle_t handle, void *out_message, size_t buffer_size, sapi_duration_ms_t timeout_ms)
Backend implementation of sapi_ipc_receive(). May be NULL.
Definition
sapi_ipc_backend.h:40
sapi_ipc_backend_t::create
sapi_status_t(*) create(sapi_ipc_storage_t *storage, const sapi_ipc_config_t *config, sapi_ipc_handle_t *out_handle)
Backend implementation of sapi_ipc_create(). May be NULL.
Definition
sapi_ipc_backend.h:33
sapi_ipc_backend_t::destroy
sapi_status_t(*) destroy(sapi_ipc_handle_t handle)
Backend implementation of sapi_ipc_destroy(). May be NULL.
Definition
sapi_ipc_backend.h:43
sapi_ipc_config_t
Configuration for sapi_ipc_create().
Definition
sapi_ipc.h:38
include
safeapi_backend
ipc
sapi_ipc_backend.h
Generated by
1.18.0