]> git.saurik.com Git - apple/libc.git/blobdiff - stdlib/FreeBSD/random.c
Libc-825.25.tar.gz
[apple/libc.git] / stdlib / FreeBSD / random.c
index 693550b2380464bedba0d31ad1c87f263ca719bf..15db6402313f72dd02e463998ef07a3e159a1860 100644 (file)
@@ -33,6 +33,14 @@ static char sccsid[] = "@(#)random.c 8.2 (Berkeley) 5/19/95";
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD: src/lib/libc/stdlib/random.c,v 1.25 2007/01/09 00:28:10 imp Exp $");
 
+/*
+ * We always compile with __DARWIN_UNIX03 set to one, relying on the fact that
+ * (for non-LP64) sizeof(int) == sizeof(long) == sizeof(size_t), so that we
+ * don't have to have two different versions of the prototypes.  For LP64,
+ * we only support the POSIX-compatible prototypes.
+ */
+#undef         __DARWIN_UNIX03
+#define        __DARWIN_UNIX03 1
 #include "namespace.h"
 #include <sys/time.h>          /* for srandomdev() */
 #include <fcntl.h>             /* for srandomdev() */
@@ -216,7 +224,7 @@ static int rand_deg = DEG_3;
 static int rand_sep = SEP_3;
 static uint32_t *end_ptr = &randtbl[DEG_3 + 1];
 
-static inline uint32_t good_rand(int32_t);
+static inline uint32_t good_rand(int32_t) __attribute__((always_inline));
 
 static inline uint32_t good_rand (x)
        int32_t x;
@@ -265,7 +273,7 @@ static inline uint32_t good_rand (x)
  */
 void
 srandom(x)
-       unsigned long x;
+       unsigned x;
 {
        int i, lim;
 
@@ -353,9 +361,9 @@ srandomdev()
  */
 char *
 initstate(seed, arg_state, n)
-       unsigned long seed;             /* seed for R.N.G. */
+       unsigned seed;          /* seed for R.N.G. */
        char *arg_state;                /* pointer to state array */
-       long n;                         /* # bytes of state info */
+       size_t n;                               /* # bytes of state info */
 {
        char *ostate = (char *)(&state[-1]);
        uint32_t *int_arg_state = (uint32_t *)arg_state;
@@ -421,7 +429,7 @@ initstate(seed, arg_state, n)
  */
 char *
 setstate(arg_state)
-       char *arg_state;                /* pointer to state array */
+       const char *arg_state;          /* pointer to state array */
 {
        uint32_t *new_state = (uint32_t *)arg_state;
        uint32_t type = new_state[0] % MAX_TYPES;