add neug_wait_full
authorNIIBE Yutaka <gniibe@fsij.org>
Fri, 7 Oct 2011 02:15:40 +0000 (11:15 +0900)
committerNIIBE Yutaka <gniibe@fsij.org>
Fri, 7 Oct 2011 02:15:40 +0000 (11:15 +0900)
ChangeLog
src/neug.h
src/random.c

index 073b70b..f731af6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2011-10-07  NIIBE Yutaka  <gniibe@fsij.org>
+
+       * src/random.c (neug_wait_full): New (from Gnuk).
+
 2011-10-06  NIIBE Yutaka  <gniibe@fsij.org>
 
        * src/random.c (neug_flush): New.
index 16b7c0f..7d669f6 100644 (file)
@@ -8,3 +8,4 @@ void neug_prng_reseed (void);
 uint32_t neug_get (int kick);
 void neug_kick_filling (void);
 void neug_flush (void);
+void neug_wait_full (void);
index 80aa0bc..d805ac3 100644 (file)
@@ -450,3 +450,14 @@ neug_get (int kick)
 
   return v;
 }
+
+void
+neug_wait_full (void)
+{
+  struct rng_rb *rb = &the_ring_buffer;
+
+  chMtxLock (&rb->m);
+  while (!rb->full)
+    chCondWait (&rb->data_available);
+  chMtxUnlock ();
+}