Add generic random helpers
authorJens Axboe <jens.axboe@oracle.com>
Tue, 15 Dec 2009 09:28:37 +0000 (10:28 +0100)
committerJens Axboe <jens.axboe@oracle.com>
Tue, 15 Dec 2009 09:28:37 +0000 (10:28 +0100)
FreeBSD and OSX can both use these.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
os/os-freebsd.h
os/os-mac.h
os/os.h

index f4c5e235b698986e030ddc18f3dbd164ca918215..8d965aadf87ec84372f83bd07029f2e414c35992 100644 (file)
@@ -7,11 +7,11 @@
 #define FIO_HAVE_POSIXAIO
 #define FIO_HAVE_ODIRECT
 #define FIO_USE_GENERIC_BDEV_SIZE
+#define FIO_USE_GENERIC_RAND
 
 #define OS_MAP_ANON            MAP_ANON
 
 typedef unsigned long os_cpu_mask_t;
-typedef unsigned int os_random_state_t;
 
 static inline int blockdev_invalidate_cache(int fd)
 {
@@ -28,19 +28,6 @@ static inline unsigned long long os_phys_mem(void)
        return mem;
 }
 
-static inline void os_random_seed(unsigned long seed, os_random_state_t *rs)
-{
-       srand(seed);
-}
-
-static inline long os_random_long(os_random_state_t *rs)
-{
-       long val;
-
-       val = rand_r(rs);
-       return val;
-}
-
 #ifdef MADV_FREE
 #define FIO_MADV_FREE  MADV_FREE
 #endif
index 77c21656d34bfbbeb3fcec50f9fc79a5439e4cb2..1c3798bfb56f8c52fbd166f60dbb6ce80cb1ad9b 100644 (file)
 
 #define FIO_HAVE_POSIXAIO
 #define FIO_USE_GENERIC_BDEV_SIZE
+#define FIO_USE_GENERIC_RAND
 
 #define OS_MAP_ANON            MAP_ANON
 
 typedef unsigned long os_cpu_mask_t;
-typedef unsigned int os_random_state_t;
 typedef unsigned int clockid_t;
 
 static inline int blockdev_invalidate_cache(int fd)
@@ -35,18 +35,4 @@ static inline unsigned long long os_phys_mem(void)
        sysctl(mib, 2, &mem, &len, NULL, 0);
        return mem;
 }
-
-static inline void os_random_seed(unsigned long seed, os_random_state_t *rs)
-{
-       srand(seed);
-}
-
-static inline long os_random_long(os_random_state_t *rs)
-{
-       long val;
-
-       val = rand_r(rs);
-       return val;
-}
-
 #endif
diff --git a/os/os.h b/os/os.h
index a14c48578fc7774e998a0587525975dc1d28c3b8..9a48c603534d9629da59b0f533a5b20919d0150f 100644 (file)
--- a/os/os.h
+++ b/os/os.h
@@ -124,4 +124,21 @@ static inline int blockdev_size(int fd, unsigned long long *bytes)
 }
 #endif
 
+#ifdef FIO_USE_GENERIC_RAND
+typedef unsigned int os_random_state_t;
+
+static inline void os_random_seed(unsigned long seed, os_random_state_t *rs)
+{
+       srand(seed);
+}
+
+static inline long os_random_long(os_random_state_t *rs)
+{
+       long val;
+
+       val = rand_r(rs);
+       return val;
+}
+#endif
+
 #endif