#pragma once #include #include #include "util/optional.h" struct cpuid_result_t { uint32_t eax; uint32_t ebx; uint32_t ecx; uint32_t edx; }; inline optional cpuid(uint32_t leaf, uint32_t subleaf = 0) { cpuid_result_t result{}; if (__get_cpuid_count(leaf, subleaf, &result.eax, &result.ebx, &result.ecx, &result.edx) == 0) { return {}; } return result; }