#include "rand.h"
#include "../hash.h"
+int arch_random;
+
static inline int __seed(unsigned int x, unsigned int m)
{
return (x < m) ? x + m : x;
void *ptr = buf;
while (len) {
+ int this_len;
+
if (len >= sizeof(int64_t)) {
*((int64_t *) ptr) = seed;
- ptr += sizeof(int64_t);
- len -= sizeof(int64_t);
+ this_len = sizeof(int64_t);
} else if (len >= sizeof(int32_t)) {
*((int32_t *) ptr) = seed;
- ptr += sizeof(int32_t);
- len -= sizeof(int32_t);
+ this_len = sizeof(int32_t);
} else if (len >= sizeof(int16_t)) {
*((int16_t *) ptr) = seed;
- ptr += sizeof(int16_t);
- len -= sizeof(int16_t);
+ this_len = sizeof(int16_t);
} else {
*((int8_t *) ptr) = seed;
- ptr += sizeof(int8_t);
- len -= sizeof(int8_t);
+ this_len = sizeof(int8_t);
}
+ ptr += this_len;
+ len -= this_len;
seed *= GOLDEN_RATIO_PRIME;
seed >>= 3;
}