--- sys/sys/sysctl.h.orig Sun Oct 23 18:37:15 2005 +++ sys/sys/sysctl.h Sun Oct 23 18:40:43 2005 @@ -366,7 +366,8 @@ #define KERN_USRSTACK 33 /* int: address of USRSTACK */ #define KERN_LOGSIGEXIT 34 /* int: do we log sigexit procs? */ #define KERN_IOV_MAX 35 /* int: value of UIO_MAXIOV */ -#define KERN_MAXID 36 /* number of valid kern ids */ +#define KERN_ARND 36 /* int: random integer fromarc4rnd */ +#define KERN_MAXID 37 /* number of valid kern ids */ #define CTL_KERN_NAMES { \ { 0, 0 }, \ --- /home/src/sys/kern/kern_mib.c Thu Mar 3 01:46:31 2005 +++ sys/kern/kern_mib.c Tue May 24 11:31:37 2005 @@ -153,6 +154,16 @@ 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; + val = arc4random(); + return (sysctl_handle_long(oidp, &val, 0, req)); +} + +SYSCTL_PROC(_kern,KERN_ARND,arandom,CTLFLAG_RD,0,0,sysctl_kern_arnd,"I","arc4random"); static int sysctl_hw_physmem(SYSCTL_HANDLER_ARGS)