RTE OSAdapter POSIX
0.1.0 build 41b3eb3
POSIX/Linux OAL OSAdapter for Platform_RTE
Toggle main menu visibility
Loading...
Searching...
No Matches
rte_posix_osadapter_random.c
Go to the documentation of this file.
1
/* getentropy() is declared by <unistd.h> on glibc only under _DEFAULT_SOURCE; macOS declares it in <sys/random.h>. */
2
#define _DEFAULT_SOURCE
3
12
#include "
rte/posix_osadapter/rte_posix_osadapter.h
"
13
14
#include <unistd.h>
15
#if defined(__APPLE__)
16
#include <sys/random.h>
17
#endif
18
19
static
rte_status_t osadapter_fill(uint8_t *out,
size_t
len);
20
21
static
const
rte_osadapter_random_t s_posix_random_osadapter = { osadapter_fill };
22
23
const
rte_osadapter_random_t *
rte_posix_osadapter_random
(
void
)
24
{
25
return
&s_posix_random_osadapter;
26
}
27
28
static
rte_status_t osadapter_fill(uint8_t *out,
size_t
len)
29
{
30
rte_status_t status = RTE_STATUS_HARDWARE_FAULT;
31
32
if
((out != NULL) && (len > 0U) && (len <= (
size_t
)RTE_RANDOM_MAX_REQUEST))
33
{
34
if
(getentropy(out, len) == 0)
35
{
36
status = RTE_STATUS_OK;
37
}
38
}
39
else
40
{
41
status = RTE_STATUS_INVALID_PARAM;
42
}
43
return
status;
44
}
rte_posix_osadapter.h
Real POSIX/Linux OSAdapter for every OAL service (ADR-018).
rte_posix_osadapter_random
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...
Definition
rte_posix_osadapter_random.c:23
src
rte_posix_osadapter_random.c
Generated by
1.18.0