|  | 
 | #define _LARGEFILE64_SOURCE /* needed to use lseek64 */ | 
 |  | 
 | #include <stdio.h>  | 
 | #include <sys/types.h> | 
 | #include <sys/stat.h> | 
 | #include <fcntl.h> | 
 | #include <parlib/arch/arch.h> | 
 | #include <unistd.h> | 
 | #include <errno.h> | 
 | #include <dirent.h> | 
 | #include <stdlib.h> | 
 | #include <string.h> | 
 | #include <ros/syscall.h> | 
 | #include <sys/time.h> | 
 |  | 
 | int main(int argc, char *argv[])  | 
 | {  | 
 | 	int fd; | 
 | 	int i; | 
 | 	static uint32_t data[1048576]; | 
 | 	struct timeval start_tv = {0}; | 
 | 	struct timeval end_tv = {0}; | 
 | 	int usecs; | 
 | 	int amt = 4096; | 
 |  | 
 | 	if (argc > 1) | 
 | 		amt = strtol(argv[1], 0, 0); | 
 | 	if (amt > sizeof(data)) | 
 | 		printf("max amt to read is %d\n", sizeof(data)); | 
 | 	if (amt > sizeof(data)) | 
 | 		amt = sizeof(data); | 
 | 	fd = open("#cons/random", 0); | 
 | 	if (fd < 0){ | 
 | 		perror("random"); | 
 | 		exit(1); | 
 | 	} | 
 | 	if (gettimeofday(&start_tv, 0)) | 
 | 		perror("Start time error..."); | 
 | 	amt = read(fd, data, amt); | 
 | 	if (amt < 0){ | 
 | 		perror("read random"); | 
 | 		exit(1); | 
 | 	} | 
 | 	if (gettimeofday(&end_tv, 0)) | 
 | 		perror("End time error..."); | 
 | 	usecs = (end_tv.tv_sec - start_tv.tv_sec)*1000000 + (end_tv.tv_usec - start_tv.tv_usec); | 
 | 	printf("Read %d bytes of random in %d microseconds\n", amt, usecs); | 
 | 	for(i = 0; i < 4; i++) | 
 | 		printf("%08x ", data[i]); | 
 | 	printf("\n"); | 
 |  | 
 | } |