X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=libiberty%2Frandom.c;h=b1d3c6c6ae442b714f9339464fd75877e937cfee;hb=f5e42cf786d650a883aa2fc1f9aea2e7c69f228f;hp=ef00da0a5ae2ffcd4d5ce925a2217c5d5c603d56;hpb=7202ac7d7b406801f670b78b832cee61ab5b1fcd;p=pf3gnuchains%2Fgcc-fork.git diff --git a/libiberty/random.c b/libiberty/random.c index ef00da0a5ae..b1d3c6c6ae4 100644 --- a/libiberty/random.c +++ b/libiberty/random.c @@ -34,6 +34,25 @@ * It was reworked for the GNU C Library by Roland McGrath. */ +/* + +@deftypefn Supplement {long int} random (void) +@deftypefnx Supplement void srandom (unsigned int @var{seed}) +@deftypefnx Supplement void* initstate (unsigned int @var{seed}, @ + void *@var{arg_state}, unsigned long @var{n}) +@deftypefnx Supplement void* setstate (void *@var{arg_state}) + +Random number functions. @code{random} returns a random number in the +range 0 to @code{LONG_MAX}. @code{srandom} initializes the random +number generator to some starting point determined by @var{seed} +(else, the values returned by @code{random} are always the same for each +run of the program). @code{initstate} and @code{setstate} allow fine-grained +control over the state of the random number generator. + +@end deftypefn + +*/ + #include #if 0 @@ -62,7 +81,7 @@ #endif -long int random (); +long int random (void); /* An improved random number generation package. In addition to the standard rand()/srand() like interface, this package also has a special state info @@ -209,8 +228,7 @@ static long int *end_ptr = &randtbl[sizeof(randtbl) / sizeof(randtbl[0])]; introduced by the L.C.R.N.G. Note that the initialization of randtbl[] for default usage relies on values produced by this routine. */ void -srandom (x) - unsigned int x; +srandom (unsigned int x) { state[0] = x; if (rand_type != TYPE_0) @@ -237,10 +255,7 @@ srandom (x) setstate so that it doesn't matter when initstate is called. Returns a pointer to the old state. */ PTR -initstate (seed, arg_state, n) - unsigned int seed; - PTR arg_state; - unsigned long n; +initstate (unsigned int seed, PTR arg_state, unsigned long n) { PTR ostate = (PTR) &state[-1]; @@ -306,8 +321,7 @@ initstate (seed, arg_state, n) Returns a pointer to the old state information. */ PTR -setstate (arg_state) - PTR arg_state; +setstate (PTR arg_state) { register long int *new_state = (long int *) arg_state; register int type = new_state[0] % MAX_TYPES; @@ -360,7 +374,7 @@ setstate (arg_state) pointer if the front one has wrapped. Returns a 31-bit random number. */ long int -random () +random (void) { if (rand_type == TYPE_0) {