diff options
-rw-r--r-- | sys/kern/kern_mib.c | 12 | ||||
-rw-r--r-- | sys/sys/sysctl.h | 3 |
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 }, \ |