aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/kern/kern_mib.c12
-rw-r--r--sys/sys/sysctl.h3
2 files changed, 14 insertions, 1 deletions
diff --git a/sys/kern/kern_mib.c b/sys/kern/kern_mib.c
index 707afd8490f1..5d14529f9813 100644
--- a/sys/kern/kern_mib.c
+++ b/sys/kern/kern_mib.c
@@ -152,6 +152,18 @@ SYSCTL_INT(_hw, HW_PAGESIZE, pagesize, CTLFLAG_RD,
0, PAGE_SIZE, "System memory page size");
static int
+sysctl_kern_arnd(SYSCTL_HANDLER_ARGS)
+{
+ u_long val;
+
+ arc4rand(&val, sizeof(val), 0);
+ return (sysctl_handle_long(oidp, &val, 0, req));
+}
+
+SYSCTL_PROC(_kern, KERN_ARND, arandom, CTLFLAG_RD,
+ 0, 0, sysctl_kern_arnd, "L", "arc4rand");
+
+static int
sysctl_hw_physmem(SYSCTL_HANDLER_ARGS)
{
u_long val;
diff --git a/sys/sys/sysctl.h b/sys/sys/sysctl.h
index d56359bc7391..87dad4e9f2bc 100644
--- a/sys/sys/sysctl.h
+++ b/sys/sys/sysctl.h
@@ -390,7 +390,8 @@ TAILQ_HEAD(sysctl_ctx_list, sysctl_ctx_entry);
#define KERN_LOGSIGEXIT 34 /* int: do we log sigexit procs? */
#define KERN_IOV_MAX 35 /* int: value of UIO_MAXIOV */
#define KERN_HOSTUUID 36 /* string: host UUID identifier */
-#define KERN_MAXID 37 /* number of valid kern ids */
+#define KERN_ARND 37 /* int: from arc4rand() */
+#define KERN_MAXID 38 /* number of valid kern ids */
#define CTL_KERN_NAMES { \
{ 0, 0 }, \