Module Name: src
Committed By: riastradh
Date: Mon Apr 13 15:13:50 UTC 2015
Modified Files:
src/sys/dev: rnd_private.h rndpseudo.c
src/sys/kern: kern_rndq.c kern_rndsink.c
src/sys/sys: rnd.h
Log Message:
Gather rnd-private declarations into <dev/rnd_private.h>.
Let's try to avoid putting externs in .c files where the compiler
can't check them.
To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/sys/dev/rnd_private.h
cvs rdiff -u -r1.25 -r1.26 src/sys/dev/rndpseudo.c
cvs rdiff -u -r1.44 -r1.45 src/sys/kern/kern_rndq.c
cvs rdiff -u -r1.11 -r1.12 src/sys/kern/kern_rndsink.c
cvs rdiff -u -r1.44 -r1.45 src/sys/sys/rnd.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/rnd_private.h
diff -u src/sys/dev/rnd_private.h:1.6 src/sys/dev/rnd_private.h:1.7
--- src/sys/dev/rnd_private.h:1.6 Mon Apr 13 14:41:06 2015
+++ src/sys/dev/rnd_private.h Mon Apr 13 15:13:50 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: rnd_private.h,v 1.6 2015/04/13 14:41:06 riastradh Exp $ */
+/* $NetBSD: rnd_private.h,v 1.7 2015/04/13 15:13:50 riastradh Exp $ */
/*-
* Copyright (c) 1997 The NetBSD Foundation, Inc.
@@ -32,6 +32,12 @@
#ifndef _DEV_RNDPRIVATE_H
#define _DEV_RNDPRIVATE_H
+
+#include <sys/types.h>
+#include <sys/mutex.h>
+#include <sys/queue.h>
+#include <sys/rnd.h>
+
/*
* Number of bytes returned per hash. This value is used in both
* rnd.c and rndpool.c to decide when enough entropy exists to do a
@@ -49,4 +55,42 @@
bool rnd_extract(void *, size_t);
bool rnd_tryextract(void *, size_t);
+void rnd_getmore(size_t);
+void rnd_wakeup_readers(void);
+
+/*
+ * Flag indicating rnd_init has run.
+ */
+extern int rnd_ready;
+
+/*
+ * Bootloader-supplied entropy. Use only in tests against NULL to
+ * determine whether the bootloader supplied entropy.
+ */
+extern rndsave_t *boot_rsp;
+
+/*
+ * List of rndsources.
+ */
+LIST_HEAD(rndsource_head, krndsource);
+
+/*
+ * Global entropy pool state. Access to everything here is serialized
+ * by rndpool_mtx.
+ */
+extern kmutex_t rndpool_mtx;
+extern rndpool_t rnd_pool;
+extern struct rndsource_head rnd_sources;
+
+/*
+ * Debugging flags.
+ */
+#ifdef RND_DEBUG
+extern int rnd_debug;
+#define RND_DEBUG_WRITE 0x0001
+#define RND_DEBUG_READ 0x0002
+#define RND_DEBUG_IOCTL 0x0004
+#define RND_DEBUG_SNOOZE 0x0008
#endif
+
+#endif /* _DEV_RNDPRIVATE_H */
Index: src/sys/dev/rndpseudo.c
diff -u src/sys/dev/rndpseudo.c:1.25 src/sys/dev/rndpseudo.c:1.26
--- src/sys/dev/rndpseudo.c:1.25 Mon Apr 13 14:56:22 2015
+++ src/sys/dev/rndpseudo.c Mon Apr 13 15:13:50 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: rndpseudo.c,v 1.25 2015/04/13 14:56:22 riastradh Exp $ */
+/* $NetBSD: rndpseudo.c,v 1.26 2015/04/13 15:13:50 riastradh Exp $ */
/*-
* Copyright (c) 1997-2013 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rndpseudo.c,v 1.25 2015/04/13 14:56:22 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rndpseudo.c,v 1.26 2015/04/13 15:13:50 riastradh Exp $");
#if defined(_KERNEL_OPT)
#include "opt_compat_netbsd.h"
@@ -73,16 +73,10 @@ __KERNEL_RCSID(0, "$NetBSD: rndpseudo.c,
#ifdef RND_DEBUG
#define DPRINTF(l,x) if (rnd_debug & (l)) printf x
-extern int rnd_debug;
#else
#define DPRINTF(l,x)
#endif
-#define RND_DEBUG_WRITE 0x0001
-#define RND_DEBUG_READ 0x0002
-#define RND_DEBUG_IOCTL 0x0004
-#define RND_DEBUG_SNOOZE 0x0008
-
/*
* list devices attached
*/
@@ -112,17 +106,7 @@ static pool_cache_t rnd_ctx_cache;
*/
static percpu_t *percpu_urandom_cprng;
-/*
- * Our random pool. This is defined here rather than using the general
- * purpose one defined in rndpool.c.
- *
- * Samples are collected and queued into a separate mutex-protected queue
- * (rnd_samples, see above), and processed in a timeout routine; therefore,
- * the mutex protecting the random pool is at IPL_SOFTCLOCK() as well.
- */
-extern rndpool_t rnd_pool;
-extern kmutex_t rndpool_mtx;
-
+/* Used by ioconf.c to attach the rnd pseudo-device. */
void rndattach(int);
dev_type_open(rndopen);
@@ -162,11 +146,6 @@ const struct fileops rnd_fileops = {
.fo_restart = fnullop_restart
};
-void rnd_wakeup_readers(void); /* XXX */
-extern int rnd_ready; /* XXX */
-extern rndsave_t *boot_rsp; /* XXX */
-extern LIST_HEAD(, krndsource) rnd_sources; /* XXX */
-
static struct evcnt rndpseudo_soft = EVCNT_INITIALIZER(EVCNT_TYPE_MISC,
NULL, "rndpseudo", "open soft");
static struct evcnt rndpseudo_hard = EVCNT_INITIALIZER(EVCNT_TYPE_MISC,
Index: src/sys/kern/kern_rndq.c
diff -u src/sys/kern/kern_rndq.c:1.44 src/sys/kern/kern_rndq.c:1.45
--- src/sys/kern/kern_rndq.c:1.44 Mon Apr 13 14:41:06 2015
+++ src/sys/kern/kern_rndq.c Mon Apr 13 15:13:50 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_rndq.c,v 1.44 2015/04/13 14:41:06 riastradh Exp $ */
+/* $NetBSD: kern_rndq.c,v 1.45 2015/04/13 15:13:50 riastradh Exp $ */
/*-
* Copyright (c) 1997-2013 The NetBSD Foundation, Inc.
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_rndq.c,v 1.44 2015/04/13 14:41:06 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_rndq.c,v 1.45 2015/04/13 15:13:50 riastradh Exp $");
#include <sys/param.h>
#include <sys/atomic.h>
@@ -69,11 +69,6 @@ int rnd_debug = 0;
#define DPRINTF(l,x)
#endif
-#define RND_DEBUG_WRITE 0x0001
-#define RND_DEBUG_READ 0x0002
-#define RND_DEBUG_IOCTL 0x0004
-#define RND_DEBUG_SNOOZE 0x0008
-
/*
* list devices attached
*/
@@ -189,7 +184,7 @@ static rngtest_t rnd_rt;
static uint8_t rnd_testbits[sizeof(rnd_rt.rt_b)];
#endif
-LIST_HEAD(, krndsource) rnd_sources;
+struct rndsource_head rnd_sources;
rndsave_t *boot_rsp;
Index: src/sys/kern/kern_rndsink.c
diff -u src/sys/kern/kern_rndsink.c:1.11 src/sys/kern/kern_rndsink.c:1.12
--- src/sys/kern/kern_rndsink.c:1.11 Mon Apr 13 14:41:06 2015
+++ src/sys/kern/kern_rndsink.c Mon Apr 13 15:13:50 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_rndsink.c,v 1.11 2015/04/13 14:41:06 riastradh Exp $ */
+/* $NetBSD: kern_rndsink.c,v 1.12 2015/04/13 15:13:50 riastradh Exp $ */
/*-
* Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_rndsink.c,v 1.11 2015/04/13 14:41:06 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_rndsink.c,v 1.12 2015/04/13 15:13:50 riastradh Exp $");
#include <sys/param.h>
#include <sys/types.h>
@@ -41,7 +41,7 @@ __KERNEL_RCSID(0, "$NetBSD: kern_rndsink
#include <sys/rnd.h>
#include <sys/rndsink.h>
-#include <dev/rnd_private.h> /* XXX provisional, for rnd_extract_data */
+#include <dev/rnd_private.h>
enum rsink_state {
RNDSINK_IDLE, /* no callback in progress */
@@ -157,12 +157,9 @@ rndsinks_enqueue(struct rndsink *rndsink
* or something -- as soon as we get that much from the entropy
* sources, distribute it.
*/
- {
- extern kmutex_t rndpool_mtx;
mutex_spin_enter(&rndpool_mtx);
rnd_getmore(MAX(rndsink->rsink_bytes, 2 * sizeof(uint32_t)));
mutex_spin_exit(&rndpool_mtx);
- }
switch (rndsink->rsink_state) {
case RNDSINK_IDLE:
Index: src/sys/sys/rnd.h
diff -u src/sys/sys/rnd.h:1.44 src/sys/sys/rnd.h:1.45
--- src/sys/sys/rnd.h:1.44 Wed Apr 8 13:45:01 2015
+++ src/sys/sys/rnd.h Mon Apr 13 15:13:50 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: rnd.h,v 1.44 2015/04/08 13:45:01 riastradh Exp $ */
+/* $NetBSD: rnd.h,v 1.45 2015/04/13 15:13:50 riastradh Exp $ */
/*-
* Copyright (c) 1997 The NetBSD Foundation, Inc.
@@ -200,8 +200,6 @@ void rnd_attach_source(krndsource_t *,
uint32_t, uint32_t);
void rnd_detach_source(krndsource_t *);
-void rnd_getmore(size_t);
-
void rnd_seed(void *, size_t);
static inline void