RTE OSAdapter POSIX 0.1.0 build 41b3eb3
POSIX/Linux OAL OSAdapter for Platform_RTE
Loading...
Searching...
No Matches
rte_posix_osadapter.c
Go to the documentation of this file.
1
8
10
12
14
16
18
19
22{
23 rte_status_t status;
24
25 status = rte_osadapter_timer_register(rte_posix_osadapter_timer());
26 if (status != RTE_STATUS_OK)
27 {
28 return status;
29 }
30 status = rte_osadapter_mutex_register(rte_posix_osadapter_mutex());
31 if (status != RTE_STATUS_OK)
32 {
33 return status;
34 }
35 status = rte_osadapter_ipc_register(rte_posix_osadapter_ipc());
36 if (status != RTE_STATUS_OK)
37 {
38 return status;
39 }
40 status = rte_osadapter_netlink_register(rte_posix_osadapter_netlink());
41 if (status != RTE_STATUS_OK)
42 {
43 return status;
44 }
45 status = rte_osadapter_task_register(rte_posix_osadapter_task());
46 if (status != RTE_STATUS_OK)
47 {
48 return status;
49 }
50 status = rte_osadapter_log_register(rte_posix_osadapter_log());
51 if (status != RTE_STATUS_OK)
52 {
53 return status;
54 }
55 status = rte_osadapter_nvm_register(rte_posix_osadapter_nvm());
56 if (status != RTE_STATUS_OK)
57 {
58 return status;
59 }
60 status = rte_osadapter_reboot_register(rte_posix_osadapter_reboot());
61 if (status != RTE_STATUS_OK)
62 {
63 return status;
64 }
65 /* The memory OSAdapter's pool lock is created here, at init, as a priority-inheritance mutex (OSA rule R2). */
67 if (status != RTE_STATUS_OK)
68 {
69 return status;
70 }
71 status = rte_osadapter_memory_register(rte_posix_osadapter_memory());
72 if (status != RTE_STATUS_OK)
73 {
74 return status;
75 }
76 status = rte_osadapter_platform_register(rte_posix_osadapter_platform());
77 if (status != RTE_STATUS_OK)
78 {
79 return status;
80 }
81 status = rte_osadapter_random_register(rte_posix_osadapter_random());
82 if (status != RTE_STATUS_OK)
83 {
84 return status;
85 }
86
87 /* Register OSAdapter raw socket operations */
88 status = rte_osadapter_register_socket_ops(rte_posix_osadapter_socket_ops());
89 if (status != RTE_STATUS_OK)
90 {
91 return status;
92 }
93
94 return RTE_STATUS_OK;
95}
96
Real POSIX/Linux OSAdapter for every OAL service (ADR-018).
const rte_osadapter_platform_t * rte_posix_osadapter_platform(void)
The POSIX rte_platform OSAdapter (ADR-035): real-time bring-up via mlockall() + SCHED_FIFO,...
const rte_osadapter_nvm_t * rte_posix_osadapter_nvm(void)
The POSIX rte_nvm OSAdapter (file-backed, FNV-1a-64 integrity).
rte_status_t rte_posix_osadapter_register_all(void)
Registers this file's POSIX OSAdapter with every OAL service in one call. Call once at process startu...
const rte_os_socket_ops_t * rte_posix_osadapter_socket_ops(void)
The POSIX raw OS socket operations vtable (UDP and TCP).
const rte_osadapter_mutex_t * rte_posix_osadapter_mutex(void)
The POSIX rte_mutex OSAdapter (a thin pthread_mutex_t wrapper, ADR-033).
const rte_osadapter_netlink_t * rte_posix_osadapter_netlink(void)
The POSIX rte_netlink OSAdapter (TCP sockets, LISTEN/CONNECT).
const rte_osadapter_ipc_t * rte_posix_osadapter_ipc(void)
The POSIX rte_ipc OSAdapter (pipe() per channel).
const rte_osadapter_timer_t * rte_posix_osadapter_timer(void)
The POSIX rte_timer OSAdapter (one pthread per timer).
const rte_osadapter_random_t * rte_posix_osadapter_random(void)
The POSIX rte_random OSAdapter: the kernel CSPRNG via getentropy(); fails (never falls back) if it is...
const rte_osadapter_reboot_t * rte_posix_osadapter_reboot(void)
The POSIX rte_reboot OSAdapter (execv() re-exec of the current process image, self-path resolved port...
const rte_osadapter_memory_t * rte_posix_osadapter_memory(void)
The POSIX rte_memory OSAdapter (static arena, no malloc). Its operations return RTE_STATUS_INVALID_ST...
const rte_osadapter_task_t * rte_posix_osadapter_task(void)
The POSIX rte_task OSAdapter (one pthread per task).
rte_status_t rte_posix_osadapter_memory_init(void)
Creates the memory OSAdapter's pool lock as a priority-inheritance mutex (OSA rule R2,...
const rte_osadapter_log_t * rte_posix_osadapter_log(void)
The POSIX rte_log OSAdapter (non-blocking write to stderr).