xref: /openbsd/lib/libc/stdlib/srand48.c (revision 9b7c3dbb)
1 /*	$OpenBSD: srand48.c,v 1.6 2015/09/13 08:31:48 guenther Exp $ */
2 /*
3  * Copyright (c) 1993 Martin Birgmeier
4  * All rights reserved.
5  *
6  * You may redistribute unmodified or modified versions of this source
7  * code provided that the above copyright notice and this and the
8  * following conditions are retained.
9  *
10  * This software is provided ``as is'', and comes with no warranties
11  * of any kind. I shall in no event be liable for anything that happens
12  * to anyone/anything when using this software.
13  */
14 
15 #include "rand48.h"
16 
17 int     __rand48_deterministic;
18 
19 void
20 srand48(long seed)
21 {
22 	srand48_deterministic(seed);
23 	__rand48_deterministic = 0;
24 }
25 
26 void
27 srand48_deterministic(long seed)
28 {
29 	__rand48_deterministic = 1;
30 	__rand48_seed[0] = RAND48_SEED_0;
31 	__rand48_seed[1] = (unsigned short) seed;
32 	__rand48_seed[2] = (unsigned short) (seed >> 16);
33 	__rand48_mult[0] = RAND48_MULT_0;
34 	__rand48_mult[1] = RAND48_MULT_1;
35 	__rand48_mult[2] = RAND48_MULT_2;
36 	__rand48_add = RAND48_ADD;
37 }
38 DEF_WEAK(srand48_deterministic);
39