On Thu, Mar 15, 2018 at 1:19 PM, Sebastian Huber < sebastian.hu...@embedded-brains.de> wrote:
> On 15/03/18 08:13, Udit agarwal wrote: > >> Oh yes, i think i misinterpreted your previous suggestion of surrounding >> the while loop by mutex, it should be the outer while loop. some thing like >> this?: >> while (n > 0) { >> uint32_t random; >> size_t copy; >> >> rtems_mutex_lock(&atsam_trng_mutex); >> > > Now you correctly use the mutex to produce 32-bits of random data. > Currently the likely user of getrandom() is > > https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;a= > blob;f=newlib/libc/stdlib/arc4random.c;h=3cccc3ed46a5e9e > 756d4e216cb7686589eb60993;hb=HEAD#l89 > > So, you need 12 mutex lock/unlock operations for this. I would protect the > while (n > 0) loop with a single mutex lock/unlock. Ok,Like this? rtems_mutex_lock(&atsam_trng_mutex); while (n > 0) { ......... ......... } rtems_mutex_unlock(&atsam_trng_mutex); Also, will it be ok to keep atsam_trng_mutex even after user has finished using getentropy() i.e when we don't use destroy(&atsam_trng_mutex) at all? > > > -- > Sebastian Huber, embedded brains GmbH > > Address : Dornierstr. 4, D-82178 Puchheim, Germany > Phone : +49 89 189 47 41-16 > Fax : +49 89 189 47 41-09 > E-Mail : sebastian.hu...@embedded-brains.de > PGP : Public key available on request. > > Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG. > >
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel