Loading...
stdlib/FreeBSD/random.3.patch /dev/null Libc-763.13
--- /dev/null
+++ Libc/Libc-763.13/stdlib/FreeBSD/random.3.patch
@@ -0,0 +1,151 @@
+--- 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