1 #ifndef _library__random__hpp__included__
2 #define _library__random__hpp__included__
10 * Initialize random number generator.
12 * Throws std::runtime_error: Can't initialize RNG.
16 * Generate random bits. Automatically initializes the generator if not already initialized.
18 * Parameter buffer: The buffer to fill.
19 * Parameter buffersize: Number of bytes to fill.
20 * Throws std::runtime_error: Can't initialize RNG.
22 void generate(void* buffer
, size_t buffersize
);
24 * Get random number from arch-specific RNG.
26 * Returns: Random number, or 0 if not supported.
28 * Note: Beware, the random numbers might be weak.
30 uint64_t arch_get_random();
34 * Returns: TSC, or 0 if not supported.
36 uint64_t arch_get_tsc();