From: Michael Walle <michael@walle.cc>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v5 1/5] lib: add rand() function
Date: Wed, 23 May 2012 18:34:44 +0200 [thread overview]
Message-ID: <201205231834.44716.michael@walle.cc> (raw)
In-Reply-To: <1336776649-9316-2-git-send-email-michael@walle.cc>
Am Samstag 12 Mai 2012, 00:50:45 schrieb Michael Walle:
> It's a PRNG using the simple and fast xorshift method.
>
> Signed-off-by: Michael Walle <michael@walle.cc>
> Cc: Wolfgang Denk <wd@denx.de>
Hi Wolfgang,
can you ack this patch? In that case i could add the acked-by line in the next
version of this patch series to ease the picking by Prafulla. All your
previous comments should be addressed :)
> ---
> include/common.h | 6 ++++++
> lib/Makefile | 1 +
> lib/rand.c | 43 +++++++++++++++++++++++++++++++++++++++++++
> 3 files changed, 50 insertions(+), 0 deletions(-)
> create mode 100644 lib/rand.c
>
> diff --git a/include/common.h b/include/common.h
> index 4b5841e..a9cb62c 100644
> --- a/include/common.h
> +++ b/include/common.h
> @@ -733,6 +733,12 @@ char * strmhz(char *buf, unsigned long hz);
> /* lib/crc32.c */
> #include <u-boot/crc.h>
>
> +/* lib/rand.c */
> +#ifdef CONFIG_RANDOM_MACADDR
> +void srand(unsigned int seed);
> +unsigned int rand(void);
> +#endif
> +
> /* common/console.c */
> int console_init_f(void); /* Before relocation; uses the serial stuff
*/
> int console_init_r(void); /* After relocation; uses the console stuff
*/
> diff --git a/lib/Makefile b/lib/Makefile
> index a0fec60..74579f9 100644
> --- a/lib/Makefile
> +++ b/lib/Makefile
> @@ -65,6 +65,7 @@ COBJS-y += string.o
> COBJS-y += time.o
> COBJS-$(CONFIG_BOOTP_PXE) += uuid.o
> COBJS-y += vsprintf.o
> +COBJS-$(CONFIG_RANDOM_MACADDR) += rand.o
>
> COBJS := $(COBJS-y)
> SRCS := $(COBJS:.o=.c)
> diff --git a/lib/rand.c b/lib/rand.c
> new file mode 100644
> index 0000000..6cb76ac
> --- /dev/null
> +++ b/lib/rand.c
> @@ -0,0 +1,43 @@
> +/*
> + * Simple xorshift PRNG
> + * see http://www.jstatsoft.org/v08/i14/paper
> + *
> + * Copyright (c) 2012 Michael Walle
> + * Michael Walle <michael@walle.cc>
> + *
> + * See file CREDITS for list of people who contributed to this
> + * project.
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License as
> + * published by the Free Software Foundation; either version 2 of
> + * the License, or (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, write to the Free Software
> + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
> + * MA 02111-1307 USA
> + */
> +
> +#include <common.h>
> +
> +static unsigned int y = 1U;
> +
> +void srand(unsigned int seed)
> +{
> + y = seed;
> +}
> +
> +unsigned int rand(void)
> +{
> + y ^= (y << 13);
> + y ^= (y >> 17);
> + y ^= (y << 5);
> +
> + return y;
> +}
--
Michael
next prev parent reply other threads:[~2012-05-23 16:34 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-11 22:50 [U-Boot] [PATCH v5 0/5] Kirkwood: add lschlv2 and lsxhl board support Michael Walle
2012-05-11 22:50 ` [U-Boot] [PATCH v5 1/5] lib: add rand() function Michael Walle
2012-05-23 16:34 ` Michael Walle [this message]
2012-05-24 4:32 ` Prafulla Wadaskar
2012-05-24 10:34 ` Michael Walle
2012-05-11 22:50 ` [U-Boot] [PATCH v5 2/5] net: add helper to generate random mac address Michael Walle
2012-05-25 17:52 ` Joe Hershberger
2012-05-11 22:50 ` [U-Boot] [PATCH v5 3/5] net: fix potential compiler warning Michael Walle
2012-05-16 1:11 ` Joe Hershberger
2012-05-11 22:50 ` [U-Boot] [PATCH v5 4/5] net: add eth_setenv_enetaddr_by_index() Michael Walle
2012-05-11 22:53 ` Michael Walle
2012-05-16 0:56 ` Joe Hershberger
2012-05-17 20:43 ` Michael Walle
2012-05-25 18:50 ` Joe Hershberger
2012-05-25 19:54 ` Michael Walle
2012-05-25 20:50 ` Joe Hershberger
2012-05-22 21:18 ` Michael Walle
2012-05-22 21:41 ` Rob Herring
2012-05-22 21:53 ` Michael Walle
2012-05-11 22:50 ` [U-Boot] [PATCH v5 5/5] Kirkwood: add lschlv2 and lsxhl board support Michael Walle
2012-05-22 20:58 ` Michael Walle
2012-05-24 4:50 ` Prafulla Wadaskar
2012-05-24 7:24 ` Prafulla Wadaskar
2012-05-24 10:30 ` Michael Walle
2012-05-25 23:34 ` Michael Walle
2012-05-25 14:13 ` [U-Boot] [PATCH v5 0/5] " Prafulla Wadaskar
2012-05-25 16:05 ` Joe Hershberger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201205231834.44716.michael@walle.cc \
--to=michael@walle.cc \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.