diff options
Diffstat (limited to 'src/clib/rand.c')
-rw-r--r-- | src/clib/rand.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/clib/rand.c b/src/clib/rand.c new file mode 100644 index 00000000..6b810060 --- /dev/null +++ b/src/clib/rand.c @@ -0,0 +1,25 @@ +/* + * Copied from the ANSI C standard 4.10.2.2. + */ +#include "db_config.h" + +#include "db_int.h" + +/* + * rand, srand -- + * + * PUBLIC: #ifndef HAVE_RAND + * PUBLIC: int rand __P((void)); + * PUBLIC: void srand __P((unsigned int)); + * PUBLIC: #endif + */ +int rand(void) /* RAND_MAX assumed to be 32767 */ +{ + DB_GLOBAL(rand_next) = DB_GLOBAL(rand_next) * 1103515245 + 12345; + return (unsigned int) (DB_GLOBAL(rand_next)/65536) % 32768; +} + +void srand(unsigned int seed) +{ + DB_GLOBAL(rand_next) = seed; +} |