PrOSess/kernel/include/util/cpuid.h

21 lines
435 B
C

#pragma once
#include <cpuid.h>
#include <stdint.h>
#include "util/optional.h"
struct cpuid_result_t {
uint32_t eax;
uint32_t ebx;
uint32_t ecx;
uint32_t edx;
};
inline optional<cpuid_result_t> 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;
}