random.3.patch   [plain text]


--- random.3.orig	2010-04-28 23:38:47.000000000 -0700
+++ random.3	2010-04-29 09:47:13.000000000 -0700
@@ -32,32 +32,45 @@
 .Dt RANDOM 3
 .Os
 .Sh NAME
+.Nm initstate ,
 .Nm random ,
+.Nm setstate ,
 .Nm srandom ,
-.Nm srandomdev ,
-.Nm initstate ,
-.Nm setstate
+.Nm srandomdev
 .Nd better random number generator; routines for changing generators
 .Sh LIBRARY
 .Lb libc
 .Sh SYNOPSIS
 .In stdlib.h
+.Ft char *
+.Fo initstate
+.Fa "unsigned seed"
+.Fa "char *state"
+.Fa "size_t size"
+.Fc
 .Ft long
-.Fn random void
+.Fo random
+.Fa void
+.Fc
+.Ft char *
+.Fo setstate
+.Fa "const char *state"
+.Fc
 .Ft void
-.Fn srandom "unsigned long seed"
+.Fo srandom
+.Fa "unsigned seed"
+.Fc
 .Ft void
-.Fn srandomdev void
-.Ft char *
-.Fn initstate "unsigned long seed" "char *state" "long n"
-.Ft char *
-.Fn setstate "char *state"
+.Fo srandomdev
+.Fa void
+.Fc
 .Sh DESCRIPTION
 The
 .Fn random
 function
-uses a non-linear additive feedback random number generator employing a
-default table of size 31 long integers to return successive pseudo-random
+uses a non-linear, additive feedback, random number generator, employing a
+default table of size 31 long integers.
+It returns successive pseudo-random
 numbers in the range from 0 to
 .if t 2\u\s731\s10\d\(mi1.
 .if n (2**31)\(mi1.
@@ -78,7 +91,7 @@ The difference is that
 .Xr rand 3
 produces a much less random sequence \(em in fact, the low dozen bits
 generated by rand go through a cyclic pattern.
-All the bits generated by
+All of the bits generated by
 .Fn random
 are usable.
 For example,
@@ -87,18 +100,21 @@ will produce a random binary
 value.
 .Pp
 Like
+.Xr srand 3 ,
+.Fn srandom
+sets the initial seed value for future calls to
+.Fn random .
+Like
 .Xr rand 3 ,
 .Fn random
 will by default produce a sequence of numbers that can be duplicated
 by calling
 .Fn srandom
-with
-.Ql 1
-as the seed.
+with the same seed.
 .Pp
 The
 .Fn srandomdev
-routine initializes a state array using the
+routine initializes a state array, using the
 .Xr random 4
 random number device which returns good random numbers,
 suitable for cryptographic use.
@@ -123,7 +139,7 @@ more state, the better the random number
 the nearest known amount.
 Using less than 8 bytes will cause an error.)
 The seed for the initialization (which specifies a starting point for
-the random number sequence, and provides for restarting at the same
+the random number sequence and provides for restarting at the same
 point) is also an argument.
 The
 .Fn initstate
@@ -162,7 +178,7 @@ it is initialized.
 With 256 bytes of state information, the period of the random number
 generator is greater than
 .if t 2\u\s769\s10\d,
-.if n 2**69
+.if n 2**69 ,
 which should be sufficient for most purposes.
 .Sh DIAGNOSTICS
 If
@@ -171,11 +187,36 @@ is called with less than 8 bytes of stat
 .Fn setstate
 detects that the state information has been garbled, error
 messages are printed on the standard error output.
+.Sh LEGACY SYNOPSIS
+.Fd #include <stdlib.h>
+.Pp
+.Ft char *
+.br
+.Fo initstate
+.Fa "unsigned long seed"
+.Fa "char *state"
+.Fa "long size"
+.Fc ;
+.Pp
+.Ft char *
+.br
+.Fo setstate
+.Fa "char *state"
+.Fc ;
+.Pp
+.Ft void
+.br
+.Fo srandom
+.Fa "unsigned long seed"
+.Fc ;
+.Pp
+The type of each parameter is different in the legacy version.
 .Sh SEE ALSO
 .Xr arc4random 3 ,
 .Xr rand 3 ,
 .Xr srand 3 ,
-.Xr random 4
+.Xr random 4 ,
+.Xr compat 5
 .Sh HISTORY
 These
 functions appeared in