See patch.
Note that these are pseudo-random numbers, do _not_ try to use them for crypto stuff!
Uwe.
On 08/04/08 00:41 +0200, Uwe Hermann wrote:
See patch.
Note that these are pseudo-random numbers, do _not_ try to use them for crypto stuff!
Uwe.
http://www.hermann-uwe.de | http://www.holsham-traders.de http://www.crazy-hacks.org | http://www.unmaintained-free-software.org
Add rand/rand_r/srand functions for generating pseudo-random bytes.
Signed-off-by: Uwe Hermann uwe@hermann-uwe.de
Acked-by: Jordan Crouse jordan.crouse@amd.com
On Mon, Apr 07, 2008 at 04:52:05PM -0600, Jordan Crouse wrote:
Add rand/rand_r/srand functions for generating pseudo-random bytes.
Signed-off-by: Uwe Hermann uwe@hermann-uwe.de
Acked-by: Jordan Crouse jordan.crouse@amd.com
Thanks, r3222.
Uwe.
On 08/04/08 00:41 +0200, Uwe Hermann wrote:
See patch.
Note that these are pseudo-random numbers, do _not_ try to use them for crypto stuff!
Uwe.
http://www.hermann-uwe.de | http://www.holsham-traders.de http://www.crazy-hacks.org | http://www.unmaintained-free-software.org
Add rand/rand_r/srand functions for generating pseudo-random bytes.
Signed-off-by: Uwe Hermann uwe@hermann-uwe.de
Acked-by: Jordan Crouse jordan.crouse@amd.com
Index: include/libpayload.h
--- include/libpayload.h (Revision 3220) +++ include/libpayload.h (Arbeitskopie) @@ -53,6 +53,8 @@ #define BYTE_ORDER BIG_ENDIAN #endif
+#define RAND_MAX 0x7fffffff
/* Some NVRAM byte definitions */ #define NVRAM_RTC_SECONDS 0 #define NVRAM_RTC_MINUTES 2 Index: LICENSES =================================================================== --- LICENSES (Revision 3220) +++ LICENSES (Arbeitskopie) @@ -66,6 +66,12 @@ Original files: lib/libalias/alias_util.c, function LibAliasInternetChecksum() Current version we use: CVS revision 1.15 2004/07/06 12:13:28
+* libc/rand.c: 3-clause BSD license
- Source: OpenBSD
http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/stdlib/rand.c
- Original files: src/lib/libc/stdlib/rand.c
- Current version we use: CVS revision 1.9 2005/8/8 08:05:37
- libc/memory.c: 3-clause BSD license Source: HelenOS, http://www.helenos.eu svn checkout svn://svn.helenos.eu/HelenOS/trunk HelenOS
Index: libc/Makefile.inc
--- libc/Makefile.inc (Revision 3220) +++ libc/Makefile.inc (Arbeitskopie) @@ -29,3 +29,4 @@
TARGETS-y += libc/malloc.o libc/printf.o libc/console.o libc/string.o TARGETS-y += libc/memory.o libc/ctype.o libc/ipchecksum.o libc/lib.o +TARGETS-y += libc/rand.o Index: libc/rand.c =================================================================== --- libc/rand.c (Revision 0) +++ libc/rand.c (Revision 0) @@ -0,0 +1,52 @@ +/*
- This file is part of the libpayload project.
- It was originally taken from the OpenBSD project.
- Copyright (c) 1990 The Regents of the University of California.
- All rights reserved.
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- Neither the name of the University nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
- THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
- */
+#include <libpayload.h>
+static unsigned int next = 1;
+int rand_r(unsigned int *seed) +{
- *seed = *seed * 1103515245 + 12345;
- return (*seed % ((unsigned int)RAND_MAX + 1));
+}
+int rand(void) +{
- return (rand_r(&next));
+}
+void srand(unsigned int seed) +{
- next = seed;
+}
-- coreboot mailing list coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot