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 Workerstatic 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