#include "igt_rand.h" /** * SECTION:igt_rand * @short_description: Random numbers helper library * @title: Random * @include: igt_rand.h */ static uint32_t global = 0x12345678; uint32_t hars_petruska_f54_1_random_seed(uint32_t new_state) { uint32_t old_state = global; global = new_state; return old_state; } uint32_t hars_petruska_f54_1_random(uint32_t *s) { #define rol(x,k) ((x << k) | (x >> (32-k))) return *s = (*s ^ rol(*s, 5) ^ rol(*s, 24)) + 0x37798849; #undef rol } uint32_t hars_petruska_f54_1_random_unsafe(void) { return hars_petruska_f54_1_random(&global); }