From: Udit agarwal <dev.mada...@gmail.com> --- c/src/lib/libbsp/arm/atsam/startup/getentropy-trng.c | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/c/src/lib/libbsp/arm/atsam/startup/getentropy-trng.c b/c/src/lib/libbsp/arm/atsam/startup/getentropy-trng.c index 11e24dc..d3f1cf5 100644 --- a/c/src/lib/libbsp/arm/atsam/startup/getentropy-trng.c +++ b/c/src/lib/libbsp/arm/atsam/startup/getentropy-trng.c @@ -16,6 +16,10 @@ #include <unistd.h> #include <string.h> #include <rtems/sysinit.h> +#include <rtems/thread.h> + +static rtems_mutex atsam_trng_mutex = + RTEMS_MUTEX_INITIALIZER("atsam_trng"); static void atsam_trng_enable(void) { @@ -25,6 +29,8 @@ static void atsam_trng_enable(void) int getentropy(void *ptr, size_t n) { + rtems_mutex_lock(&atsam_trng_mutex); + while (n > 0) { uint32_t random; size_t copy; @@ -51,6 +57,7 @@ int getentropy(void *ptr, size_t n) ptr += copy; } + rtems_mutex_unlock(&atsam_trng_mutex); return 0; } -- 1.9.1 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel