xref: /OK3568_Linux_fs/kernel/tools/testing/selftests/bpf/urandom_read.c (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun #include <stdio.h>
2*4882a593Smuzhiyun #include <unistd.h>
3*4882a593Smuzhiyun #include <sys/types.h>
4*4882a593Smuzhiyun #include <sys/stat.h>
5*4882a593Smuzhiyun #include <fcntl.h>
6*4882a593Smuzhiyun #include <stdlib.h>
7*4882a593Smuzhiyun 
8*4882a593Smuzhiyun #define BUF_SIZE 256
9*4882a593Smuzhiyun 
10*4882a593Smuzhiyun static __attribute__((noinline))
urandom_read(int fd,int count)11*4882a593Smuzhiyun void urandom_read(int fd, int count)
12*4882a593Smuzhiyun {
13*4882a593Smuzhiyun        char buf[BUF_SIZE];
14*4882a593Smuzhiyun        int i;
15*4882a593Smuzhiyun 
16*4882a593Smuzhiyun        for (i = 0; i < count; ++i)
17*4882a593Smuzhiyun                read(fd, buf, BUF_SIZE);
18*4882a593Smuzhiyun }
19*4882a593Smuzhiyun 
main(int argc,char * argv[])20*4882a593Smuzhiyun int main(int argc, char *argv[])
21*4882a593Smuzhiyun {
22*4882a593Smuzhiyun 	int fd = open("/dev/urandom", O_RDONLY);
23*4882a593Smuzhiyun 	int count = 4;
24*4882a593Smuzhiyun 
25*4882a593Smuzhiyun 	if (fd < 0)
26*4882a593Smuzhiyun 		return 1;
27*4882a593Smuzhiyun 
28*4882a593Smuzhiyun 	if (argc == 2)
29*4882a593Smuzhiyun 		count = atoi(argv[1]);
30*4882a593Smuzhiyun 
31*4882a593Smuzhiyun 	urandom_read(fd, count);
32*4882a593Smuzhiyun 
33*4882a593Smuzhiyun 	close(fd);
34*4882a593Smuzhiyun 	return 0;
35*4882a593Smuzhiyun }
36