33 #include "ws_attributes.h"
49 #if defined(_M_IX86) || defined(_M_X64)
51 ws_cpuid(uint32_t *CPUInfo, uint32_t selector)
55 CPUInfo[0] = CPUInfo[1] = CPUInfo[2] = CPUInfo[3] = 0;
56 __cpuid((
int *) CPUInfo, selector);
62 ws_cpuid(uint32_t *CPUInfo _U_,
int selector _U_)
69 #elif defined(__GNUC__)
71 #if defined(__x86_64__)
73 ws_cpuid(uint32_t *CPUInfo,
int selector)
75 __asm__ __volatile__(
"cpuid"
84 #elif defined(__i386__)
86 ws_cpuid(uint32_t *CPUInfo _U_,
int selector _U_)
115 ws_cpuid(uint32_t *CPUInfo _U_,
int selector _U_)
125 ws_cpuid(uint32_t *CPUInfo _U_,
int selector _U_)
136 if (!ws_cpuid(CPUInfo, 1))
140 return (CPUInfo[2] & (1 << 20));