summaryrefslogtreecommitdiff
path: root/src/clib/rand.c
blob: 426627a9c3e58cfae8f315d74276bf292e824a65 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/*
 * 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
 */
#ifndef HAVE_RAND
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;
}
#endif