mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-25 14:10:43 +00:00
1a4596601f
Signed-off-by: Wolfgang Denk <wd@denx.de> [trini: Fixup common/cmd_io.c] Signed-off-by: Tom Rini <trini@ti.com>
32 lines
482 B
C
32 lines
482 B
C
/*
|
|
* Simple xorshift PRNG
|
|
* see http://www.jstatsoft.org/v08/i14/paper
|
|
*
|
|
* Copyright (c) 2012 Michael Walle
|
|
* Michael Walle <michael@walle.cc>
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0+
|
|
*/
|
|
|
|
#include <common.h>
|
|
|
|
static unsigned int y = 1U;
|
|
|
|
unsigned int rand_r(unsigned int *seedp)
|
|
{
|
|
*seedp ^= (*seedp << 13);
|
|
*seedp ^= (*seedp >> 17);
|
|
*seedp ^= (*seedp << 5);
|
|
|
|
return *seedp;
|
|
}
|
|
|
|
unsigned int rand(void)
|
|
{
|
|
return rand_r(&y);
|
|
}
|
|
|
|
void srand(unsigned int seed)
|
|
{
|
|
y = seed;
|
|
}
|