cpuid_info
struct cpuid_values cpuid_info;
cpuid_info.eax = 0;
__libc_get_cpuid(0x80000000, (uint_t *)&cpuid_info, -1);
maxeax = cpuid_info.eax;
__libc_get_cpuid(0x80000005, (uint_t *)&cpuid_info, -1);
l1_cache_size = ((cpuid_info.ecx >> 24) & 0xff) * 1024;
__libc_get_cpuid(0x80000006, (uint_t *)&cpuid_info, -1);
l2_cache_size = ((cpuid_info.ecx >> 16) & 0xffff) * 1024;
l3_cache_size = ((cpuid_info.edx >> 18) & 0x3fff) * 512 * 1024;
__libc_get_cpuid(0x80000008, (uint_t *)&cpuid_info, -1);
ncores = (cpuid_info.ecx & 0xff) + 1;
struct cpuid_values cpuid_info;
__libc_get_cpuid(0, &cpuid_info, 0);
if ((cpuid_info.ebx == 0x68747541) && /* Auth */
(cpuid_info.edx == 0x69746e65) && /* enti */
(cpuid_info.ecx == 0x444d4163)) { /* cAMD */
if ((cpuid_info.ebx != 0x756e6547) || /* Genu */
(cpuid_info.edx != 0x49656e69) || /* ineI */
(cpuid_info.ecx != 0x6c65746e)) { /* ntel */
if (cpuid_info.eax >= 4) {
__libc_get_cpuid(1, &cpuid_info, 0);
if (cpuid_info.ecx & CPUID_INTC_ECX_SSE4_2) {
if (cpuid_info.ecx & CPUID_INTC_ECX_SSE4_1) {
if (cpuid_info.ecx & CPUID_INTC_ECX_SSSE3) {
if (cpuid_info.ecx & CPUID_INTC_ECX_SSE3) {
if (cpuid_info.edx & CPUID_INTC_EDX_SSE2) {
struct cpuid_values cpuid_info;
__libc_get_cpuid(4, (uint_t *)&cpuid_info, cache_index);
cache_type = cpuid_info.eax & 0x1f;
cache_level = (cpuid_info.eax >> 0x5) & 0x7;
line_size = (cpuid_info.ebx & 0xfff) + 1;
partitions = ((cpuid_info.ebx >> 12) & 0x3ff) + 1;
ways = ((cpuid_info.ebx >> 22) & 0x3ff) + 1;
sets = cpuid_info.ecx + 1;
struct cpuid_info *mcpu_cpi;
struct cpuid_info;
static struct cpuid_info cpuid_info0;
struct cpuid_info *cpi = cpu->cpu_m.mcpu_cpi;
cpuid_gather_ext_topo_leaf(struct cpuid_info *cpi, uint32_t leaf)
struct cpuid_info *cpi = cpu->cpu_m.mcpu_cpi;
cpuid_gather_apicid(struct cpuid_info *cpi)
cpuid_amd_ncores(struct cpuid_info *cpi, uint_t *ncpus, uint_t *ncores)
cpuid_intel_ncores(struct cpuid_info *cpi, uint_t *ncpus, uint_t *ncores)
struct cpuid_info *cpi = cpu->cpu_m.mcpu_cpi;
struct cpuid_info *cpi = cpu->cpu_m.mcpu_cpi;
struct cpuid_info *cpi = cpu->cpu_m.mcpu_cpi;
struct cpuid_info *cpi = cpu->cpu_m.mcpu_cpi;
struct cpuid_info *cpi = cpu->cpu_m.mcpu_cpi;
struct cpuid_info *cpi = cpu->cpu_m.mcpu_cpi;
struct cpuid_info *cpi = cpu->cpu_m.mcpu_cpi;
struct cpuid_info *cpi = cpu->cpu_m.mcpu_cpi;
struct cpuid_info *cpi = cpu->cpu_m.mcpu_cpi;
struct cpuid_info *cpi = cpu->cpu_m.mcpu_cpi;
struct cpuid_info *cpi;
struct cpuid_info *cpi = cpu->cpu_m.mcpu_cpi;
struct cpuid_info *cpi = cpu->cpu_m.mcpu_cpi;
struct cpuid_info *cpi = cpu->cpu_m.mcpu_cpi;
struct cpuid_info *cpi;
struct cpuid_info *cpi;
struct cpuid_info *cpi = cpu->cpu_m.mcpu_cpi;
intel_cpubrand(const struct cpuid_info *cpi)
amd_cpubrand(const struct cpuid_info *cpi)
cyrix_cpubrand(struct cpuid_info *cpi, uint_t type)
fabricate_brandstr(struct cpuid_info *cpi)
struct cpuid_info *cpi = cpu->cpu_m.mcpu_cpi;
struct cpuid_info *cpi;
struct cpuid_info *cpi;
struct cpuid_info *cpi = cpu->cpu_m.mcpu_cpi;
struct cpuid_info *cpi = cpu->cpu_m.mcpu_cpi;
struct cpuid_info *cpi;
struct cpuid_info *cpi;
struct cpuid_info *cpi;
struct cpuid_info *cpi = cpu->cpu_m.mcpu_cpi;
struct cpuid_info *cpi;
intel_cpuid_4_cache_info(struct cachetab *ct, struct cpuid_info *cpi)
intel_walk_cacheinfo(struct cpuid_info *cpi,
cyrix_walk_cacheinfo(struct cpuid_info *cpi,
amd_cache_info(struct cpuid_info *cpi, dev_info_t *devi)
x86_which_cacheinfo(struct cpuid_info *cpi)
struct cpuid_info *cpi)
amd_l2cacheinfo(struct cpuid_info *cpi, struct l2info *l2i)
struct cpuid_info *cpi = cpu->cpu_m.mcpu_cpi;
struct cpuid_info *cpi;
struct cpuid_info *cpi;
struct cpuid_info *cpi = cp->cpu_m.mcpu_cpi;
struct cpuid_info *cpi = CPU->cpu_m.mcpu_cpi;
struct cpuid_info *cpi;
struct cpuid_info *cpi = cpu->cpu_m.mcpu_cpi;
cpuid_cache_topo_sup(const struct cpuid_info *cpi)
const struct cpuid_info *cpi;
const struct cpuid_info *cpi;
struct cpuid_info;
struct cpuid_info *);