xref: /openbmc/linux/arch/um/include/asm/archrandom.h (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
10b9ba613SJason A. Donenfeld /* SPDX-License-Identifier: GPL-2.0 */
20b9ba613SJason A. Donenfeld #ifndef __ASM_UM_ARCHRANDOM_H__
30b9ba613SJason A. Donenfeld #define __ASM_UM_ARCHRANDOM_H__
40b9ba613SJason A. Donenfeld 
50b9ba613SJason A. Donenfeld #include <linux/types.h>
60b9ba613SJason A. Donenfeld 
70b9ba613SJason A. Donenfeld /* This is from <os.h>, but better not to #include that in a global header here. */
80b9ba613SJason A. Donenfeld ssize_t os_getrandom(void *buf, size_t len, unsigned int flags);
90b9ba613SJason A. Donenfeld 
arch_get_random_longs(unsigned long * v,size_t max_longs)10*d349ab99SJason A. Donenfeld static inline size_t __must_check arch_get_random_longs(unsigned long *v, size_t max_longs)
110b9ba613SJason A. Donenfeld {
12*d349ab99SJason A. Donenfeld 	ssize_t ret;
13*d349ab99SJason A. Donenfeld 
14*d349ab99SJason A. Donenfeld 	ret = os_getrandom(v, max_longs * sizeof(*v), 0);
15*d349ab99SJason A. Donenfeld 	if (ret < 0)
16*d349ab99SJason A. Donenfeld 		return 0;
17*d349ab99SJason A. Donenfeld 	return ret / sizeof(*v);
180b9ba613SJason A. Donenfeld }
190b9ba613SJason A. Donenfeld 
arch_get_random_seed_longs(unsigned long * v,size_t max_longs)20*d349ab99SJason A. Donenfeld static inline size_t __must_check arch_get_random_seed_longs(unsigned long *v, size_t max_longs)
210b9ba613SJason A. Donenfeld {
22*d349ab99SJason A. Donenfeld 	return 0;
230b9ba613SJason A. Donenfeld }
240b9ba613SJason A. Donenfeld 
250b9ba613SJason A. Donenfeld #endif
26