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_netlink.h
Go to the documentation of this file.
1
41
#ifndef SAFEAPI_OS_NETLINK_H
42
#define SAFEAPI_OS_NETLINK_H
43
44
#include "
safeapi/utils/status/sapi_status.h
"
45
#include "
safeapi/utils/types/sapi_types.h
"
46
47
#ifdef __cplusplus
48
extern
"C"
{
49
#endif
50
52
SAFEAPI_DECLARE_STORAGE
(sapi_netlink_storage_t, 64U);
53
55
typedef
struct
sapi_netlink_impl_s *
sapi_netlink_handle_t
;
56
66
typedef
enum
sapi_netlink_role_e
67
{
68
SAPI_NETLINK_ROLE_LISTEN
= 0,
69
SAPI_NETLINK_ROLE_CONNECT
= 1
70
}
sapi_netlink_role_t
;
71
73
typedef
struct
sapi_netlink_config_s
74
{
76
sapi_netlink_role_t
role
;
80
const
char
*
host
;
82
uint16_t
port
;
84
size_t
message_size
;
87
sapi_duration_ms_t
connect_timeout_ms
;
88
}
sapi_netlink_config_t
;
89
105
sapi_status_t
sapi_netlink_open
(sapi_netlink_storage_t *storage,
106
const
sapi_netlink_config_t
*config,
107
sapi_netlink_handle_t
*out_handle);
108
124
sapi_status_t
sapi_netlink_send
(
sapi_netlink_handle_t
handle,
125
const
void
*message,
126
size_t
message_size,
127
sapi_duration_ms_t
timeout_ms);
128
145
sapi_status_t
sapi_netlink_receive
(
sapi_netlink_handle_t
handle,
146
void
*out_message,
147
size_t
buffer_size,
148
sapi_duration_ms_t
timeout_ms);
149
157
sapi_status_t
sapi_netlink_close
(
sapi_netlink_handle_t
handle);
158
159
/*
160
* The backend vtable (sapi_netlink_backend_t) and
161
* sapi_netlink_register_backend() live in
162
* safeapi_backend/netlink/sapi_netlink_backend.h, not here (ADR-021). This
163
* header is the consumer-facing surface only.
164
*/
165
166
#ifdef __cplusplus
167
}
168
#endif
169
170
#endif
/* SAFEAPI_OS_NETLINK_H */
171
/* NETLINK */
sapi_netlink_close
sapi_status_t sapi_netlink_close(sapi_netlink_handle_t handle)
Closes a link.
Definition
sapi_netlink.c:113
sapi_netlink_send
sapi_status_t sapi_netlink_send(sapi_netlink_handle_t handle, const void *message, size_t message_size, sapi_duration_ms_t timeout_ms)
Sends one fixed-size message, blocking at most timeout_ms.
Definition
sapi_netlink.c:73
sapi_netlink_handle_t
struct sapi_netlink_impl_s * sapi_netlink_handle_t
Opaque handle to an established link, returned by sapi_netlink_open().
Definition
sapi_netlink.h:55
sapi_netlink_receive
sapi_status_t sapi_netlink_receive(sapi_netlink_handle_t handle, void *out_message, size_t buffer_size, sapi_duration_ms_t timeout_ms)
Receives one fixed-size message, blocking at most timeout_ms.
Definition
sapi_netlink.c:93
sapi_netlink_role_t
sapi_netlink_role_t
Which side of the connection this link instance plays.
Definition
sapi_netlink.h:67
sapi_netlink_open
sapi_status_t sapi_netlink_open(sapi_netlink_storage_t *storage, const sapi_netlink_config_t *config, sapi_netlink_handle_t *out_handle)
Establishes a point-to-point link: binds+accepts (LISTEN) or dials (CONNECT), per config->role.
Definition
sapi_netlink.c:45
SAPI_NETLINK_ROLE_CONNECT
@ SAPI_NETLINK_ROLE_CONNECT
Definition
sapi_netlink.h:69
SAPI_NETLINK_ROLE_LISTEN
@ SAPI_NETLINK_ROLE_LISTEN
Definition
sapi_netlink.h:68
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
SAFEAPI_DECLARE_STORAGE
#define SAFEAPI_DECLARE_STORAGE(type_name, byte_size)
Declares an opaque, fixed-size, aligned storage type for a service's handle. The real internal layout...
Definition
sapi_types.h:69
sapi_status.h
Common status/error codes returned by every Safe API Framework function. Shared across all OS Abstrac...
sapi_types.h
Common fixed-width types and the caller-owned-storage handle pattern used by every OAL service (see A...
sapi_netlink_config_t
Configuration for sapi_netlink_open().
Definition
sapi_netlink.h:74
sapi_netlink_config_t::port
uint16_t port
Definition
sapi_netlink.h:82
sapi_netlink_config_t::connect_timeout_ms
sapi_duration_ms_t connect_timeout_ms
Definition
sapi_netlink.h:87
sapi_netlink_config_t::message_size
size_t message_size
Definition
sapi_netlink.h:84
sapi_netlink_config_t::role
sapi_netlink_role_t role
Definition
sapi_netlink.h:76
sapi_netlink_config_t::host
const char * host
Definition
sapi_netlink.h:80
include
safeapi
oal
netlink
sapi_netlink.h
Generated by
1.18.0