xref: /aosp_15_r20/external/ltp/include/lapi/getrandom.h (revision 49cdfc7efb34551c7342be41a7384b9c40d7cab7)
1*49cdfc7eSAndroid Build Coastguard Worker // SPDX-License-Identifier: GPL-2.0-or-later
2*49cdfc7eSAndroid Build Coastguard Worker /*
3*49cdfc7eSAndroid Build Coastguard Worker  * Copyright (c) 2015 Linux Test Project
4*49cdfc7eSAndroid Build Coastguard Worker  */
5*49cdfc7eSAndroid Build Coastguard Worker 
6*49cdfc7eSAndroid Build Coastguard Worker #ifndef LAPI_GETRANDOM_H__
7*49cdfc7eSAndroid Build Coastguard Worker #define LAPI_GETRANDOM_H__
8*49cdfc7eSAndroid Build Coastguard Worker 
9*49cdfc7eSAndroid Build Coastguard Worker #include "config.h"
10*49cdfc7eSAndroid Build Coastguard Worker 
11*49cdfc7eSAndroid Build Coastguard Worker #ifdef HAVE_SYS_RANDOM_H
12*49cdfc7eSAndroid Build Coastguard Worker # include <sys/random.h>
13*49cdfc7eSAndroid Build Coastguard Worker #elif HAVE_LINUX_RANDOM_H
14*49cdfc7eSAndroid Build Coastguard Worker # include <linux/random.h>
15*49cdfc7eSAndroid Build Coastguard Worker #endif
16*49cdfc7eSAndroid Build Coastguard Worker 
17*49cdfc7eSAndroid Build Coastguard Worker #include "lapi/syscalls.h"
18*49cdfc7eSAndroid Build Coastguard Worker 
19*49cdfc7eSAndroid Build Coastguard Worker /*
20*49cdfc7eSAndroid Build Coastguard Worker  * Flags for getrandom(2)
21*49cdfc7eSAndroid Build Coastguard Worker  *
22*49cdfc7eSAndroid Build Coastguard Worker  * GRND_NONBLOCK	Don't block and return EAGAIN instead
23*49cdfc7eSAndroid Build Coastguard Worker  * GRND_RANDOM		Use the /dev/random pool instead of /dev/urandom
24*49cdfc7eSAndroid Build Coastguard Worker  */
25*49cdfc7eSAndroid Build Coastguard Worker 
26*49cdfc7eSAndroid Build Coastguard Worker #ifndef GRND_NONBLOCK
27*49cdfc7eSAndroid Build Coastguard Worker # define GRND_NONBLOCK	0x0001
28*49cdfc7eSAndroid Build Coastguard Worker #endif
29*49cdfc7eSAndroid Build Coastguard Worker 
30*49cdfc7eSAndroid Build Coastguard Worker #ifndef GRND_RANDOM
31*49cdfc7eSAndroid Build Coastguard Worker # define GRND_RANDOM	0x0002
32*49cdfc7eSAndroid Build Coastguard Worker #endif
33*49cdfc7eSAndroid Build Coastguard Worker 
34*49cdfc7eSAndroid Build Coastguard Worker #ifndef HAVE_SYS_RANDOM_H
getrandom(void * buf,size_t buflen,unsigned int flags)35*49cdfc7eSAndroid Build Coastguard Worker static inline int getrandom(void *buf, size_t buflen, unsigned int flags)
36*49cdfc7eSAndroid Build Coastguard Worker {
37*49cdfc7eSAndroid Build Coastguard Worker 	return tst_syscall(SYS_getrandom, buf, buflen, flags);
38*49cdfc7eSAndroid Build Coastguard Worker }
39*49cdfc7eSAndroid Build Coastguard Worker #endif
40*49cdfc7eSAndroid Build Coastguard Worker 
41*49cdfc7eSAndroid Build Coastguard Worker #endif /* LAPI_GETRANDOM_H__ */
42