xref: /aosp_15_r20/bionic/libc/upstream-netbsd/lib/libc/stdlib/jrand48.c (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker /*	$NetBSD: jrand48.c,v 1.9 2013/10/22 08:08:51 matt Exp $	*/
2*8d67ca89SAndroid Build Coastguard Worker 
3*8d67ca89SAndroid Build Coastguard Worker /*
4*8d67ca89SAndroid Build Coastguard Worker  * Copyright (c) 1993 Martin Birgmeier
5*8d67ca89SAndroid Build Coastguard Worker  * All rights reserved.
6*8d67ca89SAndroid Build Coastguard Worker  *
7*8d67ca89SAndroid Build Coastguard Worker  * You may redistribute unmodified or modified versions of this source
8*8d67ca89SAndroid Build Coastguard Worker  * code provided that the above copyright notice and this and the
9*8d67ca89SAndroid Build Coastguard Worker  * following conditions are retained.
10*8d67ca89SAndroid Build Coastguard Worker  *
11*8d67ca89SAndroid Build Coastguard Worker  * This software is provided ``as is'', and comes with no warranties
12*8d67ca89SAndroid Build Coastguard Worker  * of any kind. I shall in no event be liable for anything that happens
13*8d67ca89SAndroid Build Coastguard Worker  * to anyone/anything when using this software.
14*8d67ca89SAndroid Build Coastguard Worker  */
15*8d67ca89SAndroid Build Coastguard Worker 
16*8d67ca89SAndroid Build Coastguard Worker #include <sys/cdefs.h>
17*8d67ca89SAndroid Build Coastguard Worker #if defined(LIBC_SCCS) && !defined(lint)
18*8d67ca89SAndroid Build Coastguard Worker __RCSID("$NetBSD: jrand48.c,v 1.9 2013/10/22 08:08:51 matt Exp $");
19*8d67ca89SAndroid Build Coastguard Worker #endif /* LIBC_SCCS and not lint */
20*8d67ca89SAndroid Build Coastguard Worker 
21*8d67ca89SAndroid Build Coastguard Worker #include "namespace.h"
22*8d67ca89SAndroid Build Coastguard Worker 
23*8d67ca89SAndroid Build Coastguard Worker #include <assert.h>
24*8d67ca89SAndroid Build Coastguard Worker 
25*8d67ca89SAndroid Build Coastguard Worker #include "rand48.h"
26*8d67ca89SAndroid Build Coastguard Worker 
27*8d67ca89SAndroid Build Coastguard Worker #ifdef __weak_alias
__weak_alias(jrand48,_jrand48)28*8d67ca89SAndroid Build Coastguard Worker __weak_alias(jrand48,_jrand48)
29*8d67ca89SAndroid Build Coastguard Worker #endif
30*8d67ca89SAndroid Build Coastguard Worker 
31*8d67ca89SAndroid Build Coastguard Worker long
32*8d67ca89SAndroid Build Coastguard Worker jrand48(unsigned short xseed[3])
33*8d67ca89SAndroid Build Coastguard Worker {
34*8d67ca89SAndroid Build Coastguard Worker 
35*8d67ca89SAndroid Build Coastguard Worker 	_DIAGASSERT(xseed != NULL);
36*8d67ca89SAndroid Build Coastguard Worker 
37*8d67ca89SAndroid Build Coastguard Worker 	__dorand48(xseed);
38*8d67ca89SAndroid Build Coastguard Worker 	return (int16_t)xseed[2] * 65536 + xseed[1];
39*8d67ca89SAndroid Build Coastguard Worker }
40