rate-submit: remove code that can never be executed
[fio.git] / lib / rand.h
index bff4a35167cbbfc95dc9258c54b5bbec3f1400e4..1676cf98ed567653cded97eaf00a1beabe808b58 100644 (file)
@@ -4,7 +4,6 @@
 #include <inttypes.h>
 #include <assert.h>
 #include "types.h"
-#include "../arch/arch.h"
 
 #define FRAND32_MAX    (-1U)
 #define FRAND64_MAX    (-1ULL)
@@ -115,17 +114,38 @@ static inline double __rand_0_1(struct frand_state *state)
        }
 }
 
-/*
- * Generate a random value between 'start' and 'end', both inclusive
- */
-static inline int rand32_between(struct frand_state *state, int start, int end)
+static inline uint32_t rand32_upto(struct frand_state *state, uint32_t end)
 {
        uint32_t r;
 
        assert(!state->use64);
 
        r = __rand32(&state->state32);
-       return start + (int) ((double)end * (r / (FRAND32_MAX + 1.0)));
+       end++;
+       return (int) ((double)end * (r / (FRAND32_MAX + 1.0)));
+}
+
+static inline uint64_t rand64_upto(struct frand_state *state, uint64_t end)
+{
+       uint64_t r;
+
+       assert(state->use64);
+
+       r = __rand64(&state->state64);
+       end++;
+       return (uint64_t) ((double)end * (r / (FRAND64_MAX + 1.0)));
+}
+
+/*
+ * Generate a random value between 'start' and 'end', both inclusive
+ */
+static inline uint64_t rand_between(struct frand_state *state, uint64_t start,
+                                   uint64_t end)
+{
+       if (state->use64)
+               return start + rand64_upto(state, end - start);
+       else
+               return start + rand32_upto(state, end - start);
 }
 
 extern void init_rand(struct frand_state *, bool);