20 unsigned int core_ids, apic_ids;
21 unsigned int max_leaf;
30 if (max_leaf >= 0xb) {
32 threads = 1 << (
result.eax & 0x1f);
40 apic_ids = (
result.ebx >> 16) & 0xff;
47 core_ids += (
result.eax >> 26) & 0x3f;
50 threads = (apic_ids / core_ids);
static unsigned int cpuid_edx(unsigned int op)
static unsigned int cpuid_get_max_func(void)
static struct cpuid_result cpuid_ext(int op, unsigned int ecx)
bool intel_ht_sibling(void)
bool intel_ht_supported(void)
static __always_inline unsigned int initial_lapicid(void)