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