X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=lib%2Frand.c;h=46ffe4fb0c6b9108685254cbe7f110983eb27088;hb=ee3696bdfd84bb2a0ef0757a6ce0140eea46228a;hp=2e4c66e144b5cc56a04ec8c4747e435368b68a3a;hpb=c3546b531f48a2ff413c9508aed465e0145c8dfc;p=fio.git diff --git a/lib/rand.c b/lib/rand.c index 2e4c66e1..46ffe4fb 100644 --- a/lib/rand.c +++ b/lib/rand.c @@ -34,8 +34,8 @@ */ #include -#include #include "rand.h" +#include "pattern.h" #include "../hash.h" int arch_random; @@ -75,7 +75,7 @@ static void __init_rand64(struct taus258_state *state, uint64_t seed) __rand64(state); } -void init_rand(struct frand_state *state, int use64) +void init_rand(struct frand_state *state, bool use64) { state->use64 = use64; @@ -85,7 +85,7 @@ void init_rand(struct frand_state *state, int use64) __init_rand64(&state->state64, 1); } -void init_rand_seed(struct frand_state *state, unsigned int seed, int use64) +void init_rand_seed(struct frand_state *state, unsigned int seed, bool use64) { state->use64 = use64; @@ -134,32 +134,6 @@ unsigned long fill_random_buf(struct frand_state *fs, void *buf, return r; } -void fill_pattern(void *p, unsigned int len, char *pattern, - unsigned int pattern_bytes) -{ - switch (pattern_bytes) { - case 0: - assert(0); - break; - case 1: - memset(p, pattern[0], len); - break; - default: { - unsigned int i = 0, size = 0; - unsigned char *b = p; - - while (i < len) { - size = pattern_bytes; - if (size > (len - i)) - size = len - i; - memcpy(b+i, pattern, size); - i += size; - } - break; - } - } -} - void __fill_random_buf_percentage(unsigned long seed, void *buf, unsigned int percentage, unsigned int segment, unsigned int len, @@ -169,7 +143,7 @@ void __fill_random_buf_percentage(unsigned long seed, void *buf, if (percentage == 100) { if (pbytes) - fill_pattern(buf, len, pattern, pbytes); + (void)cpy_pattern(pattern, pbytes, buf, len); else memset(buf, 0, len); return; @@ -199,7 +173,7 @@ void __fill_random_buf_percentage(unsigned long seed, void *buf, this_len = len; if (pbytes) - fill_pattern(buf, this_len, pattern, pbytes); + (void)cpy_pattern(pattern, pbytes, buf, this_len); else memset(buf, 0, this_len);