X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/1c79356b52d46aa6b508fb032f5ae709b1f2897b..0c530ab8987f0ae6a1a3d9284f40182b88852816:/bsd/libkern/random.c diff --git a/bsd/libkern/random.c b/bsd/libkern/random.c index aed1b355b..8a002af2c 100644 --- a/bsd/libkern/random.c +++ b/bsd/libkern/random.c @@ -54,15 +54,8 @@ * @(#)random.c 8.1 (Berkeley) 6/10/93 */ -/* - * Modification History - * - * Feb 22, 1999 Dieter Siegmund (dieter@apple.com) - * - the first time, set the random seed to the microsecond time value - * to make the random numbers less predictable - */ -#include -#include +#include +#include /* * Pseudo-random number generator for randomizing the profiling clock, @@ -72,32 +65,6 @@ u_long random() { - static int first = 1; - static u_long randseed = 1; - - register long x, hi, lo, t; - - if (first) { - struct timeval tv; - microtime(&tv); - randseed = tv.tv_usec; - if(!randseed) - randseed=1; - first = 0; - } - - /* - * Compute x[n + 1] = (7^5 * x[n]) mod (2^31 - 1). - * From "Random number generators: good ones are hard to find", - * Park and Miller, Communications of the ACM, vol. 31, no. 10, - * October 1988, p. 1195. - */ - x = randseed; - hi = x / 127773; - lo = x % 127773; - t = 16807 * lo - 2836 * hi; - if (t <= 0) - t += 0x7fffffff; - randseed = t; - return (t); + return RandomULong(); } +