comparison TaskManager/kernel/ppe/Random.cc @ 370:4435c9990988

change TaskManger & memory/* & Random
author aaa
date Wed, 29 Jul 2009 15:09:36 +0900
parents 2b114977852d
children
comparison
equal deleted inserted replaced
369:03ae2929c931 370:4435c9990988
1 #include <stdio.h> 1 #include <stdio.h>
2 #include <stdlib.h> 2 #include <stdlib.h>
3 #include <sys/time.h> 3 #include <sys/time.h>
4 #include "Random.h" 4 #include "Random.h"
5 #define HAS_SRANDOMDEV 1
5 6
6 /** 7 /**
7 * /dev/urandom, random から取得した値を seed として使う 8 * /dev/urandom, random から取得した値を seed として使う
8 */ 9 */
9 Random::Random(void) 10 Random::Random(void)
20 } 21 }
21 22
22 void 23 void
23 Random::reset(void) 24 Random::reset(void)
24 { 25 {
26 #if HAS_SRANDOMDEV
25 FILE *fp; 27 FILE *fp;
26 unsigned int seed; 28 unsigned int seed;
27 struct timeval tv; 29 struct timeval tv;
28 30
29 fp = fopen("/dev/urandom", "r"); 31 fp = fopen("/dev/urandom", "r");
43 } else { 45 } else {
44 fclose(fp); 46 fclose(fp);
45 } 47 }
46 48
47 srandom(seed); 49 srandom(seed);
50 #else
51 srandomdev();
52 #endif
48 } 53 }
54
55 /*!
56 1 から 2^(32-1) のランダムな数値を返す。
57 */
49 58
50 int 59 int
51 Random::getData(void) 60 Random::getData(void)
52 { 61 {
53 return random(); 62 return random();