uboot/lib/rand.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0+
   2/*
   3 * Simple xorshift PRNG
   4 *   see http://www.jstatsoft.org/v08/i14/paper
   5 *
   6 * Copyright (c) 2012 Michael Walle
   7 * Michael Walle <michael@walle.cc>
   8 */
   9
  10#include <common.h>
  11#include <rand.h>
  12
  13static unsigned int y = 1U;
  14
  15unsigned int rand_r(unsigned int *seedp)
  16{
  17        *seedp ^= (*seedp << 13);
  18        *seedp ^= (*seedp >> 17);
  19        *seedp ^= (*seedp << 5);
  20
  21        return *seedp;
  22}
  23
  24unsigned int rand(void)
  25{
  26        return rand_r(&y);
  27}
  28
  29void srand(unsigned int seed)
  30{
  31        y = seed;
  32}
  33