Print this page
5094 Update libsmbios with recent items
Reviewed by: Dan McDonald <danmcd@omniti.com>
Reviewed by: Josef 'Jeff' Sipek<jeffpc@josefsipek.net>
Reviewed by: Garrett D'Amore <garrett@damore.org>

*** 18,27 **** --- 18,28 ---- * * CDDL HEADER END */ /* + * Copyright 2015 OmniTI Computer Consulting, Inc. All rights reserved. * Copyright 2010 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #include <sys/sysmacros.h>
*** 335,344 **** --- 336,347 ---- int elem_cnt; (void) smbios_info_chassis(shp, id, &c); oprintf(fp, " OEM Data: 0x%x\n", c.smbc_oemdata); + oprintf(fp, " SKU number: %s\n", + c.smbc_sku == NULL ? "<unknown>" : c.smbc_sku); oprintf(fp, " Lock Present: %s\n", c.smbc_lock ? "Y" : "N"); desc_printf(smbios_chassis_type_desc(c.smbc_type), fp, " Chassis Type: 0x%x", c.smbc_type);
*** 396,405 **** --- 399,412 ---- status = SMB_PRSTATUS_STATUS(p.smbp_status); desc_printf(smbios_processor_family_desc(p.smbp_family), fp, " Family: %u", p.smbp_family); + if (p.smbp_family2 != 0) + desc_printf(smbios_processor_family_desc(p.smbp_family2), + fp, " Family Ext: %u", p.smbp_family2); + oprintf(fp, " CPUID: 0x%llx\n", (u_longlong_t)p.smbp_cpuid); desc_printf(smbios_processor_type_desc(p.smbp_type), fp, " Type: %u", p.smbp_type);
*** 430,439 **** --- 437,468 ---- } else { oprintf(fp, " Supported Voltages: %.1fV\n", (float)SMB_PRV_VOLTAGE(p.smbp_voltage) / 10); } + if (p.smbp_corecount != 0) + oprintf(fp, " Core Count: %u\n", p.smbp_corecount); + else + oprintf(fp, " Core Count: Unknown\n"); + + if (p.smbp_coresenabled != 0) + oprintf(fp, " Cores Enabled: %u\n", p.smbp_coresenabled); + else + oprintf(fp, " Cores Enabled: Unknown\n"); + + if (p.smbp_threadcount != 0) + oprintf(fp, " Thread Count: %u\n", p.smbp_threadcount); + else + oprintf(fp, " Thread Count: Unknown\n"); + + if (p.smbp_cflags) { + flag_printf(fp, "Processor Characteristics", + p.smbp_cflags, sizeof (p.smbp_cflags) * NBBY, + smbios_processor_core_flag_name, + smbios_processor_core_flag_desc); + } + if (p.smbp_clkspeed != 0) oprintf(fp, " External Clock Speed: %uMHz\n", p.smbp_clkspeed); else oprintf(fp, " External Clock Speed: Unknown\n");
*** 766,788 **** else if (md.smbmd_set == (uint8_t)-1u) oprintf(fp, " Set: Unknown\n"); else oprintf(fp, " Set: %u\n", md.smbmd_set); desc_printf(smbios_memdevice_type_desc(md.smbmd_type), fp, " Memory Type: %u", md.smbmd_type); flag_printf(fp, "Flags", md.smbmd_flags, sizeof (md.smbmd_flags) * NBBY, smbios_memdevice_flag_name, smbios_memdevice_flag_desc); if (md.smbmd_speed != 0) ! oprintf(fp, " Speed: %uns\n", md.smbmd_speed); else oprintf(fp, " Speed: Unknown\n"); oprintf(fp, " Device Locator: %s\n", md.smbmd_dloc); oprintf(fp, " Bank Locator: %s\n", md.smbmd_bloc); } static void print_memarrmap(smbios_hdl_t *shp, id_t id, FILE *fp) { --- 795,850 ---- else if (md.smbmd_set == (uint8_t)-1u) oprintf(fp, " Set: Unknown\n"); else oprintf(fp, " Set: %u\n", md.smbmd_set); + if (md.smbmd_rank != 0) { + desc_printf(smbios_memdevice_rank_desc(md.smbmd_rank), + fp, " Rank: %u", md.smbmd_rank); + } else { + oprintf(fp, " Rank: Unknown\n"); + } + desc_printf(smbios_memdevice_type_desc(md.smbmd_type), fp, " Memory Type: %u", md.smbmd_type); flag_printf(fp, "Flags", md.smbmd_flags, sizeof (md.smbmd_flags) * NBBY, smbios_memdevice_flag_name, smbios_memdevice_flag_desc); if (md.smbmd_speed != 0) ! oprintf(fp, " Speed: %u MHz\n", md.smbmd_speed); else oprintf(fp, " Speed: Unknown\n"); + if (md.smbmd_clkspeed != 0) + oprintf(fp, " Configured Speed: %u MHz\n", md.smbmd_clkspeed); + else + oprintf(fp, " Configured Speed: Unknown\n"); + oprintf(fp, " Device Locator: %s\n", md.smbmd_dloc); oprintf(fp, " Bank Locator: %s\n", md.smbmd_bloc); + + if (md.smbmd_minvolt != 0) { + oprintf(fp, " Minimum Voltage: %.2fV\n", + md.smbmd_minvolt / 1000.0); + } else { + oprintf(fp, " Minimum Voltage: Unknown\n"); + } + + if (md.smbmd_maxvolt != 0) { + oprintf(fp, " Maximum Voltage: %.2fV\n", + md.smbmd_maxvolt / 1000.0); + } else { + oprintf(fp, " Maximum Voltage: Unknown\n"); + } + + if (md.smbmd_confvolt != 0) { + oprintf(fp, " Configured Voltage: %.2fV\n", + md.smbmd_confvolt / 1000.0); + } else { + oprintf(fp, " Configured Voltage: Unknown\n"); + } } static void print_memarrmap(smbios_hdl_t *shp, id_t id, FILE *fp) {
*** 977,990 **** oprintf(fp, "%-5u %-4lu", (uint_t)sp->smbstr_id, (ulong_t)sp->smbstr_size); if ((s = smbios_type_name(sp->smbstr_type)) != NULL) ! oprintf(fp, " %s", s); else if (sp->smbstr_type > SMB_TYPE_OEM_LO && sp->smbstr_type < SMB_TYPE_OEM_HI) ! oprintf(fp, " %s+%u", "SMB_TYPE_OEM_LO", sp->smbstr_type - SMB_TYPE_OEM_LO); else oprintf(fp, " %u", sp->smbstr_type); if ((s = smbios_type_desc(sp->smbstr_type)) != NULL) --- 1039,1052 ---- oprintf(fp, "%-5u %-4lu", (uint_t)sp->smbstr_id, (ulong_t)sp->smbstr_size); if ((s = smbios_type_name(sp->smbstr_type)) != NULL) ! oprintf(fp, " (%u) %s", sp->smbstr_type, s); else if (sp->smbstr_type > SMB_TYPE_OEM_LO && sp->smbstr_type < SMB_TYPE_OEM_HI) ! oprintf(fp, " (%u) %s+%u", sp->smbstr_type, "SMB_TYPE_OEM_LO", sp->smbstr_type - SMB_TYPE_OEM_LO); else oprintf(fp, " %u", sp->smbstr_type); if ((s = smbios_type_desc(sp->smbstr_type)) != NULL)