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_netlink.h
Go to the documentation of this file.
1
44
#ifndef RTE_OS_NETLINK_H
45
#define RTE_OS_NETLINK_H
46
47
#include "
rte/utils/status/rte_status.h
"
48
#include "
rte/utils/types/rte_types.h
"
49
50
#ifdef __cplusplus
51
extern
"C"
{
52
#endif
53
55
RTE_DECLARE_STORAGE
(rte_netlink_storage_t, 64U);
56
58
typedef
struct
rte_netlink_impl_s *
rte_netlink_handle_t
;
59
69
typedef
enum
rte_netlink_role_e
70
{
71
RTE_NETLINK_ROLE_LISTEN
= 0,
72
RTE_NETLINK_ROLE_CONNECT
= 1
73
}
rte_netlink_role_t
;
74
76
typedef
struct
rte_netlink_config_s
77
{
79
rte_netlink_role_t
role
;
83
const
char
*
host
;
85
uint16_t
port
;
87
size_t
message_size
;
90
rte_duration_ms_t
connect_timeout_ms
;
98
uint32_t
rcvbuf_bytes
;
101
uint32_t
sndbuf_bytes
;
102
}
rte_netlink_config_t
;
103
123
rte_status_t
rte_netlink_open
(rte_netlink_storage_t *storage,
124
const
rte_netlink_config_t
*config,
125
rte_netlink_handle_t
*out_handle);
126
142
rte_status_t
rte_netlink_send
(
rte_netlink_handle_t
handle,
143
const
void
*message,
144
size_t
message_size,
145
rte_duration_ms_t
timeout_ms);
146
163
rte_status_t
rte_netlink_receive
(
rte_netlink_handle_t
handle,
164
void
*out_message,
165
size_t
buffer_size,
166
rte_duration_ms_t
timeout_ms);
167
175
rte_status_t
rte_netlink_close
(
rte_netlink_handle_t
handle);
176
177
/*
178
* The OSAdapter vtable (rte_osadapter_netlink_t) and
179
* rte_osadapter_netlink_register() live in
180
* rte_osadapter/netlink/rte_osadapter_netlink.h, not here (ADR-021). This
181
* header is the consumer-facing surface only.
182
*/
183
184
#ifdef __cplusplus
185
}
186
#endif
187
188
#endif
/* RTE_OS_NETLINK_H */
189
/* NETLINK */
rte_netlink_role_t
rte_netlink_role_t
Which side of the connection this link instance plays.
Definition
rte_netlink.h:70
rte_netlink_handle_t
struct rte_netlink_impl_s * rte_netlink_handle_t
Opaque handle to an established link, returned by rte_netlink_open().
Definition
rte_netlink.h:58
rte_netlink_open
rte_status_t rte_netlink_open(rte_netlink_storage_t *storage, const rte_netlink_config_t *config, rte_netlink_handle_t *out_handle)
Establishes a point-to-point link: binds+accepts (LISTEN) or dials (CONNECT), per config->role.
Definition
rte_netlink.c:45
rte_netlink_close
rte_status_t rte_netlink_close(rte_netlink_handle_t handle)
Closes a link.
Definition
rte_netlink.c:113
rte_netlink_send
rte_status_t rte_netlink_send(rte_netlink_handle_t handle, const void *message, size_t message_size, rte_duration_ms_t timeout_ms)
Sends one fixed-size message, blocking at most timeout_ms.
Definition
rte_netlink.c:73
rte_netlink_receive
rte_status_t rte_netlink_receive(rte_netlink_handle_t handle, void *out_message, size_t buffer_size, rte_duration_ms_t timeout_ms)
Receives one fixed-size message, blocking at most timeout_ms.
Definition
rte_netlink.c:93
RTE_NETLINK_ROLE_CONNECT
@ RTE_NETLINK_ROLE_CONNECT
Definition
rte_netlink.h:72
RTE_NETLINK_ROLE_LISTEN
@ RTE_NETLINK_ROLE_LISTEN
Definition
rte_netlink.h:71
rte_status_t
rte_status_t
Common result/status codes.
Definition
rte_status.h:27
RTE_DECLARE_STORAGE
#define RTE_DECLARE_STORAGE(type_name, byte_size)
Declares an opaque, fixed-size, aligned storage type for a service's handle. The real internal layout...
Definition
rte_types.h:69
rte_duration_ms_t
uint32_t rte_duration_ms_t
Definition
rte_types.h:27
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_netlink_config_t
Configuration for rte_netlink_open().
Definition
rte_netlink.h:77
rte_netlink_config_t::sndbuf_bytes
uint32_t sndbuf_bytes
Definition
rte_netlink.h:101
rte_netlink_config_t::connect_timeout_ms
rte_duration_ms_t connect_timeout_ms
Definition
rte_netlink.h:90
rte_netlink_config_t::rcvbuf_bytes
uint32_t rcvbuf_bytes
Definition
rte_netlink.h:98
rte_netlink_config_t::message_size
size_t message_size
Definition
rte_netlink.h:87
rte_netlink_config_t::host
const char * host
Definition
rte_netlink.h:83
rte_netlink_config_t::port
uint16_t port
Definition
rte_netlink.h:85
rte_netlink_config_t::role
rte_netlink_role_t role
Definition
rte_netlink.h:79
include
rte
oal
netlink
rte_netlink.h
Generated by
1.18.0