From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tom Rini Date: Wed, 5 Mar 2014 16:22:06 -0500 Subject: [U-Boot] [PATCH V2 2/3] lib: rand: add call to hw_rand() - hardware random number generator In-Reply-To: <216028592db390f90b2c9583c08f83978ee183a0.1394038415.git.p.marczak@samsung.com> References: <216028592db390f90b2c9583c08f83978ee183a0.1394038415.git.p.marczak@samsung.com> Message-ID: <20140305212206.GA16805@bill-the-cat> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Wed, Mar 05, 2014 at 05:57:46PM +0100, Przemyslaw Marczak wrote: > Changes: > - lib/rand.c: add call to hw_rand() (depends on CONFIG_RAND_HW_ACCEL) > - include/common.h: add hw_rand() declaration. > > Signed-off-by: Przemyslaw Marczak > cc: Michael Walle > cc: Tom Rini > --- > Changes v2: > - move function hw_rand() from rand() to rand_r() and ignore its argument > > include/common.h | 3 +++ > lib/rand.c | 3 +++ > 2 files changed, 6 insertions(+) > > diff --git a/include/common.h b/include/common.h > index 96a45a6..58e2fbc 100644 > --- a/include/common.h > +++ b/include/common.h > @@ -836,6 +836,9 @@ void srand(unsigned int seed); > unsigned int rand(void); > unsigned int rand_r(unsigned int *seedp); > #endif > +#ifdef CONFIG_RAND_HW_ACCEL > +unsigned int hw_rand(void); > +#endif > > /* common/console.c */ > int console_init_f(void); /* Before relocation; uses the serial stuff */ > diff --git a/lib/rand.c b/lib/rand.c > index 5c367e1..0617063 100644 > --- a/lib/rand.c > +++ b/lib/rand.c > @@ -14,6 +14,9 @@ static unsigned int y = 1U; > > unsigned int rand_r(unsigned int *seedp) > { > +#ifdef CONFIG_RAND_HW_ACCEL > + return hw_rand(); > +#endif > *seedp ^= (*seedp << 13); > *seedp ^= (*seedp >> 17); > *seedp ^= (*seedp << 5); This doesn't already generate warnings about unreachable code? I hate to say@but I think we should add lib/hw_rand.c which does: void srand(uint seed) {} unsigned int rand(void) { return hw_rand(); } unsigned int rand_r(unsigned int *seedp) { seedp = hw_rand(); return *seedp;} (please double check how hw_rand() returns and net/link_local.c if we can really avoid using the callers pointer...). And then in correct Kbuild fashion, something like randsrc-y ?= rand.o randsrc-$(CONFIG_RAND_HW_ACCEL) = hw_rand.o (The above is probably wrong, help please Masahiro :)) -- Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: