Safe API Framework
0.1.0 build 384e6ae
Layered API framework for safety-related applications (ERTMS RBC reference targeting CENELEC EN 50128 SIL 4)
Toggle main menu visibility
Loading...
Searching...
No Matches
rte_channel_service.h
Go to the documentation of this file.
1
#ifndef RTE_CHANNEL_SERVICE_H
2
#define RTE_CHANNEL_SERVICE_H
3
13
14
#include <stddef.h>
15
#include <stdint.h>
16
17
#include "
rte/utils/status/rte_status.h
"
18
#include "
rte/utils/types/rte_types.h
"
19
20
#ifdef __cplusplus
21
extern
"C"
{
22
#endif
23
24
#define RTE_CHANNEL_SERVICE_NAME_SIZE (32U)
25
27
typedef
struct
28
{
29
uint8_t reserved[128U];
30
}
rte_channel_service_storage_t
;
31
33
typedef
rte_channel_service_storage_t
rte_channel_service_t
;
34
42
typedef
struct
43
{
44
rte_status_t
(*setup)(
rte_channel_service_storage_t
*storage,
45
const
char
*channel_name);
46
rte_status_t
(*read)(
rte_channel_service_storage_t
*storage,
47
void
*data,
48
size_t
data_size,
49
rte_duration_ms_t
timeout_ms);
62
rte_status_t
(*
send
)(
rte_channel_service_storage_t
*storage,
63
const
void
*data,
64
size_t
data_size,
65
rte_duration_ms_t
timeout_ms);
66
rte_status_t
(*close)(
rte_channel_service_storage_t
*storage);
74
rte_status_t
(*
read_ex
)(
rte_channel_service_storage_t
*storage,
75
void
*data,
76
size_t
data_size,
77
rte_duration_ms_t
timeout_ms,
78
size_t
*out_actual_size);
79
}
rte_osadapter_channel_service_t
;
80
85
rte_status_t
rte_osadapter_channel_service_register
(
const
rte_osadapter_channel_service_t
*osadapter);
86
87
rte_status_t
rte_channel_service_setup(
rte_channel_service_t
*storage,
const
char
*channel_name);
88
rte_status_t
rte_channel_service_setup_by_id(
rte_channel_service_t
*storage, uint32_t channel_id);
89
rte_status_t
rte_channel_service_read(
rte_channel_service_t
*storage,
90
void
*data,
91
size_t
data_size,
92
rte_duration_ms_t
timeout_ms);
103
rte_status_t
rte_channel_service_read_ex
(
rte_channel_service_t
*storage,
104
void
*data,
105
size_t
data_size,
106
rte_duration_ms_t
timeout_ms,
107
size_t
*out_actual_size);
120
rte_status_t
rte_channel_service_send
(
rte_channel_service_t
*storage,
121
const
void
*data,
122
size_t
data_size,
123
rte_duration_ms_t
timeout_ms);
124
rte_status_t
rte_channel_service_close(
rte_channel_service_t
*storage);
125
126
#ifdef __cplusplus
127
}
128
#endif
129
130
#endif
rte_status_t
rte_status_t
Common result/status codes.
Definition
rte_status.h:27
rte_duration_ms_t
uint32_t rte_duration_ms_t
Definition
rte_types.h:27
rte_channel_service_send
rte_status_t rte_channel_service_send(rte_channel_service_t *storage, const void *data, size_t data_size, rte_duration_ms_t timeout_ms)
Sends data_size bytes of data on the named channel in storage through the registered OSAdapter's send...
Definition
rte_channel_service.c:130
rte_channel_service_t
rte_channel_service_storage_t rte_channel_service_t
Opaque handle to a named channel service instance.
Definition
rte_channel_service.h:33
rte_channel_service_read_ex
rte_status_t rte_channel_service_read_ex(rte_channel_service_t *storage, void *data, size_t data_size, rte_duration_ms_t timeout_ms, size_t *out_actual_size)
Same as rte_channel_service_read, but also reports the actual number of bytes received into data (nev...
Definition
rte_channel_service.c:99
rte_osadapter_channel_service_register
rte_status_t rte_osadapter_channel_service_register(const rte_osadapter_channel_service_t *osadapter)
Registers the OSAdapter that implements named channels (ADR-005).
Definition
rte_channel_service.c:22
rte_status.h
Common status/error codes returned by every Safe API Framework function. Shared across all OS Abstrac...
rte_types.h
Common fixed-width types and the caller-owned-storage handle pattern used by every OAL service (see A...
rte_channel_service_storage_t
Caller-owned storage for one named channel service instance.
Definition
rte_channel_service.h:28
rte_osadapter_channel_service_t
OSAdapter implementation for named channel operations.
Definition
rte_channel_service.h:43
rte_osadapter_channel_service_t::send
rte_status_t(*) send(rte_channel_service_storage_t *storage, const void *data, size_t data_size, rte_duration_ms_t timeout_ms)
Sends data_size bytes of data on the channel set up in storage, within timeout_ms.
Definition
rte_channel_service.h:62
rte_osadapter_channel_service_t::read_ex
rte_status_t(*) read_ex(rte_channel_service_storage_t *storage, void *data, size_t data_size, rte_duration_ms_t timeout_ms, size_t *out_actual_size)
Optional: same as read, but also reports the true number of bytes the transport actually received (a ...
Definition
rte_channel_service.h:74
include
rte
redundancy
channel_service
rte_channel_service.h
Generated by
1.18.0