Mercurial > hg > Members > kono > Cerium
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(); |