34 typedef struct as_random_s {
73 static inline uint64_t
77 uint64_t s1 = random->
seed0;
78 const uint64_t s0 = random->
seed1;
81 random->
seed1 = (s1 ^ s0 ^ (s1 >> 18) ^ (s0 >> 5));
82 return random->
seed1 + s0;
88 static inline uint32_t
109 static inline uint32_t
static uint32_t as_random_get_uint32()
static uint32_t as_random_next_uint32(as_random *random)
static uint64_t as_random_next_uint64(as_random *random)
__thread as_random as_rand
static as_random * as_random_instance()
void as_random_init(as_random *random)
uint64_t as_random_get_uint64()
void as_random_next_bytes(as_random *random, uint8_t *bytes, uint32_t len)
static void as_random_get_bytes(uint8_t *bytes, uint32_t len)