skip skeleton comments
[fio.git] / lib / lfsr.c
index a4f1fb13b64f7b1087970bba0e9c58afafd002db..a32e850a704f08e8e43456a5b684cae6cd8aba22 100644 (file)
@@ -78,7 +78,7 @@ static uint8_t lfsr_taps[64][FIO_MAX_TAPS] =
 
 #define __LFSR_NEXT(__fl, __v)                                         \
        __v = ((__v >> 1) | __fl->cached_bit) ^                 \
-                       (((__v & 1UL) - 1UL) & __fl->xormask);
+                       (((__v & 1ULL) - 1ULL) & __fl->xormask);
 
 static inline void __lfsr_next(struct fio_lfsr *fl, unsigned int spin)
 {
@@ -88,21 +88,37 @@ static inline void __lfsr_next(struct fio_lfsr *fl, unsigned int spin)
         */
        switch (spin) {
                case 15: __LFSR_NEXT(fl, fl->last_val);
+               fallthrough;
                case 14: __LFSR_NEXT(fl, fl->last_val);
+               fallthrough;
                case 13: __LFSR_NEXT(fl, fl->last_val);
+               fallthrough;
                case 12: __LFSR_NEXT(fl, fl->last_val);
+               fallthrough;
                case 11: __LFSR_NEXT(fl, fl->last_val);
+               fallthrough;
                case 10: __LFSR_NEXT(fl, fl->last_val);
+               fallthrough;
                case  9: __LFSR_NEXT(fl, fl->last_val);
+               fallthrough;
                case  8: __LFSR_NEXT(fl, fl->last_val);
+               fallthrough;
                case  7: __LFSR_NEXT(fl, fl->last_val);
+               fallthrough;
                case  6: __LFSR_NEXT(fl, fl->last_val);
+               fallthrough;
                case  5: __LFSR_NEXT(fl, fl->last_val);
+               fallthrough;
                case  4: __LFSR_NEXT(fl, fl->last_val);
+               fallthrough;
                case  3: __LFSR_NEXT(fl, fl->last_val);
+               fallthrough;
                case  2: __LFSR_NEXT(fl, fl->last_val);
+               fallthrough;
                case  1: __LFSR_NEXT(fl, fl->last_val);
+               fallthrough;
                case  0: __LFSR_NEXT(fl, fl->last_val);
+               fallthrough;
                default: break;
        }
 }
@@ -146,7 +162,7 @@ static uint64_t lfsr_create_xormask(uint8_t *taps)
        uint64_t xormask = 0;
 
        for(i = 0; i < FIO_MAX_TAPS && taps[i] != 0; i++)
-               xormask |= 1UL << (taps[i] - 1);
+               xormask |= 1ULL << (taps[i] - 1);
 
        return xormask;
 }
@@ -161,7 +177,7 @@ static uint8_t *find_lfsr(uint64_t size)
         * take that into account.
         */
        for (i = 3; i < 64; i++)
-               if ((1UL << i) > size)
+               if ((1ULL << i) > size)
                        return lfsr_taps[i];
 
        return NULL;
@@ -216,7 +232,7 @@ static int prepare_spin(struct fio_lfsr *fl, unsigned int spin)
        return 0;
 }
 
-int lfsr_reset(struct fio_lfsr *fl, unsigned long seed)
+int lfsr_reset(struct fio_lfsr *fl, uint64_t seed)
 {
        uint64_t bitmask = (fl->cached_bit << 1) - 1;
 
@@ -230,8 +246,8 @@ int lfsr_reset(struct fio_lfsr *fl, unsigned long seed)
        return 0;
 }
 
-int lfsr_init(struct fio_lfsr *fl, uint64_t nums, unsigned long seed,
-               unsigned int spin)
+int lfsr_init(struct fio_lfsr *fl, uint64_t nums, uint64_t seed,
+             unsigned int spin)
 {
        uint8_t *taps;
 
@@ -241,7 +257,7 @@ int lfsr_init(struct fio_lfsr *fl, uint64_t nums, unsigned long seed,
 
        fl->max_val = nums - 1;
        fl->xormask = lfsr_create_xormask(taps);
-       fl->cached_bit = 1UL << (taps[0] - 1);
+       fl->cached_bit = 1ULL << (taps[0] - 1);
 
        if (prepare_spin(fl, spin))
                return 1;