Safe API Framework 0.1.0 build 384e6ae
Layered API framework for safety-related applications (ERTMS RBC reference targeting CENELEC EN 50128 SIL 4)
Loading...
Searching...
No Matches
rte_osadapter.c
Go to the documentation of this file.
1
7
9
10static const rte_os_socket_ops_t *s_socket_ops = NULL;
11
13{
14 if (ops == NULL)
15 {
17 }
18 s_socket_ops = ops;
19 return RTE_STATUS_OK;
20}
21
23{
24 return s_socket_ops;
25}
26
28{
30
31 if (bundle == NULL)
32 {
34 }
35
36 if (bundle->memory != NULL)
37 {
38 status = rte_osadapter_memory_register(bundle->memory);
39 if (status != RTE_STATUS_OK) { return status; }
40 }
41 if (bundle->clocksync != NULL)
42 {
43 status = rte_osadapter_clocksync_register(bundle->clocksync);
44 if (status != RTE_STATUS_OK) { return status; }
45 }
46 if (bundle->timer != NULL)
47 {
48 status = rte_osadapter_timer_register(bundle->timer);
49 if (status != RTE_STATUS_OK) { return status; }
50 }
51 if (bundle->mutex != NULL)
52 {
53 status = rte_osadapter_mutex_register(bundle->mutex);
54 if (status != RTE_STATUS_OK) { return status; }
55 }
56 if (bundle->task != NULL)
57 {
58 status = rte_osadapter_task_register(bundle->task);
59 if (status != RTE_STATUS_OK) { return status; }
60 }
61 if (bundle->log != NULL)
62 {
63 status = rte_osadapter_log_register(bundle->log);
64 if (status != RTE_STATUS_OK) { return status; }
65 }
66 if (bundle->nvm != NULL)
67 {
68 status = rte_osadapter_nvm_register(bundle->nvm);
69 if (status != RTE_STATUS_OK) { return status; }
70 }
71 if (bundle->platform != NULL)
72 {
73 status = rte_osadapter_platform_register(bundle->platform);
74 if (status != RTE_STATUS_OK) { return status; }
75 }
76 if (bundle->reboot != NULL)
77 {
78 status = rte_osadapter_reboot_register(bundle->reboot);
79 if (status != RTE_STATUS_OK) { return status; }
80 }
81 if (bundle->ipc != NULL)
82 {
83 status = rte_osadapter_ipc_register(bundle->ipc);
84 if (status != RTE_STATUS_OK) { return status; }
85 }
86 if (bundle->netlink != NULL)
87 {
88 status = rte_osadapter_netlink_register(bundle->netlink);
89 if (status != RTE_STATUS_OK) { return status; }
90 }
91 if (bundle->flow != NULL)
92 {
93 status = rte_osadapter_flow_register(bundle->flow);
94 if (status != RTE_STATUS_OK) { return status; }
95 }
96 if (bundle->sockets != NULL)
97 {
98 status = rte_osadapter_register_socket_ops(bundle->sockets);
99 if (status != RTE_STATUS_OK) { return status; }
100 }
101 if (bundle->random != NULL)
102 {
103 status = rte_osadapter_random_register(bundle->random);
104 if (status != RTE_STATUS_OK) { return status; }
105 }
106 if (bundle->fsou != NULL)
107 {
108 /* REQ-FSOU-001: optional seam (ADR-041), registered only when non-NULL; NULL = build without an FSOU. */
109 status = rte_osadapter_fsou_register(bundle->fsou);
110 if (status != RTE_STATUS_OK) { return status; }
111 }
112
113 return RTE_STATUS_OK;
114}
115
const rte_os_socket_ops_t * rte_osadapter_get_socket_ops(void)
Retrieves the active OSAdapter's raw socket operations.
rte_status_t rte_osadapter_register_socket_ops(const rte_os_socket_ops_t *ops)
Registers the active OSAdapter's raw socket operations.
rte_status_t
Common result/status codes.
Definition rte_status.h:27
@ RTE_STATUS_OK
Definition rte_status.h:28
@ RTE_STATUS_INVALID_PARAM
Definition rte_status.h:29
OS Abstraction Layer - Master OSAdapter Interface.
rte_status_t rte_osadapter_register_all(const rte_osadapter_bundle_t *bundle)
Registers all OSAdapter interfaces at once from an OSAdapter bundle.
rte_status_t rte_osadapter_clocksync_register(const rte_osadapter_clocksync_t *adapter)
Registers the OSAdapter clock synchronization implementation.
rte_status_t rte_osadapter_flow_register(const rte_osadapter_flow_t *adapter)
Registers the OSAdapter Flow implementation.
Definition rte_flow.c:39
rte_status_t rte_osadapter_fsou_register(const rte_osadapter_fsou_t *adapter)
Registers the OSAdapter FSOU implementation (REQ-FSOU-001).
Definition rte_fsou.c:29
rte_status_t rte_osadapter_ipc_register(const rte_osadapter_ipc_t *adapter)
Registers the OSAdapter IPC implementation.
Definition rte_ipc.c:25
rte_status_t rte_osadapter_log_register(const rte_osadapter_log_t *adapter)
Registers the OSAdapter log implementation.
Definition rte_log.c:80
rte_status_t rte_osadapter_memory_register(const rte_osadapter_memory_t *adapter)
Registers the OSAdapter memory implementation.
Definition rte_memory.c:25
rte_status_t rte_osadapter_mutex_register(const rte_osadapter_mutex_t *adapter)
Registers the OSAdapter mutex implementation.
Definition rte_mutex.c:25
rte_status_t rte_osadapter_nvm_register(const rte_osadapter_nvm_t *adapter)
Registers the OSAdapter NVM implementation.
Definition rte_nvm.c:25
rte_status_t rte_osadapter_platform_register(const rte_osadapter_platform_t *adapter)
Registers the OSAdapter platform implementation.
rte_status_t rte_osadapter_random_register(const rte_osadapter_random_t *adapter)
Registers the OSAdapter random implementation.
Definition rte_random.c:16
rte_status_t rte_osadapter_reboot_register(const rte_osadapter_reboot_t *adapter)
Registers the OSAdapter reboot implementation.
Definition rte_reboot.c:25
rte_status_t rte_osadapter_task_register(const rte_osadapter_task_t *adapter)
Registers the OSAdapter task implementation.
Definition rte_task.c:25
rte_status_t rte_osadapter_timer_register(const rte_osadapter_timer_t *adapter)
Registers the OSAdapter timer implementation.
Definition rte_timer.c:25
Vtable of low-level OS socket operations implemented by an OSAdapter.
Comprehensive bundle of all OSAdapter vtables for a platform.
const rte_osadapter_fsou_t * fsou