zephyr/subsys/random/rand32_handlers.c
Flavio Ceolin 6216c6cf5b random: Add syscalls for random subsystem
Create syscalls to make possible using random APIs from user mode
threads. These APIs can have different implementations, like using
entropy driver or Xoroshiro128. Some of these implementations also have
some globals to preserve state between calls.

Make it run entire in user space would require user adding these globals
to their memeory domains and/or grant access to entropy device. Syscalls
simplify its usage.

Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
2020-07-08 21:05:36 -04:00

34 lines
709 B
C

/*
* Copyright (c) 2020 Intel Corporation
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <random/rand32.h>
#include <syscall_handler.h>
static inline uint32_t z_vrfy_sys_rand32_get(void)
{
return z_impl_sys_rand32_get();
}
#include <syscalls/sys_rand32_get_mrsh.c>
static inline void z_vrfy_sys_rand_get(void *dst, size_t len)
{
Z_OOPS(Z_SYSCALL_MEMORY_WRITE(dst, len));
z_impl_sys_rand_get(dst, len);
}
#include <syscalls/sys_rand_get_mrsh.c>
#if defined(CONFIG_CTR_DRBG_CSPRNG_GENERATOR)
static inline int z_vrfy_sys_csrand_get(void *dst, size_t len)
{
Z_OOPS(Z_SYSCALL_MEMORY_WRITE(dst, len));
return z_impl_sys_csrand_get(dst, len);
}
#include <syscalls/sys_csrand_get_mrsh.c>
#endif