[PATCH 04/11] include support for a simple pseudo number generator

Sascha Hauer s.hauer at pengutronix.de
Tue Jun 15 07:54:52 EDT 2010


Hi Peter,

On Tue, Jun 15, 2010 at 11:39:39AM +0200, Peter Korsgaard wrote:
> >>>>> "Sascha" == Sascha Hauer <s.hauer at pengutronix.de> writes:
> 
>  Sascha> Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
>  Sascha> ---
>  Sascha>  include/random.h |    7 +++++++
>  Sascha>  lib/Makefile     |    1 +
>  Sascha>  lib/random.c     |   22 ++++++++++++++++++++++
>  Sascha>  3 files changed, 30 insertions(+), 0 deletions(-)
>  Sascha>  create mode 100644 include/random.h
>  Sascha>  create mode 100644 lib/random.c
> 
>  Sascha> diff --git a/lib/random.c b/lib/random.c
>  Sascha> new file mode 100644
>  Sascha> index 0000000..25315e7
>  Sascha> --- /dev/null
>  Sascha> +++ b/lib/random.c
>  Sascha> @@ -0,0 +1,22 @@
>  Sascha> +#include <common.h>
>  Sascha> +#include <random.h>
>  Sascha> +
>  Sascha> +static int random_seed;
>  Sascha> +
>  Sascha> +static unsigned char rand(void)
>  Sascha> +{
>  Sascha> +	random_seed = random_seed * 1103515245 + 12345;
>  Sascha> +	return (unsigned char)(random_seed / 65536) % 256;
>  Sascha> +}
> 
> Any reason to not make this public and return int instead similar to
> rand(3)?

The reason was that I did not need rand but get_random_bytes and I
wasn't aware that rand() is that close to the corresponding libc
function.

> 
> We could presumably simply do:
> 
> #define RAND_MAX 255
> 
> And to be completely correct, these prototypes should be in stdlib.h
> instead.

Ok, will do.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list