software/libbase: srand and RAND_MAX
authorSebastien Bourdeauducq <sebastien@milkymist.org>
Fri, 25 May 2012 16:57:23 +0000 (18:57 +0200)
committerSebastien Bourdeauducq <sebastien@milkymist.org>
Fri, 25 May 2012 16:57:23 +0000 (18:57 +0200)
software/include/base/stdlib.h
software/libbase/libc.c

index 685cc5a61d6871663863db47c84b9e98de7716d7..cea677d50c97f0fee6deeee85854c426b99f7a4a 100644 (file)
@@ -49,7 +49,10 @@ char *number(char *buf, char *end, unsigned long num, int base, int size, int pr
 long strtol(const char *nptr, char **endptr, int base);
 float atof(const char *s);
 
+#define   RAND_MAX        2147483647
+
 unsigned int rand(void);
+void srand(unsigned int seed);
 void abort(void);
 
 #endif /* __STDLIB_H */
index 565927a5a9c4c51b0cc83c11a2544f51d53a5984..18b7f90a8838aefa3c343c8b1e8baa12675f0ea6 100644 (file)
@@ -563,11 +563,16 @@ int sprintf(char * buf, const char *fmt, ...)
  * rand - Returns a pseudo random number
  */
 
-static unsigned int seed;
+static unsigned int randseed;
 unsigned int rand(void)
 {
-       seed = 129 * seed + 907633385;
-       return seed;
+       randseed = 129 * randseed + 907633385;
+       return randseed;
+}
+
+void srand(unsigned int seed)
+{
+       randseed = seed;
 }
 
 void abort(void)