Remove hwrand_initialized.
All access to hwrand is now gated by GetRNGState, which initializes the hwrand code.
This commit is contained in:
parent
9d7032e4f0
commit
4ea8e50837
1 changed files with 0 additions and 4 deletions
|
@ -76,7 +76,6 @@ static inline int64_t GetPerformanceCounter()
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(__x86_64__) || defined(__amd64__) || defined(__i386__)
|
#if defined(__x86_64__) || defined(__amd64__) || defined(__i386__)
|
||||||
static std::atomic<bool> hwrand_initialized{false};
|
|
||||||
static bool rdrand_supported = false;
|
static bool rdrand_supported = false;
|
||||||
static constexpr uint32_t CPUID_F1_ECX_RDRAND = 0x40000000;
|
static constexpr uint32_t CPUID_F1_ECX_RDRAND = 0x40000000;
|
||||||
static void InitHardwareRand()
|
static void InitHardwareRand()
|
||||||
|
@ -85,12 +84,10 @@ static void InitHardwareRand()
|
||||||
if (__get_cpuid(1, &eax, &ebx, &ecx, &edx) && (ecx & CPUID_F1_ECX_RDRAND)) {
|
if (__get_cpuid(1, &eax, &ebx, &ecx, &edx) && (ecx & CPUID_F1_ECX_RDRAND)) {
|
||||||
rdrand_supported = true;
|
rdrand_supported = true;
|
||||||
}
|
}
|
||||||
hwrand_initialized.store(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ReportHardwareRand()
|
static void ReportHardwareRand()
|
||||||
{
|
{
|
||||||
assert(hwrand_initialized.load(std::memory_order_relaxed));
|
|
||||||
if (rdrand_supported) {
|
if (rdrand_supported) {
|
||||||
// This must be done in a separate function, as HWRandInit() may be indirectly called
|
// This must be done in a separate function, as HWRandInit() may be indirectly called
|
||||||
// from global constructors, before logging is initialized.
|
// from global constructors, before logging is initialized.
|
||||||
|
@ -110,7 +107,6 @@ static void ReportHardwareRand() {}
|
||||||
|
|
||||||
static bool GetHardwareRand(unsigned char* ent32) {
|
static bool GetHardwareRand(unsigned char* ent32) {
|
||||||
#if defined(__x86_64__) || defined(__amd64__) || defined(__i386__)
|
#if defined(__x86_64__) || defined(__amd64__) || defined(__i386__)
|
||||||
assert(hwrand_initialized.load(std::memory_order_relaxed));
|
|
||||||
if (rdrand_supported) {
|
if (rdrand_supported) {
|
||||||
uint8_t ok;
|
uint8_t ok;
|
||||||
// Not all assemblers support the rdrand instruction, write it in hex.
|
// Not all assemblers support the rdrand instruction, write it in hex.
|
||||||
|
|
Loading…
Reference in a new issue