1 /* 2 * Copyright 2015 OmniTI Computer Consulting, Inc. All rights reserved. 3 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 4 * Use is subject to license terms. 5 */ 6 7 #include <smbios.h> 8 9 const char * 10 smbios_bboard_flag_name(uint_t x) 11 { 12 switch (x) { 13 case SMB_BBFL_MOTHERBOARD: return ("SMB_BBFL_MOTHERBOARD"); 14 case SMB_BBFL_NEEDAUX: return ("SMB_BBFL_NEEDAUX"); 15 case SMB_BBFL_REMOVABLE: return ("SMB_BBFL_REMOVABLE"); 16 case SMB_BBFL_REPLACABLE: return ("SMB_BBFL_REPLACABLE"); 17 case SMB_BBFL_HOTSWAP: return ("SMB_BBFL_HOTSWAP"); 18 } 19 return (NULL); 20 } 21 22 const char * 23 smbios_bios_flag_name(uint64_t x) 24 { 25 switch (x) { 26 case SMB_BIOSFL_RSV0: return ("SMB_BIOSFL_RSV0"); 27 case SMB_BIOSFL_RSV1: return ("SMB_BIOSFL_RSV1"); 28 case SMB_BIOSFL_UNKNOWN: return ("SMB_BIOSFL_UNKNOWN"); 29 case SMB_BIOSFL_BCNOTSUP: return ("SMB_BIOSFL_BCNOTSUP"); 30 case SMB_BIOSFL_ISA: return ("SMB_BIOSFL_ISA"); 31 case SMB_BIOSFL_MCA: return ("SMB_BIOSFL_MCA"); 32 case SMB_BIOSFL_EISA: return ("SMB_BIOSFL_EISA"); 33 case SMB_BIOSFL_PCI: return ("SMB_BIOSFL_PCI"); 34 case SMB_BIOSFL_PCMCIA: return ("SMB_BIOSFL_PCMCIA"); 35 case SMB_BIOSFL_PLUGNPLAY: return ("SMB_BIOSFL_PLUGNPLAY"); 36 case SMB_BIOSFL_APM: return ("SMB_BIOSFL_APM"); 37 case SMB_BIOSFL_FLASH: return ("SMB_BIOSFL_FLASH"); 38 case SMB_BIOSFL_SHADOW: return ("SMB_BIOSFL_SHADOW"); 39 case SMB_BIOSFL_VLVESA: return ("SMB_BIOSFL_VLVESA"); 40 case SMB_BIOSFL_ESCD: return ("SMB_BIOSFL_ESCD"); 41 case SMB_BIOSFL_CDBOOT: return ("SMB_BIOSFL_CDBOOT"); 42 case SMB_BIOSFL_SELBOOT: return ("SMB_BIOSFL_SELBOOT"); 43 case SMB_BIOSFL_ROMSOCK: return ("SMB_BIOSFL_ROMSOCK"); 44 case SMB_BIOSFL_PCMBOOT: return ("SMB_BIOSFL_PCMBOOT"); 45 case SMB_BIOSFL_EDD: return ("SMB_BIOSFL_EDD"); 46 case SMB_BIOSFL_NEC9800: return ("SMB_BIOSFL_NEC9800"); 47 case SMB_BIOSFL_TOSHIBA: return ("SMB_BIOSFL_TOSHIBA"); 48 case SMB_BIOSFL_525_360K: return ("SMB_BIOSFL_525_360K"); 49 case SMB_BIOSFL_525_12M: return ("SMB_BIOSFL_525_12M"); 50 case SMB_BIOSFL_35_720K: return ("SMB_BIOSFL_35_720K"); 51 case SMB_BIOSFL_35_288M: return ("SMB_BIOSFL_35_288M"); 52 case SMB_BIOSFL_I5_PRINT: return ("SMB_BIOSFL_I5_PRINT"); 53 case SMB_BIOSFL_I9_KBD: return ("SMB_BIOSFL_I9_KBD"); 54 case SMB_BIOSFL_I14_SER: return ("SMB_BIOSFL_I14_SER"); 55 case SMB_BIOSFL_I17_PRINTER: return ("SMB_BIOSFL_I17_PRINTER"); 56 case SMB_BIOSFL_I10_CGA: return ("SMB_BIOSFL_I10_CGA"); 57 case SMB_BIOSFL_NEC_PC98: return ("SMB_BIOSFL_NEC_PC98"); 58 } 59 return (NULL); 60 } 61 62 const char * 63 smbios_bios_xb1_name(uint_t x) 64 { 65 switch (x) { 66 case SMB_BIOSXB1_ACPI: return ("SMB_BIOSXB1_ACPI"); 67 case SMB_BIOSXB1_USBL: return ("SMB_BIOSXB1_USBL"); 68 case SMB_BIOSXB1_AGP: return ("SMB_BIOSXB1_AGP"); 69 case SMB_BIOSXB1_I20: return ("SMB_BIOSXB1_I20"); 70 case SMB_BIOSXB1_LS120: return ("SMB_BIOSXB1_LS120"); 71 case SMB_BIOSXB1_ATZIP: return ("SMB_BIOSXB1_ATZIP"); 72 case SMB_BIOSXB1_1394: return ("SMB_BIOSXB1_1394"); 73 case SMB_BIOSXB1_SMBAT: return ("SMB_BIOSXB1_SMBAT"); 74 } 75 return (NULL); 76 } 77 78 const char * 79 smbios_bios_xb2_name(uint_t x) 80 { 81 switch (x) { 82 case SMB_BIOSXB2_BBOOT: return ("SMB_BIOSXB2_BBOOT"); 83 case SMB_BIOSXB2_FKNETSVC: return ("SMB_BIOSXB2_FKNETSVC"); 84 case SMB_BIOSXB2_ETCDIST: return ("SMB_BIOSXB2_ETCDIST"); 85 case SMB_BIOSXB2_UEFI: return ("SMB_BIOSXB2_UEFI"); 86 case SMB_BIOSXB2_VM: return ("SMB_BIOSXB2_VM"); 87 } 88 return (NULL); 89 } 90 91 const char * 92 smbios_cache_ctype_name(uint_t x) 93 { 94 switch (x) { 95 case SMB_CAT_OTHER: return ("SMB_CAT_OTHER"); 96 case SMB_CAT_UNKNOWN: return ("SMB_CAT_UNKNOWN"); 97 case SMB_CAT_NONBURST: return ("SMB_CAT_NONBURST"); 98 case SMB_CAT_BURST: return ("SMB_CAT_BURST"); 99 case SMB_CAT_PBURST: return ("SMB_CAT_PBURST"); 100 case SMB_CAT_SYNC: return ("SMB_CAT_SYNC"); 101 case SMB_CAT_ASYNC: return ("SMB_CAT_ASYNC"); 102 } 103 return (NULL); 104 } 105 106 const char * 107 smbios_cache_flag_name(uint_t x) 108 { 109 switch (x) { 110 case SMB_CAF_ENABLED: return ("SMB_CAF_ENABLED"); 111 case SMB_CAF_SOCKETED: return ("SMB_CAF_SOCKETED"); 112 } 113 return (NULL); 114 } 115 116 const char * 117 smbios_evlog_flag_name(uint_t x) 118 { 119 switch (x) { 120 case SMB_EVFL_VALID: return ("SMB_EVFL_VALID"); 121 case SMB_EVFL_FULL: return ("SMB_EVFL_FULL"); 122 } 123 return (NULL); 124 } 125 126 const char * 127 smbios_ipmi_flag_name(uint_t x) 128 { 129 switch (x) { 130 case SMB_IPMI_F_IOADDR: return ("SMB_IPMI_F_IOADDR"); 131 case SMB_IPMI_F_INTRSPEC: return ("SMB_IPMI_F_INTRSPEC"); 132 case SMB_IPMI_F_INTRHIGH: return ("SMB_IPMI_F_INTRHIGH"); 133 case SMB_IPMI_F_INTREDGE: return ("SMB_IPMI_F_INTREDGE"); 134 } 135 return (NULL); 136 } 137 138 const char * 139 smbios_powersup_flag_name(uint_t x) 140 { 141 switch (x) { 142 case SMB_POWERSUP_F_HOT: return ("SMB_POWERSUP_F_HOT"); 143 case SMB_POWERSUP_F_PRESENT: return ("SMB_POWERSUP_F_PRESENT"); 144 case SMB_POWERSUP_F_UNPLUG: return ("SMB_POWERSUP_F_UNPLUG"); 145 } 146 return (NULL); 147 } 148 149 const char * 150 smbios_memdevice_op_capab_name(uint_t x) 151 { 152 switch (x) { 153 case SMB_MOMC_OTHER: return ("SMB_MOMC_OTHER"); 154 case SMB_MOMC_UNKNOWN: return ("SMB_MOMC_UNKNOWN"); 155 case SMB_MOMC_VOLATILE: return ("SMB_MOMC_VOLATILE"); 156 case SMB_MOMC_BYTE_PM: return ("SMB_MOMC_BYTE_PM"); 157 case SMB_MOMC_BLOCK_PM: return ("SMB_MOMC_BLOCK_PM"); 158 } 159 return (NULL); 160 } 161 162 const char * 163 smbios_memdevice_flag_name(uint_t x) 164 { 165 switch (x) { 166 case SMB_MDF_OTHER: return ("SMB_MDF_OTHER"); 167 case SMB_MDF_UNKNOWN: return ("SMB_MDF_UNKNOWN"); 168 case SMB_MDF_FASTPG: return ("SMB_MDF_FASTPG"); 169 case SMB_MDF_STATIC: return ("SMB_MDF_STATIC"); 170 case SMB_MDF_PSTATIC: return ("SMB_MDF_PSTATIC"); 171 case SMB_MDF_RAMBUS: return ("SMB_MDF_RAMBUS"); 172 case SMB_MDF_SYNC: return ("SMB_MDF_SYNC"); 173 case SMB_MDF_CMOS: return ("SMB_MDF_CMOS"); 174 case SMB_MDF_EDO: return ("SMB_MDF_EDO"); 175 case SMB_MDF_WDRAM: return ("SMB_MDF_WDRAM"); 176 case SMB_MDF_CDRAM: return ("SMB_MDF_CDRAM"); 177 case SMB_MDF_NV: return ("SMB_MDF_NV"); 178 case SMB_MDF_REG: return ("SMB_MDF_REG"); 179 case SMB_MDF_UNREG: return ("SMB_MDF_UNREG"); 180 case SMB_MDF_LRDIMM: return ("SMB_MDF_LRDIMM"); 181 } 182 return (NULL); 183 } 184 185 const char * 186 smbios_processor_core_flag_name(uint_t x) 187 { 188 switch (x) { 189 case SMB_PRC_RESERVED: return ("SMB_PRC_RESERVED"); 190 case SMB_PRC_UNKNOWN: return ("SMB_PRC_UNKNOWN"); 191 case SMB_PRC_64BIT: return ("SMB_PRC_64BIT"); 192 case SMB_PRC_MC: return ("SMB_PRC_MC"); 193 case SMB_PRC_HT: return ("SMB_PRC_HT"); 194 case SMB_PRC_NX: return ("SMB_PRC_NX"); 195 case SMB_PRC_VT: return ("SMB_PRC_VT"); 196 case SMB_PRC_PM: return ("SMB_PRC_PM"); 197 } 198 return (NULL); 199 } 200 201 const char * 202 smbios_type_name(uint_t x) 203 { 204 switch (x) { 205 case SMB_TYPE_BIOS: return ("SMB_TYPE_BIOS"); 206 case SMB_TYPE_SYSTEM: return ("SMB_TYPE_SYSTEM"); 207 case SMB_TYPE_BASEBOARD: return ("SMB_TYPE_BASEBOARD"); 208 case SMB_TYPE_CHASSIS: return ("SMB_TYPE_CHASSIS"); 209 case SMB_TYPE_PROCESSOR: return ("SMB_TYPE_PROCESSOR"); 210 case SMB_TYPE_MEMCTL: return ("SMB_TYPE_MEMCTL"); 211 case SMB_TYPE_MEMMOD: return ("SMB_TYPE_MEMMOD"); 212 case SMB_TYPE_CACHE: return ("SMB_TYPE_CACHE"); 213 case SMB_TYPE_PORT: return ("SMB_TYPE_PORT"); 214 case SMB_TYPE_SLOT: return ("SMB_TYPE_SLOT"); 215 case SMB_TYPE_OBDEVS: return ("SMB_TYPE_OBDEVS"); 216 case SMB_TYPE_OEMSTR: return ("SMB_TYPE_OEMSTR"); 217 case SMB_TYPE_SYSCONFSTR: return ("SMB_TYPE_SYSCONFSTR"); 218 case SMB_TYPE_LANG: return ("SMB_TYPE_LANG"); 219 case SMB_TYPE_GROUP: return ("SMB_TYPE_GROUP"); 220 case SMB_TYPE_EVENTLOG: return ("SMB_TYPE_EVENTLOG"); 221 case SMB_TYPE_MEMARRAY: return ("SMB_TYPE_MEMARRAY"); 222 case SMB_TYPE_MEMDEVICE: return ("SMB_TYPE_MEMDEVICE"); 223 case SMB_TYPE_MEMERR32: return ("SMB_TYPE_MEMERR32"); 224 case SMB_TYPE_MEMARRAYMAP: return ("SMB_TYPE_MEMARRAYMAP"); 225 case SMB_TYPE_MEMDEVICEMAP: return ("SMB_TYPE_MEMDEVICEMAP"); 226 case SMB_TYPE_POINTDEV: return ("SMB_TYPE_POINTDEV"); 227 case SMB_TYPE_BATTERY: return ("SMB_TYPE_BATTERY"); 228 case SMB_TYPE_RESET: return ("SMB_TYPE_RESET"); 229 case SMB_TYPE_SECURITY: return ("SMB_TYPE_SECURITY"); 230 case SMB_TYPE_POWERCTL: return ("SMB_TYPE_POWERCTL"); 231 case SMB_TYPE_VPROBE: return ("SMB_TYPE_VPROBE"); 232 case SMB_TYPE_COOLDEV: return ("SMB_TYPE_COOLDEV"); 233 case SMB_TYPE_TPROBE: return ("SMB_TYPE_TPROBE"); 234 case SMB_TYPE_IPROBE: return ("SMB_TYPE_IPROBE"); 235 case SMB_TYPE_OOBRA: return ("SMB_TYPE_OOBRA"); 236 case SMB_TYPE_BIS: return ("SMB_TYPE_BIS"); 237 case SMB_TYPE_BOOT: return ("SMB_TYPE_BOOT"); 238 case SMB_TYPE_MEMERR64: return ("SMB_TYPE_MEMERR64"); 239 case SMB_TYPE_MGMTDEV: return ("SMB_TYPE_MGMTDEV"); 240 case SMB_TYPE_MGMTDEVCP: return ("SMB_TYPE_MGMTDEVCP"); 241 case SMB_TYPE_MGMTDEVDATA: return ("SMB_TYPE_MGMTDEVDATA"); 242 case SMB_TYPE_MEMCHAN: return ("SMB_TYPE_MEMCHAN"); 243 case SMB_TYPE_IPMIDEV: return ("SMB_TYPE_IPMIDEV"); 244 case SMB_TYPE_POWERSUP: return ("SMB_TYPE_POWERSUP"); 245 case SMB_TYPE_ADDINFO: return ("SMB_TYPE_ADDINFO"); 246 case SMB_TYPE_OBDEVEXT: return ("SMB_TYPE_OBDEVEXT"); 247 case SMB_TYPE_MCHI: return ("SMB_TYPE_MCHI"); 248 case SMB_TYPE_TPM: return ("SMB_TYPE_TPM"); 249 case SMB_TYPE_INACTIVE: return ("SMB_TYPE_INACTIVE"); 250 case SMB_TYPE_EOT: return ("SMB_TYPE_EOT"); 251 case SMB_TYPE_OEM_LO: return ("SMB_TYPE_OEM_LO"); 252 case SMB_TYPE_OEM_HI: return ("SMB_TYPE_OEM_HI"); 253 } 254 return (NULL); 255 } 256 257 const char * 258 smbios_slot_ch1_name(uint_t x) 259 { 260 switch (x) { 261 case SMB_SLCH1_UNKNOWN: return ("SMB_SLCH1_UNKNOWN"); 262 case SMB_SLCH1_5V: return ("SMB_SLCH1_5V"); 263 case SMB_SLCH1_33V: return ("SMB_SLCH1_33V"); 264 case SMB_SLCH1_SHARED: return ("SMB_SLCH1_SHARED"); 265 case SMB_SLCH1_PC16: return ("SMB_SLCH1_PC16"); 266 case SMB_SLCH1_PCCB: return ("SMB_SLCH1_PCCB"); 267 case SMB_SLCH1_PCZV: return ("SMB_SLCH1_PCZV"); 268 case SMB_SLCH1_PCMRR: return ("SMB_SLCH1_PCMRR"); 269 } 270 return (NULL); 271 } 272 273 const char * 274 smbios_slot_ch2_name(uint_t x) 275 { 276 switch (x) { 277 case SMB_SLCH2_PME: return ("SMB_SLCH2_PME"); 278 case SMB_SLCH2_HOTPLUG: return ("SMB_SLCH2_HOTPLUG"); 279 case SMB_SLCH2_SMBUS: return ("SMB_SLCH2_SMBUS"); 280 case SMB_SLCH2_BIFUR: return ("SMB_SLCH2_BIFUR"); 281 } 282 return (NULL); 283 } 284 285 const char * 286 smbios_bboard_flag_desc(uint_t x) 287 { 288 switch (x) { 289 case SMB_BBFL_MOTHERBOARD: return ("board is a motherboard"); 290 case SMB_BBFL_NEEDAUX: return ("auxiliary card or daughter req'd"); 291 case SMB_BBFL_REMOVABLE: return ("board is removable"); 292 case SMB_BBFL_REPLACABLE: return ("board is field-replacable"); 293 case SMB_BBFL_HOTSWAP: return ("board is hot-swappable"); 294 } 295 return (NULL); 296 } 297 298 const char * 299 smbios_bboard_type_desc(uint_t x) 300 { 301 switch (x) { 302 case SMB_BBT_UNKNOWN: return ("unknown"); 303 case SMB_BBT_OTHER: return ("other"); 304 case SMB_BBT_SBLADE: return ("server blade"); 305 case SMB_BBT_CSWITCH: return ("connectivity switch"); 306 case SMB_BBT_SMM: return ("system management module"); 307 case SMB_BBT_PROC: return ("processor module"); 308 case SMB_BBT_IO: return ("i/o module"); 309 case SMB_BBT_MEM: return ("memory module"); 310 case SMB_BBT_DAUGHTER: return ("daughterboard"); 311 case SMB_BBT_MOTHER: return ("motherboard"); 312 case SMB_BBT_PROCMEM: return ("processor/memory module"); 313 case SMB_BBT_PROCIO: return ("processor/i/o module"); 314 case SMB_BBT_INTER: return ("interconnect board"); 315 } 316 return (NULL); 317 } 318 319 const char * 320 smbios_bios_flag_desc(uint64_t x) 321 { 322 switch (x) { 323 case SMB_BIOSFL_RSV0: return ("reserved bit zero"); 324 case SMB_BIOSFL_RSV1: return ("reserved bit one"); 325 case SMB_BIOSFL_UNKNOWN: return ("unknown"); 326 case SMB_BIOSFL_BCNOTSUP: return ("BIOS chars not supported"); 327 case SMB_BIOSFL_ISA: return ("ISA is supported"); 328 case SMB_BIOSFL_MCA: return ("MCA is supported"); 329 case SMB_BIOSFL_EISA: return ("EISA is supported"); 330 case SMB_BIOSFL_PCI: return ("PCI is supported"); 331 case SMB_BIOSFL_PCMCIA: return ("PCMCIA is supported"); 332 case SMB_BIOSFL_PLUGNPLAY: return ("Plug and Play is supported"); 333 case SMB_BIOSFL_APM: return ("APM is supported"); 334 case SMB_BIOSFL_FLASH: return ("BIOS is Flash Upgradeable"); 335 case SMB_BIOSFL_SHADOW: return ("BIOS shadowing is allowed"); 336 case SMB_BIOSFL_VLVESA: return ("VL-VESA is supported"); 337 case SMB_BIOSFL_ESCD: return ("ESCD support is available"); 338 case SMB_BIOSFL_CDBOOT: return ("Boot from CD is supported"); 339 case SMB_BIOSFL_SELBOOT: return ("Selectable Boot supported"); 340 case SMB_BIOSFL_ROMSOCK: return ("BIOS ROM is socketed"); 341 case SMB_BIOSFL_PCMBOOT: return ("Boot from PCMCIA supported"); 342 case SMB_BIOSFL_EDD: return ("EDD Spec is supported"); 343 case SMB_BIOSFL_NEC9800: return ("int 0x13 NEC 9800 floppy"); 344 case SMB_BIOSFL_TOSHIBA: return ("int 0x13 Toshiba floppy"); 345 case SMB_BIOSFL_525_360K: return ("int 0x13 5.25\" 360K floppy"); 346 case SMB_BIOSFL_525_12M: return ("int 0x13 5.25\" 1.2M floppy"); 347 case SMB_BIOSFL_35_720K: return ("int 0x13 3.5\" 720K floppy"); 348 case SMB_BIOSFL_35_288M: return ("int 0x13 3.5\" 2.88M floppy"); 349 case SMB_BIOSFL_I5_PRINT: return ("int 0x5 print screen svcs"); 350 case SMB_BIOSFL_I9_KBD: return ("int 0x9 8042 keyboard svcs"); 351 case SMB_BIOSFL_I14_SER: return ("int 0x14 serial svcs"); 352 case SMB_BIOSFL_I17_PRINTER: return ("int 0x17 printer svcs"); 353 case SMB_BIOSFL_I10_CGA: return ("int 0x10 CGA svcs"); 354 case SMB_BIOSFL_NEC_PC98: return ("NEC PC-98"); 355 } 356 return (NULL); 357 } 358 359 const char * 360 smbios_bios_xb1_desc(uint_t x) 361 { 362 switch (x) { 363 case SMB_BIOSXB1_ACPI: return ("ACPI is supported"); 364 case SMB_BIOSXB1_USBL: return ("USB legacy is supported"); 365 case SMB_BIOSXB1_AGP: return ("AGP is supported"); 366 case SMB_BIOSXB1_I20: return ("I2O boot is supported"); 367 case SMB_BIOSXB1_LS120: return ("LS-120 boot is supported"); 368 case SMB_BIOSXB1_ATZIP: return ("ATAPI ZIP drive boot is supported"); 369 case SMB_BIOSXB1_1394: return ("1394 boot is supported"); 370 case SMB_BIOSXB1_SMBAT: return ("Smart Battery is supported"); 371 } 372 return (NULL); 373 } 374 375 const char * 376 smbios_bios_xb2_desc(uint_t x) 377 { 378 switch (x) { 379 case SMB_BIOSXB2_BBOOT: return ("BIOS Boot Specification supported"); 380 case SMB_BIOSXB2_FKNETSVC: return ("F-key Network Svc boot supported"); 381 case SMB_BIOSXB2_ETCDIST: return ("Enable Targeted Content Distrib."); 382 case SMB_BIOSXB2_UEFI: return ("UEFI Specification supported"); 383 case SMB_BIOSXB2_VM: return ("SMBIOS table describes a VM"); 384 } 385 return (NULL); 386 } 387 388 const char * 389 smbios_boot_desc(uint_t x) 390 { 391 switch (x) { 392 case SMB_BOOT_NORMAL: return ("no errors detected"); 393 case SMB_BOOT_NOMEDIA: return ("no bootable media"); 394 case SMB_BOOT_OSFAIL: return ("normal o/s failed to load"); 395 case SMB_BOOT_FWHWFAIL: return ("firmware-detected hardware failure"); 396 case SMB_BOOT_OSHWFAIL: return ("o/s-detected hardware failure"); 397 case SMB_BOOT_USERREQ: return ("user-requested boot (keystroke)"); 398 case SMB_BOOT_SECURITY: return ("system security violation"); 399 case SMB_BOOT_PREVREQ: return ("previously requested image (D)"); 400 case SMB_BOOT_WATCHDOG: return ("watchdog initiated reboot"); 401 case SMB_BOOT_RESV_LO: return ("low end of reserved range"); 402 case SMB_BOOT_RESV_HI: return ("high end of reserved range"); 403 case SMB_BOOT_OEM_LO: return ("low end of OEM-specific range"); 404 case SMB_BOOT_OEM_HI: return ("high end of OEM-specific range"); 405 case SMB_BOOT_PROD_LO: return ("low end of product-specific range"); 406 case SMB_BOOT_PROD_HI: return ("high end of product-specific range"); 407 } 408 return (NULL); 409 } 410 411 const char * 412 smbios_cache_assoc_desc(uint_t x) 413 { 414 switch (x) { 415 case SMB_CAA_OTHER: return ("other"); 416 case SMB_CAA_UNKNOWN: return ("unknown"); 417 case SMB_CAA_DIRECT: return ("direct mapped"); 418 case SMB_CAA_2WAY: return ("2-way set associative"); 419 case SMB_CAA_4WAY: return ("4-way set associative"); 420 case SMB_CAA_FULL: return ("fully associative"); 421 case SMB_CAA_8WAY: return ("8-way set associative"); 422 case SMB_CAA_16WAY: return ("16-way set associative"); 423 case SMB_CAA_12WAY: return ("12-way set associative"); 424 case SMB_CAA_24WAY: return ("24-way set associative"); 425 case SMB_CAA_32WAY: return ("32-way set associative"); 426 case SMB_CAA_48WAY: return ("48-way set associative"); 427 case SMB_CAA_64WAY: return ("64-way set associative"); 428 case SMB_CAA_20WAY: return ("20-way set associative"); 429 } 430 return (NULL); 431 } 432 433 const char * 434 smbios_cache_ctype_desc(uint_t x) 435 { 436 switch (x) { 437 case SMB_CAT_OTHER: return ("other"); 438 case SMB_CAT_UNKNOWN: return ("unknown"); 439 case SMB_CAT_NONBURST: return ("non-burst"); 440 case SMB_CAT_BURST: return ("burst"); 441 case SMB_CAT_PBURST: return ("pipeline burst"); 442 case SMB_CAT_SYNC: return ("synchronous"); 443 case SMB_CAT_ASYNC: return ("asynchronous"); 444 } 445 return (NULL); 446 } 447 448 const char * 449 smbios_cache_ecc_desc(uint_t x) 450 { 451 switch (x) { 452 case SMB_CAE_OTHER: return ("other"); 453 case SMB_CAE_UNKNOWN: return ("unknown"); 454 case SMB_CAE_NONE: return ("none"); 455 case SMB_CAE_PARITY: return ("parity"); 456 case SMB_CAE_SBECC: return ("single-bit ECC"); 457 case SMB_CAE_MBECC: return ("multi-bit ECC"); 458 } 459 return (NULL); 460 } 461 462 const char * 463 smbios_cache_flag_desc(uint_t x) 464 { 465 switch (x) { 466 case SMB_CAF_ENABLED: return ("enabled at boot time"); 467 case SMB_CAF_SOCKETED: return ("cache is socketed"); 468 } 469 return (NULL); 470 } 471 472 const char * 473 smbios_cache_loc_desc(uint_t x) 474 { 475 switch (x) { 476 case SMB_CAL_INTERNAL: return ("internal"); 477 case SMB_CAL_EXTERNAL: return ("external"); 478 case SMB_CAL_RESERVED: return ("reserved"); 479 case SMB_CAL_UNKNOWN: return ("unknown"); 480 } 481 return (NULL); 482 } 483 484 const char * 485 smbios_cache_logical_desc(uint_t x) 486 { 487 switch (x) { 488 case SMB_CAG_OTHER: return ("other"); 489 case SMB_CAG_UNKNOWN: return ("unknown"); 490 case SMB_CAG_INSTR: return ("instruction"); 491 case SMB_CAG_DATA: return ("data"); 492 case SMB_CAG_UNIFIED: return ("unified"); 493 } 494 return (NULL); 495 } 496 497 const char * 498 smbios_cache_mode_desc(uint_t x) 499 { 500 switch (x) { 501 case SMB_CAM_WT: return ("write-through"); 502 case SMB_CAM_WB: return ("write-back"); 503 case SMB_CAM_VARY: return ("varies by address"); 504 case SMB_CAM_UNKNOWN: return ("unknown"); 505 } 506 return (NULL); 507 } 508 509 const char * 510 smbios_chassis_state_desc(uint_t x) 511 { 512 switch (x) { 513 case SMB_CHST_OTHER: return ("other"); 514 case SMB_CHST_UNKNOWN: return ("unknown"); 515 case SMB_CHST_SAFE: return ("safe"); 516 case SMB_CHST_WARNING: return ("warning"); 517 case SMB_CHST_CRITICAL: return ("critical"); 518 case SMB_CHST_NONREC: return ("non-recoverable"); 519 } 520 return (NULL); 521 } 522 523 const char * 524 smbios_chassis_type_desc(uint_t x) 525 { 526 switch (x) { 527 case SMB_CHT_OTHER: return ("other"); 528 case SMB_CHT_UNKNOWN: return ("unknown"); 529 case SMB_CHT_DESKTOP: return ("desktop"); 530 case SMB_CHT_LPDESKTOP: return ("low-profile desktop"); 531 case SMB_CHT_PIZZA: return ("pizza box"); 532 case SMB_CHT_MINITOWER: return ("mini-tower"); 533 case SMB_CHT_TOWER: return ("tower"); 534 case SMB_CHT_PORTABLE: return ("portable"); 535 case SMB_CHT_LAPTOP: return ("laptop"); 536 case SMB_CHT_NOTEBOOK: return ("notebook"); 537 case SMB_CHT_HANDHELD: return ("hand-held"); 538 case SMB_CHT_DOCK: return ("docking station"); 539 case SMB_CHT_ALLIN1: return ("all-in-one"); 540 case SMB_CHT_SUBNOTE: return ("sub-notebook"); 541 case SMB_CHT_SPACESAVE: return ("space-saving"); 542 case SMB_CHT_LUNCHBOX: return ("lunchbox"); 543 case SMB_CHT_MAIN: return ("main server chassis"); 544 case SMB_CHT_EXPANSION: return ("expansion chassis"); 545 case SMB_CHT_SUB: return ("sub-chassis"); 546 case SMB_CHT_BUS: return ("bus expansion chassis"); 547 case SMB_CHT_PERIPHERAL: return ("peripheral chassis"); 548 case SMB_CHT_RAID: return ("raid chassis"); 549 case SMB_CHT_RACK: return ("rack mount chassis"); 550 case SMB_CHT_SEALED: return ("sealed case pc"); 551 case SMB_CHT_MULTI: return ("multi-system chassis"); 552 case SMB_CHT_CPCI: return ("compact PCI"); 553 case SMB_CHT_ATCA: return ("advanced TCA"); 554 case SMB_CHT_BLADE: return ("blade"); 555 case SMB_CHT_BLADEENC: return ("blade enclosure"); 556 case SMB_CHT_TABLET: return ("tablet"); 557 case SMB_CHT_CONVERTIBLE: return ("convertible"); 558 case SMB_CHT_DETACHABLE: return ("detachable"); 559 case SMB_CHT_IOTGW: return ("IoT Gateway"); 560 case SMB_CHT_EMBEDPC: return ("Embedded PC"); 561 case SMB_CHT_MINIPC: return ("Mini PC"); 562 case SMB_CHT_STICKPC: return ("Stick PC"); 563 } 564 return (NULL); 565 } 566 567 const char * 568 smbios_cooldev_status_desc(uint_t x) 569 { 570 switch (x) { 571 case SMB_COOLDEV_S_OTHER: return ("other"); 572 case SMB_COOLDEV_S_UNKNOWN: return ("unknown"); 573 case SMB_COOLDEV_S_OK: return ("OK"); 574 case SMB_COOLDEV_S_NONCRIT: return ("non-critical"); 575 case SMB_COOLDEV_S_CRIT: return ("critical"); 576 case SMB_COOLDEV_S_NONRECOV: return ("non-recoverable"); 577 } 578 return (NULL); 579 } 580 581 const char * 582 smbios_cooldev_type_desc(uint_t x) 583 { 584 switch (x) { 585 case SMB_COOLDEV_T_OTHER: return ("other"); 586 case SMB_COOLDEV_T_UNKNOWN: return ("unknown"); 587 case SMB_COOLDEV_T_FAN: return ("fan"); 588 case SMB_COOLDEV_T_BLOWER: return ("centrifugal blower"); 589 case SMB_COOLDEV_T_CHIPFAN: return ("chip fan"); 590 case SMB_COOLDEV_T_CABFAN: return ("cabinet fan"); 591 case SMB_COOLDEV_T_PSFAN: return ("power supply fan"); 592 case SMB_COOLDEV_T_HEATPIPE: return ("head pipe"); 593 case SMB_COOLDEV_T_IREFRIG: return ("integrated refrigeration"); 594 case SMB_COOLDEV_T_ACTCOOL: return ("active cooling"); 595 case SMB_COOLDEV_T_PASSCOOL: return ("passive cooling"); 596 } 597 return (NULL); 598 } 599 600 const char * 601 smbios_evlog_flag_desc(uint_t x) 602 { 603 switch (x) { 604 case SMB_EVFL_VALID: return ("log area valid"); 605 case SMB_EVFL_FULL: return ("log area full"); 606 } 607 return (NULL); 608 } 609 610 const char * 611 smbios_evlog_format_desc(uint_t x) 612 { 613 switch (x) { 614 case SMB_EVHF_NONE: return ("no log headers used"); 615 case SMB_EVHF_F1: return ("DMTF log header type 1"); 616 } 617 return (NULL); 618 } 619 620 const char * 621 smbios_evlog_method_desc(uint_t x) 622 { 623 switch (x) { 624 case SMB_EVM_1x1i_1x1d: return ("I/O: 1 1b idx port, 1 1b data port"); 625 case SMB_EVM_2x1i_1x1d: return ("I/O: 2 1b idx port, 1 1b data port"); 626 case SMB_EVM_1x2i_1x1d: return ("I/O: 1 2b idx port, 1 1b data port"); 627 case SMB_EVM_MEM32: return ("Memory-Mapped 32-bit Physical Addr"); 628 case SMB_EVM_GPNV: return ("GP Non-Volatile API Access"); 629 } 630 return (NULL); 631 } 632 633 const char * 634 smbios_hwsec_desc(uint_t x) 635 { 636 switch (x) { 637 case SMB_HWSEC_PS_DISABLED: return ("password disabled"); 638 case SMB_HWSEC_PS_ENABLED: return ("password enabled"); 639 case SMB_HWSEC_PS_NOTIMPL: return ("password not implemented"); 640 case SMB_HWSEC_PS_UNKNOWN: return ("password status unknown"); 641 } 642 return (NULL); 643 } 644 645 const char * 646 smbios_ipmi_flag_desc(uint_t x) 647 { 648 switch (x) { 649 case SMB_IPMI_F_IOADDR: return ("base address is in i/o space"); 650 case SMB_IPMI_F_INTRSPEC: return ("intr information is specified"); 651 case SMB_IPMI_F_INTRHIGH: return ("intr active high (else low)"); 652 case SMB_IPMI_F_INTREDGE: return ("intr is edge triggered (else lvl)"); 653 } 654 return (NULL); 655 } 656 657 const char * 658 smbios_ipmi_type_desc(uint_t x) 659 { 660 switch (x) { 661 case SMB_IPMI_T_UNKNOWN: return ("unknown"); 662 case SMB_IPMI_T_KCS: return ("KCS: Keyboard Controller Style"); 663 case SMB_IPMI_T_SMIC: return ("SMIC: Server Mgmt Interface Chip"); 664 case SMB_IPMI_T_BT: return ("BT: Block Transfer"); 665 case SMB_IPMI_T_SSIF: return ("SSIF: SMBus System Interface"); 666 } 667 return (NULL); 668 } 669 670 const char * 671 smbios_iprobe_loc_desc(uint_t x) 672 { 673 switch (x) { 674 case SMB_IPROBE_L_OTHER: return ("other"); 675 case SMB_IPROBE_L_UNKNOWN: return ("unknown"); 676 case SMB_IPROBE_L_PROC: return ("processor"); 677 case SMB_IPROBE_L_DISK: return ("disk"); 678 case SMB_IPROBE_L_PBAY: return ("peripheral bay"); 679 case SMB_IPROBE_L_MGMT: return ("system management module"); 680 case SMB_IPROBE_L_MOBO: return ("motherboard"); 681 case SMB_IPROBE_L_MEMMOD: return ("memory module"); 682 case SMB_IPROBE_L_PROCMOD: return ("processor module"); 683 case SMB_IPROBE_L_POWER: return ("power unit"); 684 case SMB_IPROBE_L_AIC: return ("add-in card"); 685 } 686 return (NULL); 687 } 688 689 const char * 690 smbios_iprobe_status_desc(uint_t x) 691 { 692 switch (x) { 693 case SMB_IPROBE_S_OTHER: return ("other"); 694 case SMB_IPROBE_S_UNKNOWN: return ("unknown"); 695 case SMB_IPROBE_S_OK: return ("OK"); 696 case SMB_IPROBE_S_NONCRIT: return ("non-critical"); 697 case SMB_IPROBE_S_CRIT: return ("critical"); 698 case SMB_IPROBE_S_NONRECOV: return ("non-recoverable"); 699 } 700 return (NULL); 701 } 702 703 const char * 704 smbios_powersup_flag_desc(uint_t x) 705 { 706 switch (x) { 707 case SMB_POWERSUP_F_HOT: return ("PSU is hot-replaceable"); 708 case SMB_POWERSUP_F_PRESENT: return ("PSU is present"); 709 case SMB_POWERSUP_F_UNPLUG: return ("PSU is unplugged from outlet"); 710 } 711 return (NULL); 712 } 713 714 const char * 715 smbios_powersup_input_desc(uint_t x) 716 { 717 switch (x) { 718 case SMB_POWERSUP_I_OTHER: return ("other"); 719 case SMB_POWERSUP_I_UNKNOWN: return ("unknown"); 720 case SMB_POWERSUP_I_MANUAL: return ("manual"); 721 case SMB_POWERSUP_I_AUTO: return ("auto-switch"); 722 case SMB_POWERSUP_I_WIDE: return ("wide range"); 723 case SMB_POWERSUP_I_NA: return ("not applicable"); 724 } 725 return (NULL); 726 } 727 728 const char * 729 smbios_powersup_status_desc(uint_t x) 730 { 731 switch (x) { 732 case SMB_POWERSUP_S_OTHER: return ("other"); 733 case SMB_POWERSUP_S_UNKNOWN: return ("unknown"); 734 case SMB_POWERSUP_S_OK: return ("OK"); 735 case SMB_POWERSUP_S_NONCRIT: return ("non-critical"); 736 case SMB_POWERSUP_S_CRIT: return ("critical; PSU failed"); 737 } 738 return (NULL); 739 } 740 741 const char * 742 smbios_powersup_type_desc(uint_t x) 743 { 744 switch (x) { 745 case SMB_POWERSUP_T_OTHER: return ("other"); 746 case SMB_POWERSUP_T_UNKNOWN: return ("unknown"); 747 case SMB_POWERSUP_T_LINEAR: return ("linear"); 748 case SMB_POWERSUP_T_SWITCH: return ("switching"); 749 case SMB_POWERSUP_T_BAT: return ("battery"); 750 case SMB_POWERSUP_T_UPS: return ("UPS"); 751 case SMB_POWERSUP_T_CONV: return ("converter"); 752 case SMB_POWERSUP_T_REGL: return ("regulator"); 753 } 754 return (NULL); 755 } 756 757 const char * 758 smbios_memarray_loc_desc(uint_t x) 759 { 760 switch (x) { 761 case SMB_MAL_OTHER: return ("other"); 762 case SMB_MAL_UNKNOWN: return ("unknown"); 763 case SMB_MAL_SYSMB: return ("system board or motherboard"); 764 case SMB_MAL_ISA: return ("ISA add-on card"); 765 case SMB_MAL_EISA: return ("EISA add-on card"); 766 case SMB_MAL_PCI: return ("PCI add-on card"); 767 case SMB_MAL_MCA: return ("MCA add-on card"); 768 case SMB_MAL_PCMCIA: return ("PCMCIA add-on card"); 769 case SMB_MAL_PROP: return ("proprietary add-on card"); 770 case SMB_MAL_NUBUS: return ("NuBus"); 771 case SMB_MAL_PC98C20: return ("PC-98/C20 add-on card"); 772 case SMB_MAL_PC98C24: return ("PC-98/C24 add-on card"); 773 case SMB_MAL_PC98E: return ("PC-98/E add-on card"); 774 case SMB_MAL_PC98LB: return ("PC-98/Local bus add-on card"); 775 } 776 return (NULL); 777 } 778 779 const char * 780 smbios_memarray_use_desc(uint_t x) 781 { 782 switch (x) { 783 case SMB_MAU_OTHER: return ("other"); 784 case SMB_MAU_UNKNOWN: return ("unknown"); 785 case SMB_MAU_SYSTEM: return ("system memory"); 786 case SMB_MAU_VIDEO: return ("video memory"); 787 case SMB_MAU_FLASH: return ("flash memory"); 788 case SMB_MAU_NVRAM: return ("non-volatile RAM"); 789 case SMB_MAU_CACHE: return ("cache memory"); 790 } 791 return (NULL); 792 } 793 794 const char * 795 smbios_memarray_ecc_desc(uint_t x) 796 { 797 switch (x) { 798 case SMB_MAE_OTHER: return ("other"); 799 case SMB_MAE_UNKNOWN: return ("unknown"); 800 case SMB_MAE_NONE: return ("none"); 801 case SMB_MAE_PARITY: return ("parity"); 802 case SMB_MAE_SECC: return ("single-bit ECC"); 803 case SMB_MAE_MECC: return ("multi-bit ECC"); 804 case SMB_MAE_CRC: return ("CRC"); 805 } 806 return (NULL); 807 } 808 809 const char * 810 smbios_memdevice_flag_desc(uint_t x) 811 { 812 switch (x) { 813 case SMB_MDF_OTHER: return ("other"); 814 case SMB_MDF_UNKNOWN: return ("unknown"); 815 case SMB_MDF_FASTPG: return ("fast-paged"); 816 case SMB_MDF_STATIC: return ("static column"); 817 case SMB_MDF_PSTATIC: return ("pseudo-static"); 818 case SMB_MDF_RAMBUS: return ("RAMBUS"); 819 case SMB_MDF_SYNC: return ("synchronous"); 820 case SMB_MDF_CMOS: return ("CMOS"); 821 case SMB_MDF_EDO: return ("EDO"); 822 case SMB_MDF_WDRAM: return ("Window DRAM"); 823 case SMB_MDF_CDRAM: return ("Cache DRAM"); 824 case SMB_MDF_NV: return ("non-volatile"); 825 case SMB_MDF_REG: return ("Registered (Buffered)"); 826 case SMB_MDF_UNREG: return ("Unregistered (Unbuffered)"); 827 case SMB_MDF_LRDIMM: return ("LRDIMM"); 828 } 829 return (NULL); 830 } 831 832 const char * 833 smbios_memdevice_form_desc(uint_t x) 834 { 835 switch (x) { 836 case SMB_MDFF_OTHER: return ("other"); 837 case SMB_MDFF_UNKNOWN: return ("unknown"); 838 case SMB_MDFF_SIMM: return ("SIMM"); 839 case SMB_MDFF_SIP: return ("SIP"); 840 case SMB_MDFF_CHIP: return ("chip"); 841 case SMB_MDFF_DIP: return ("DIP"); 842 case SMB_MDFF_ZIP: return ("ZIP"); 843 case SMB_MDFF_PROP: return ("proprietary card"); 844 case SMB_MDFF_DIMM: return ("DIMM"); 845 case SMB_MDFF_TSOP: return ("TSOP"); 846 case SMB_MDFF_CHIPROW: return ("row of chips"); 847 case SMB_MDFF_RIMM: return ("RIMM"); 848 case SMB_MDFF_SODIMM: return ("SODIMM"); 849 case SMB_MDFF_SRIMM: return ("SRIMM"); 850 case SMB_MDFF_FBDIMM: return ("FBDIMM"); 851 } 852 return (NULL); 853 } 854 855 const char * 856 smbios_memdevice_type_desc(uint_t x) 857 { 858 switch (x) { 859 case SMB_MDT_OTHER: return ("other"); 860 case SMB_MDT_UNKNOWN: return ("unknown"); 861 case SMB_MDT_DRAM: return ("DRAM"); 862 case SMB_MDT_EDRAM: return ("EDRAM"); 863 case SMB_MDT_VRAM: return ("VRAM"); 864 case SMB_MDT_SRAM: return ("SRAM"); 865 case SMB_MDT_RAM: return ("RAM"); 866 case SMB_MDT_ROM: return ("ROM"); 867 case SMB_MDT_FLASH: return ("FLASH"); 868 case SMB_MDT_EEPROM: return ("EEPROM"); 869 case SMB_MDT_FEPROM: return ("FEPROM"); 870 case SMB_MDT_EPROM: return ("EPROM"); 871 case SMB_MDT_CDRAM: return ("CDRAM"); 872 case SMB_MDT_3DRAM: return ("3DRAM"); 873 case SMB_MDT_SDRAM: return ("SDRAM"); 874 case SMB_MDT_SGRAM: return ("SGRAM"); 875 case SMB_MDT_RDRAM: return ("RDRAM"); 876 case SMB_MDT_DDR: return ("DDR"); 877 case SMB_MDT_DDR2: return ("DDR2"); 878 case SMB_MDT_DDR2FBDIMM: return ("DDR2 FBDIMM"); 879 case SMB_MDT_DDR3: return ("DDR3"); 880 case SMB_MDT_FBD2: return ("FBD2"); 881 case SMB_MDT_DDR4: return ("DDR4"); 882 case SMB_MDT_LPDDR: return ("LPDDR"); 883 case SMB_MDT_LPDDR2: return ("LPDDR2"); 884 case SMB_MDT_LPDDR3: return ("LPDDR3"); 885 case SMB_MDT_LPDDR4: return ("LPDDR4"); 886 case SMB_MDT_LOGNV: return ("Logical non-volatile device"); 887 } 888 return (NULL); 889 } 890 891 const char * 892 smbios_memdevice_rank_desc(uint_t x) 893 { 894 switch (x) { 895 case SMB_MDR_SINGLE: return ("single"); 896 case SMB_MDR_DUAL: return ("dual"); 897 case SMB_MDR_QUAD: return ("quad"); 898 case SMB_MDR_OCTAL: return ("octal"); 899 } 900 return (NULL); 901 } 902 903 const char * 904 smbios_memdevice_memtech_desc(uint_t x) 905 { 906 switch (x) { 907 case SMB_MTECH_OTHER: return ("other"); 908 case SMB_MTECH_UNKNOWN: return ("unknown"); 909 case SMB_MTECH_DRAM: return ("DRAM"); 910 case SMB_MTECH_NVDIMM_N: return ("NVDIMM-N"); 911 case SMB_MTECH_NVDIMM_F: return ("NVDIMM-F"); 912 case SMB_MTECH_NVDIMM_P: return ("NVDIMM-P"); 913 case SMB_MTECH_INTCPM: return ("Intel persistent memory"); 914 } 915 return (NULL); 916 } 917 918 const char * 919 smbios_memdevice_op_capab_desc(uint_t x) 920 { 921 switch (x) { 922 case SMB_MOMC_OTHER: return ("other"); 923 case SMB_MOMC_UNKNOWN: return ("unknown"); 924 case SMB_MOMC_VOLATILE: return ("Volatile memory"); 925 case SMB_MOMC_BYTE_PM: return ("Byte-accessible persistent memory"); 926 case SMB_MOMC_BLOCK_PM: return ("Block-accessible persistent memory"); 927 } 928 return (NULL); 929 } 930 931 const char * 932 smbios_onboard_type_desc(uint_t x) 933 { 934 switch (x) { 935 case SMB_OBT_OTHER: return ("other"); 936 case SMB_OBT_UNKNOWN: return ("unknown"); 937 case SMB_OBT_VIDEO: return ("video"); 938 case SMB_OBT_SCSI: return ("scsi"); 939 case SMB_OBT_ETHERNET: return ("ethernet"); 940 case SMB_OBT_TOKEN: return ("token ring"); 941 case SMB_OBT_SOUND: return ("sound"); 942 case SMB_OBT_PATA: return ("pata"); 943 case SMB_OBT_SATA: return ("sata"); 944 case SMB_OBT_SAS: return ("sas"); 945 } 946 return (NULL); 947 } 948 949 const char * 950 smbios_port_conn_desc(uint_t x) 951 { 952 switch (x) { 953 case SMB_POC_NONE: return ("none"); 954 case SMB_POC_CENT: return ("Centronics"); 955 case SMB_POC_MINICENT: return ("Mini-Centronics"); 956 case SMB_POC_PROPRIETARY: return ("proprietary"); 957 case SMB_POC_DB25M: return ("DB-25 pin male"); 958 case SMB_POC_DB25F: return ("DB-25 pin female"); 959 case SMB_POC_DB15M: return ("DB-15 pin male"); 960 case SMB_POC_DB15F: return ("DB-15 pin female"); 961 case SMB_POC_DB9M: return ("DB-9 pin male"); 962 case SMB_POC_DB9F: return ("DB-9 pin female"); 963 case SMB_POC_RJ11: return ("RJ-11"); 964 case SMB_POC_RJ45: return ("RJ-45"); 965 case SMB_POC_MINISCSI: return ("50-pin MiniSCSI"); 966 case SMB_POC_MINIDIN: return ("Mini-DIN"); 967 case SMB_POC_MICRODIN: return ("Micro-DIN"); 968 case SMB_POC_PS2: return ("PS/2"); 969 case SMB_POC_IR: return ("Infrared"); 970 case SMB_POC_HPHIL: return ("HP-HIL"); 971 case SMB_POC_USB: return ("USB"); 972 case SMB_POC_SSA: return ("SSA SCSI"); 973 case SMB_POC_DIN8M: return ("Circular DIN-8 male"); 974 case SMB_POC_DIN8F: return ("Circular DIN-8 female"); 975 case SMB_POC_OBIDE: return ("on-board IDE"); 976 case SMB_POC_OBFLOPPY: return ("on-board floppy"); 977 case SMB_POC_DI9: return ("9p dual inline (p10 cut)"); 978 case SMB_POC_DI25: return ("25p dual inline (p26 cut)"); 979 case SMB_POC_DI50: return ("50p dual inline"); 980 case SMB_POC_DI68: return ("68p dual inline"); 981 case SMB_POC_CDROM: return ("on-board sound from CDROM"); 982 case SMB_POC_MINI14: return ("Mini-Centronics Type 14"); 983 case SMB_POC_MINI26: return ("Mini-Centronics Type 26"); 984 case SMB_POC_MINIJACK: return ("Mini-jack (headphones)"); 985 case SMB_POC_BNC: return ("BNC"); 986 case SMB_POC_1394: return ("1394"); 987 case SMB_POC_SATA: return ("SAS/SATA plug receptacle"); 988 case SMB_POC_USB_C: return ("USB Type-C receptacle"); 989 case SMB_POC_PC98: return ("PC-98"); 990 case SMB_POC_PC98HR: return ("PC-98Hireso"); 991 case SMB_POC_PCH98: return ("PC-H98"); 992 case SMB_POC_PC98NOTE: return ("PC-98Note"); 993 case SMB_POC_PC98FULL: return ("PC-98Full"); 994 case SMB_POC_OTHER: return ("other"); 995 } 996 return (NULL); 997 } 998 999 const char * 1000 smbios_port_type_desc(uint_t x) 1001 { 1002 switch (x) { 1003 case SMB_POT_NONE: return ("none"); 1004 case SMB_POT_PP_XTAT: return ("Parallel Port XT/AT compat"); 1005 case SMB_POT_PP_PS2: return ("Parallel Port PS/2"); 1006 case SMB_POT_PP_ECP: return ("Parallel Port ECP"); 1007 case SMB_POT_PP_EPP: return ("Parallel Port EPP"); 1008 case SMB_POT_PP_ECPEPP: return ("Parallel Port ECP/EPP"); 1009 case SMB_POT_SP_XTAT: return ("Serial Port XT/AT compat"); 1010 case SMB_POT_SP_16450: return ("Serial Port 16450 compat"); 1011 case SMB_POT_SP_16550: return ("Serial Port 16550 compat"); 1012 case SMB_POT_SP_16550A: return ("Serial Port 16550A compat"); 1013 case SMB_POT_SCSI: return ("SCSI port"); 1014 case SMB_POT_MIDI: return ("MIDI port"); 1015 case SMB_POT_JOYSTICK: return ("Joystick port"); 1016 case SMB_POT_KEYBOARD: return ("Keyboard port"); 1017 case SMB_POT_MOUSE: return ("Mouse port"); 1018 case SMB_POT_SSA: return ("SSA SCSI"); 1019 case SMB_POT_USB: return ("USB"); 1020 case SMB_POT_FIREWIRE: return ("FireWrite (IEEE P1394)"); 1021 case SMB_POT_PCMII: return ("PCMCIA Type II"); 1022 case SMB_POT_PCMIIa: return ("PCMCIA Type II (alternate)"); 1023 case SMB_POT_PCMIII: return ("PCMCIA Type III"); 1024 case SMB_POT_CARDBUS: return ("Cardbus"); 1025 case SMB_POT_ACCESS: return ("Access Bus Port"); 1026 case SMB_POT_SCSI2: return ("SCSI II"); 1027 case SMB_POT_SCSIW: return ("SCSI Wide"); 1028 case SMB_POT_PC98: return ("PC-98"); 1029 case SMB_POT_PC98HR: return ("PC-98Hireso"); 1030 case SMB_POT_PCH98: return ("PC-H98"); 1031 case SMB_POT_VIDEO: return ("Video port"); 1032 case SMB_POT_AUDIO: return ("Audio port"); 1033 case SMB_POT_MODEM: return ("Modem port"); 1034 case SMB_POT_NETWORK: return ("Network port"); 1035 case SMB_POT_SATA: return ("SATA"); 1036 case SMB_POT_SAS: return ("SAS"); 1037 case SMB_POT_MFDP: return ("MFDP (Multi-Function Display Port)"); 1038 case SMB_POT_THUNDERBOLT: return ("Thunderbolt"); 1039 case SMB_POT_8251: return ("8251 compatible"); 1040 case SMB_POT_8251F: return ("8251 FIFO compatible"); 1041 case SMB_POT_OTHER: return ("other"); 1042 } 1043 return (NULL); 1044 } 1045 1046 const char * 1047 smbios_processor_core_flag_desc(uint_t x) 1048 { 1049 switch (x) { 1050 case SMB_PRC_RESERVED: return ("reserved"); 1051 case SMB_PRC_UNKNOWN: return ("unknown"); 1052 case SMB_PRC_64BIT: return ("64-bit capable"); 1053 case SMB_PRC_MC: return ("multi-core"); 1054 case SMB_PRC_HT: return ("hardware thread"); 1055 case SMB_PRC_NX: return ("execution protection"); 1056 case SMB_PRC_VT: return ("enhanced virtualization"); 1057 case SMB_PRC_PM: return ("power/performance control"); 1058 } 1059 return (NULL); 1060 } 1061 1062 const char * 1063 smbios_processor_family_desc(uint_t x) 1064 { 1065 switch (x) { 1066 case SMB_PRF_OTHER: return ("other"); 1067 case SMB_PRF_UNKNOWN: return ("unknown"); 1068 case SMB_PRF_8086: return ("8086"); 1069 case SMB_PRF_80286: return ("80286"); 1070 case SMB_PRF_I386: return ("Intel 386"); 1071 case SMB_PRF_I486: return ("Intel 486"); 1072 case SMB_PRF_8087: return ("8087"); 1073 case SMB_PRF_80287: return ("80287"); 1074 case SMB_PRF_80387: return ("80387"); 1075 case SMB_PRF_80487: return ("80487"); 1076 case SMB_PRF_PENTIUM: return ("Pentium Family"); 1077 case SMB_PRF_PENTIUMPRO: return ("Pentium Pro"); 1078 case SMB_PRF_PENTIUMII: return ("Pentium II"); 1079 case SMB_PRF_PENTIUM_MMX: return ("Pentium w/ MMX"); 1080 case SMB_PRF_CELERON: return ("Celeron"); 1081 case SMB_PRF_PENTIUMII_XEON: return ("Pentium II Xeon"); 1082 case SMB_PRF_PENTIUMIII: return ("Pentium III"); 1083 case SMB_PRF_M1: return ("M1"); 1084 case SMB_PRF_M2: return ("M2"); 1085 case SMB_PRF_CELERON_M: return ("Celeron M"); 1086 case SMB_PRF_PENTIUMIV_HT: return ("Pentium 4 HT"); 1087 case SMB_PRF_DURON: return ("AMD Duron"); 1088 case SMB_PRF_K5: return ("K5"); 1089 case SMB_PRF_K6: return ("K6"); 1090 case SMB_PRF_K6_2: return ("K6-2"); 1091 case SMB_PRF_K6_3: return ("K6-3"); 1092 case SMB_PRF_ATHLON: return ("Athlon"); 1093 case SMB_PRF_2900: return ("AMD 2900"); 1094 case SMB_PRF_K6_2PLUS: return ("K6-2+"); 1095 case SMB_PRF_PPC: return ("PowerPC"); 1096 case SMB_PRF_PPC_601: return ("PowerPC 601"); 1097 case SMB_PRF_PPC_603: return ("PowerPC 603"); 1098 case SMB_PRF_PPC_603PLUS: return ("PowerPC 603+"); 1099 case SMB_PRF_PPC_604: return ("PowerPC 604"); 1100 case SMB_PRF_PPC_620: return ("PowerPC 620"); 1101 case SMB_PRF_PPC_704: return ("PowerPC x704"); 1102 case SMB_PRF_PPC_750: return ("PowerPC 750"); 1103 case SMB_PRF_CORE_DUO: return ("Core Duo"); 1104 case SMB_PRF_CORE_DUO_M: return ("Core Duo mobile"); 1105 case SMB_PRF_CORE_SOLO_M: return ("Core Solo mobile"); 1106 case SMB_PRF_ATOM: return ("Intel Atom"); 1107 case SMB_PRF_CORE_M: return ("Intel Core M"); 1108 case SMB_PRF_CORE_M3: return ("Intel Core m3"); 1109 case SMB_PRF_CORE_M5: return ("Intel Core m5"); 1110 case SMB_PRF_CORE_M7: return ("Intel Core m7"); 1111 case SMB_PRF_ALPHA: return ("Alpha"); 1112 case SMB_PRF_ALPHA_21064: return ("Alpha 21064"); 1113 case SMB_PRF_ALPHA_21066: return ("Alpha 21066"); 1114 case SMB_PRF_ALPHA_21164: return ("Alpha 21164"); 1115 case SMB_PRF_ALPHA_21164PC: return ("Alpha 21164PC"); 1116 case SMB_PRF_ALPHA_21164A: return ("Alpha 21164a"); 1117 case SMB_PRF_ALPHA_21264: return ("Alpha 21264"); 1118 case SMB_PRF_ALPHA_21364: return ("Alpha 21364"); 1119 case SMB_PRF_TURION2_2C_MM: return ("AMD Turion II Dual-Core Mobile M"); 1120 case SMB_PRF_ATHLON2_2C_M: return ("AMD Athlon II Dual-Core M"); 1121 case SMB_PRF_OPTERON_6100: return ("AMD Opteron 6100 series"); 1122 case SMB_PRF_OPTERON_4100: return ("AMD Opteron 4100 series"); 1123 case SMB_PRF_OPTERON_6200: return ("AMD Opteron 6200 series"); 1124 case SMB_PRF_OPTERON_4200: return ("AMD Opteron 4200 series"); 1125 case SMB_PRF_AMD_FX: return ("AMD FX series"); 1126 case SMB_PRF_MIPS: return ("MIPS"); 1127 case SMB_PRF_MIPS_R4000: return ("MIPS R4000"); 1128 case SMB_PRF_MIPS_R4200: return ("MIPS R4200"); 1129 case SMB_PRF_MIPS_R4400: return ("MIPS R4400"); 1130 case SMB_PRF_MIPS_R4600: return ("MIPS R4600"); 1131 case SMB_PRF_MIPS_R10000: return ("MIPS R10000"); 1132 case SMB_PRF_AMD_C: return ("AMD C-series"); 1133 case SMB_PRF_AMD_E: return ("AMD E-series"); 1134 case SMB_PRF_AMD_A: return ("AMD A-series"); 1135 case SMB_PRF_AMD_G: return ("AMD G-series"); 1136 case SMB_PRF_AMD_Z: return ("AMD Z-series"); 1137 case SMB_PRF_AMD_R: return ("AMD R-series"); 1138 case SMB_PRF_OPTERON_4300: return ("AMD Opteron 4300 series"); 1139 case SMB_PRF_OPTERON_6300: return ("AMD Opteron 6300 series"); 1140 case SMB_PRF_OPTERON_3300: return ("AMD Opteron 3300 series"); 1141 case SMB_PRF_AMD_FIREPRO: return ("AMD FirePro series"); 1142 case SMB_PRF_SPARC: return ("SPARC"); 1143 case SMB_PRF_SUPERSPARC: return ("SuperSPARC"); 1144 case SMB_PRF_MICROSPARCII: return ("microSPARC II"); 1145 case SMB_PRF_MICROSPARCIIep: return ("microSPARC IIep"); 1146 case SMB_PRF_ULTRASPARC: return ("UltraSPARC"); 1147 case SMB_PRF_USII: return ("UltraSPARC II"); 1148 case SMB_PRF_USIIi: return ("UltraSPARC IIi"); 1149 case SMB_PRF_USIII: return ("UltraSPARC III"); 1150 case SMB_PRF_USIIIi: return ("UltraSPARC IIIi"); 1151 case SMB_PRF_68040: return ("68040"); 1152 case SMB_PRF_68XXX: return ("68XXX"); 1153 case SMB_PRF_68000: return ("68000"); 1154 case SMB_PRF_68010: return ("68010"); 1155 case SMB_PRF_68020: return ("68020"); 1156 case SMB_PRF_68030: return ("68030"); 1157 case SMB_PRF_ATHLON_X4: return ("AMD Athlon X4 Quad-Core"); 1158 case SMB_PRF_OPTERON_X1K: return ("AMD Opteron X1000"); 1159 case SMB_PRF_OPTERON_X2K: return ("AMD Opteron X2000 APU"); 1160 case SMB_PRF_OPTERON_A: return ("AMD Opteron A Series"); 1161 case SMB_PRF_OPTERON_X3K: return ("AMD Opteron X3000 APU"); 1162 case SMB_PRF_ZEN: return ("AMD Zen Processor Family"); 1163 case SMB_PRF_HOBBIT: return ("Hobbit"); 1164 case SMB_PRF_TM5000: return ("Crusoe TM5000"); 1165 case SMB_PRF_TM3000: return ("Crusoe TM3000"); 1166 case SMB_PRF_TM8000: return ("Efficeon TM8000"); 1167 case SMB_PRF_WEITEK: return ("Weitek"); 1168 case SMB_PRF_ITANIC: return ("Itanium"); 1169 case SMB_PRF_ATHLON64: return ("Athlon64"); 1170 case SMB_PRF_OPTERON: return ("Opteron"); 1171 case SMB_PRF_SEMPRON: return ("Sempron"); 1172 case SMB_PRF_TURION64_M: return ("Turion 64 Mobile"); 1173 case SMB_PRF_OPTERON_2C: return ("AMD Opteron Dual-Core"); 1174 case SMB_PRF_ATHLON64_X2_2C: return ("AMD Athlon 64 X2 Dual-Core"); 1175 case SMB_PRF_TURION64_X2_M: return ("AMD Turion 64 X2 Mobile"); 1176 case SMB_PRF_OPTERON_4C: return ("AMD Opteron Quad-Core"); 1177 case SMB_PRF_OPTERON_3G: return ("AMD Opteron 3rd Generation"); 1178 case SMB_PRF_PHENOM_FX_4C: return ("AMD Phenom FX Quad-Core"); 1179 case SMB_PRF_PHENOM_X4_4C: return ("AMD Phenom X4 Quad-Core"); 1180 case SMB_PRF_PHENOM_X2_2C: return ("AMD Phenom X2 Dual-Core"); 1181 case SMB_PRF_ATHLON_X2_2C: return ("AMD Athlon X2 Dual-Core"); 1182 case SMB_PRF_PA: return ("PA-RISC"); 1183 case SMB_PRF_PA8500: return ("PA-RISC 8500"); 1184 case SMB_PRF_PA8000: return ("PA-RISC 8000"); 1185 case SMB_PRF_PA7300LC: return ("PA-RISC 7300LC"); 1186 case SMB_PRF_PA7200: return ("PA-RISC 7200"); 1187 case SMB_PRF_PA7100LC: return ("PA-RISC 7100LC"); 1188 case SMB_PRF_PA7100: return ("PA-RISC 7100"); 1189 case SMB_PRF_V30: return ("V30"); 1190 case SMB_PRF_XEON_4C_3200: return ("Xeon Quad Core 3200"); 1191 case SMB_PRF_XEON_2C_3000: return ("Xeon Dual Core 3000"); 1192 case SMB_PRF_XEON_4C_5300: return ("Xeon Quad Core 5300"); 1193 case SMB_PRF_XEON_2C_5100: return ("Xeon Dual Core 5100"); 1194 case SMB_PRF_XEON_2C_5000: return ("Xeon Dual Core 5000"); 1195 case SMB_PRF_XEON_2C_LV: return ("Xeon Dual Core LV"); 1196 case SMB_PRF_XEON_2C_ULV: return ("Xeon Dual Core ULV"); 1197 case SMB_PRF_XEON_2C_7100: return ("Xeon Dual Core 7100"); 1198 case SMB_PRF_XEON_4C_5400: return ("Xeon Quad Core 5400"); 1199 case SMB_PRF_XEON_4C: return ("Xeon Quad Core"); 1200 case SMB_PRF_XEON_2C_5200: return ("Xeon Dual Core 5200"); 1201 case SMB_PRF_XEON_2C_7200: return ("Xeon Dual Core 7200"); 1202 case SMB_PRF_XEON_4C_7300: return ("Xeon Quad Core 7300"); 1203 case SMB_PRF_XEON_4C_7400: return ("Xeon Quad Core 7400"); 1204 case SMB_PRF_XEON_XC_7400: return ("Xeon Multi Core 7400"); 1205 case SMB_PRF_PENTIUMIII_XEON: return ("Pentium III Xeon"); 1206 case SMB_PRF_PENTIUMIII_SS: return ("Pentium III with SpeedStep"); 1207 case SMB_PRF_P4: return ("Pentium 4"); 1208 case SMB_PRF_XEON: return ("Intel Xeon"); 1209 case SMB_PRF_AS400: return ("AS400"); 1210 case SMB_PRF_XEON_MP: return ("Intel Xeon MP"); 1211 case SMB_PRF_ATHLON_XP: return ("AMD Athlon XP"); 1212 case SMB_PRF_ATHLON_MP: return ("AMD Athlon MP"); 1213 case SMB_PRF_ITANIC2: return ("Itanium 2"); 1214 case SMB_PRF_PENTIUM_M: return ("Pentium M"); 1215 case SMB_PRF_CELERON_D: return ("Celeron D"); 1216 case SMB_PRF_PENTIUM_D: return ("Pentium D"); 1217 case SMB_PRF_PENTIUM_EE: return ("Pentium Extreme Edition"); 1218 case SMB_PRF_CORE_SOLO: return ("Intel Core Solo"); 1219 case SMB_PRF_CORE2_DUO: return ("Intel Core 2 Duo"); 1220 case SMB_PRF_CORE2_SOLO: return ("Intel Core 2 Solo"); 1221 case SMB_PRF_CORE2_EX: return ("Intel Core 2 Extreme"); 1222 case SMB_PRF_CORE2_QUAD: return ("Intel Core 2 Quad"); 1223 case SMB_PRF_CORE2_EX_M: return ("Intel Core 2 Extreme mobile"); 1224 case SMB_PRF_CORE2_DUO_M: return ("Intel Core 2 Duo mobile"); 1225 case SMB_PRF_CORE2_SOLO_M: return ("Intel Core 2 Solo mobile"); 1226 case SMB_PRF_CORE_I7: return ("Intel Core i7"); 1227 case SMB_PRF_CELERON_2C: return ("Celeron Dual-Core"); 1228 case SMB_PRF_IBM390: return ("IBM 390"); 1229 case SMB_PRF_G4: return ("G4"); 1230 case SMB_PRF_G5: return ("G5"); 1231 case SMB_PRF_ESA390: return ("ESA390"); 1232 case SMB_PRF_ZARCH: return ("z/Architecture"); 1233 case SMB_PRF_CORE_I5: return ("Intel Core i5"); 1234 case SMB_PRF_CORE_I3: return ("Intel Core i3"); 1235 case SMB_PRF_CORE_I9: return ("Intel Core i9"); 1236 case SMB_PRF_C7M: return ("VIA C7-M"); 1237 case SMB_PRF_C7D: return ("VIA C7-D"); 1238 case SMB_PRF_C7: return ("VIA C7"); 1239 case SMB_PRF_EDEN: return ("VIA Eden"); 1240 case SMB_PRF_XEON_XC: return ("Intel Xeon Multi-Core"); 1241 case SMB_PRF_XEON_2C_3XXX: return ("Intel Xeon Dual-Core 3xxx"); 1242 case SMB_PRF_XEON_4C_3XXX: return ("Intel Xeon Quad-Core 3xxx"); 1243 case SMB_PRF_VIA_NANO: return ("VIA Nano"); 1244 case SMB_PRF_XEON_2C_5XXX: return ("Intel Xeon Dual-Core 5xxx"); 1245 case SMB_PRF_XEON_4C_5XXX: return ("Intel Xeon Quad-Core 5xxx"); 1246 case SMB_PRF_XEON_2C_7XXX: return ("Intel Xeon Dual-Core 7xxx"); 1247 case SMB_PRF_XEON_4C_7XXX: return ("Intel Xeon Quad-Core 7xxx"); 1248 case SMB_PRF_XEON_XC_7XXX: return ("Intel Xeon Multi-Core 7xxx"); 1249 case SMB_PRF_XEON_XC_3400: return ("Intel Xeon Multi-Core 3400"); 1250 case SMB_PRF_OPTERON_3000: return ("AMD Opteron 3000"); 1251 case SMB_PRF_SEMPRON_II: return ("AMD Sempron II"); 1252 case SMB_PRF_OPTERON_4C_EM: return ("AMD Opteron Quad-Core embedded"); 1253 case SMB_PRF_PHENOM_3C: return ("AMD Phenom Triple-Core"); 1254 case SMB_PRF_TURIONU_2C_M: return ("AMD Turion Ultra Dual-Core mobile"); 1255 case SMB_PRF_TURION_2C_M: return ("AMD Turion Dual-Core mobile"); 1256 case SMB_PRF_ATHLON_2C: return ("AMD Athlon Dual-Core"); 1257 case SMB_PRF_SEMPRON_SI: return ("AMD Sempron SI"); 1258 case SMB_PRF_PHENOM_II: return ("AMD Phenom II"); 1259 case SMB_PRF_ATHLON_II: return ("AMD Athlon II"); 1260 case SMB_PRF_OPTERON_6C: return ("AMD Opteron Six-Core"); 1261 case SMB_PRF_SEMPRON_M: return ("AMD Sempron M"); 1262 case SMB_PRF_I860: return ("i860"); 1263 case SMB_PRF_I960: return ("i960"); 1264 case SMB_PRF_ARMv7: return ("ARMv7"); 1265 case SMB_PRF_ARMv8: return ("ARMv8"); 1266 case SMB_PRF_SH3: return ("SH-3"); 1267 case SMB_PRF_SH4: return ("SH-4"); 1268 case SMB_PRF_ARM: return ("ARM"); 1269 case SMB_PRF_SARM: return ("StrongARM"); 1270 case SMB_PRF_6X86: return ("6x86"); 1271 case SMB_PRF_MEDIAGX: return ("MediaGX"); 1272 case SMB_PRF_MII: return ("MII"); 1273 case SMB_PRF_WINCHIP: return ("WinChip"); 1274 case SMB_PRF_DSP: return ("DSP"); 1275 case SMB_PRF_VIDEO: return ("Video Processor"); 1276 } 1277 return (NULL); 1278 } 1279 1280 const char * 1281 smbios_processor_status_desc(uint_t x) 1282 { 1283 switch (x) { 1284 case SMB_PRS_UNKNOWN: return ("unknown"); 1285 case SMB_PRS_ENABLED: return ("enabled"); 1286 case SMB_PRS_BDISABLED: return ("disabled in bios user setup"); 1287 case SMB_PRS_PDISABLED: return ("disabled in bios from post error"); 1288 case SMB_PRS_IDLE: return ("waiting to be enabled"); 1289 case SMB_PRS_OTHER: return ("other"); 1290 } 1291 return (NULL); 1292 } 1293 1294 const char * 1295 smbios_processor_type_desc(uint_t x) 1296 { 1297 switch (x) { 1298 case SMB_PRT_OTHER: return ("other"); 1299 case SMB_PRT_UNKNOWN: return ("unknown"); 1300 case SMB_PRT_CENTRAL: return ("central processor"); 1301 case SMB_PRT_MATH: return ("math processor"); 1302 case SMB_PRT_DSP: return ("DSP processor"); 1303 case SMB_PRT_VIDEO: return ("video processor"); 1304 } 1305 return (NULL); 1306 } 1307 1308 const char * 1309 smbios_processor_upgrade_desc(uint_t x) 1310 { 1311 switch (x) { 1312 case SMB_PRU_OTHER: return ("other"); 1313 case SMB_PRU_UNKNOWN: return ("unknown"); 1314 case SMB_PRU_DAUGHTER: return ("daughter board"); 1315 case SMB_PRU_ZIF: return ("ZIF socket"); 1316 case SMB_PRU_PIGGY: return ("replaceable piggy back"); 1317 case SMB_PRU_NONE: return ("none"); 1318 case SMB_PRU_LIF: return ("LIF socket"); 1319 case SMB_PRU_SLOT1: return ("slot 1"); 1320 case SMB_PRU_SLOT2: return ("slot 2"); 1321 case SMB_PRU_370PIN: return ("370-pin socket"); 1322 case SMB_PRU_SLOTA: return ("slot A"); 1323 case SMB_PRU_SLOTM: return ("slot M"); 1324 case SMB_PRU_423: return ("socket 423"); 1325 case SMB_PRU_A: return ("socket A (socket 462)"); 1326 case SMB_PRU_478: return ("socket 478"); 1327 case SMB_PRU_754: return ("socket 754"); 1328 case SMB_PRU_940: return ("socket 940"); 1329 case SMB_PRU_939: return ("socket 939"); 1330 case SMB_PRU_MPGA604: return ("mPGA604"); 1331 case SMB_PRU_LGA771: return ("LGA771"); 1332 case SMB_PRU_LGA775: return ("LGA775"); 1333 case SMB_PRU_S1: return ("socket S1"); 1334 case SMB_PRU_AM2: return ("socket AM2"); 1335 case SMB_PRU_F: return ("socket F"); 1336 case SMB_PRU_LGA1366: return ("LGA1366"); 1337 case SMB_PRU_G34: return ("socket G34"); 1338 case SMB_PRU_AM3: return ("socket AM3"); 1339 case SMB_PRU_C32: return ("socket C32"); 1340 case SMB_PRU_LGA1156: return ("LGA1156"); 1341 case SMB_PRU_LGA1567: return ("LGA1567"); 1342 case SMB_PRU_PGA988A: return ("PGA988A"); 1343 case SMB_PRU_BGA1288: return ("BGA1288"); 1344 case SMB_PRU_RPGA988B: return ("rPGA988B"); 1345 case SMB_PRU_BGA1023: return ("BGA1023"); 1346 case SMB_PRU_BGA1224: return ("BGA1224"); 1347 case SMB_PRU_LGA1155: return ("LGA1155"); 1348 case SMB_PRU_LGA1356: return ("LGA1356"); 1349 case SMB_PRU_LGA2011: return ("LGA2011"); 1350 case SMB_PRU_FS1: return ("socket FS1"); 1351 case SMB_PRU_FS2: return ("socket FS2"); 1352 case SMB_PRU_FM1: return ("socket FM1"); 1353 case SMB_PRU_FM2: return ("socket FM2"); 1354 case SMB_PRU_LGA20113: return ("LGA2011-3"); 1355 case SMB_PRU_LGA13563: return ("LGA1356-3"); 1356 case SMB_PRU_LGA1150: return ("LGA1150"); 1357 case SMB_PRU_BGA1168: return ("BGA1168"); 1358 case SMB_PRU_BGA1234: return ("BGA1234"); 1359 case SMB_PRU_BGA1364: return ("BGA1364"); 1360 case SMB_PRU_AM4: return ("socket AM4"); 1361 case SMB_PRU_LGA1151: return ("LGA1151"); 1362 case SMB_PRU_BGA1356: return ("BGA1356"); 1363 case SMB_PRU_BGA1440: return ("BGA1440"); 1364 case SMB_PRU_BGA1515: return ("BGA1515"); 1365 case SMB_PRU_LGA36471: return ("LGA3647-1"); 1366 case SMB_PRU_SP3: return ("socket SP3"); 1367 case SMB_PRU_SP3r2: return ("socket SP3r2"); 1368 case SMB_PRU_LGA2066: return ("Socket LGA2066"); 1369 case SMB_PRU_BGA1392: return ("Socket BGA1392"); 1370 case SMB_PRU_BGA1510: return ("Socket BGA1510"); 1371 case SMB_PRU_BGA1528: return ("Socket BGA1528"); 1372 } 1373 return (NULL); 1374 } 1375 1376 const char * 1377 smbios_slot_ch1_desc(uint_t x) 1378 { 1379 switch (x) { 1380 case SMB_SLCH1_UNKNOWN: return ("characteristics unknown"); 1381 case SMB_SLCH1_5V: return ("provides 5.0V"); 1382 case SMB_SLCH1_33V: return ("provides 3.3V"); 1383 case SMB_SLCH1_SHARED: return ("opening shared with other slot"); 1384 case SMB_SLCH1_PC16: return ("slot supports PC Card-16"); 1385 case SMB_SLCH1_PCCB: return ("slot supports CardBus"); 1386 case SMB_SLCH1_PCZV: return ("slot supports Zoom Video"); 1387 case SMB_SLCH1_PCMRR: return ("slot supports Modem Ring Resume"); 1388 } 1389 return (NULL); 1390 } 1391 1392 const char * 1393 smbios_slot_ch2_desc(uint_t x) 1394 { 1395 switch (x) { 1396 case SMB_SLCH2_PME: return ("slot supports PME# signal"); 1397 case SMB_SLCH2_HOTPLUG: return ("slot supports hot-plug devices"); 1398 case SMB_SLCH2_SMBUS: return ("slot supports SMBus signal"); 1399 case SMB_SLCH2_BIFUR: return ("slot supports PCIe bifurcation"); 1400 } 1401 return (NULL); 1402 } 1403 1404 const char * 1405 smbios_slot_length_desc(uint_t x) 1406 { 1407 switch (x) { 1408 case SMB_SLL_OTHER: return ("other"); 1409 case SMB_SLL_UNKNOWN: return ("unknown"); 1410 case SMB_SLL_SHORT: return ("short length"); 1411 case SMB_SLL_LONG: return ("long length"); 1412 } 1413 return (NULL); 1414 } 1415 1416 const char * 1417 smbios_slot_type_desc(uint_t x) 1418 { 1419 switch (x) { 1420 case SMB_SLT_OTHER: return ("other"); 1421 case SMB_SLT_UNKNOWN: return ("unknown"); 1422 case SMB_SLT_ISA: return ("ISA"); 1423 case SMB_SLT_MCA: return ("MCA"); 1424 case SMB_SLT_EISA: return ("EISA"); 1425 case SMB_SLT_PCI: return ("PCI"); 1426 case SMB_SLT_PCMCIA: return ("PCMCIA"); 1427 case SMB_SLT_VLVESA: return ("VL-VESA"); 1428 case SMB_SLT_PROPRIETARY: return ("proprietary"); 1429 case SMB_SLT_PROC: return ("processor card slot"); 1430 case SMB_SLT_MEM: return ("proprietary memory card slot"); 1431 case SMB_SLT_IOR: return ("I/O riser card slot"); 1432 case SMB_SLT_NUBUS: return ("NuBus"); 1433 case SMB_SLT_PCI66: return ("PCI (66MHz capable)"); 1434 case SMB_SLT_AGP: return ("AGP"); 1435 case SMB_SLT_AGP2X: return ("AGP 2X"); 1436 case SMB_SLT_AGP4X: return ("AGP 4X"); 1437 case SMB_SLT_PCIX: return ("PCI-X"); 1438 case SMB_SLT_AGP8X: return ("AGP 8X"); 1439 case SMB_SLT_M2_1DP: return ("M.2 Socket 1-DP (Mechanical Key A)"); 1440 case SMB_SLT_M2_1SD: return ("M.2 Socket 1-SD (Mechanical Key E)"); 1441 case SMB_SLT_M2_2: return ("M.2 Socket 2 (Mechanical Key B)"); 1442 case SMB_SLT_M2_3: return ("M.2 Socket 3 (Mechanical Key M)"); 1443 case SMB_SLT_MXM_I: return ("MXM Type I"); 1444 case SMB_SLT_MXM_II: return ("MXM Type II"); 1445 case SMB_SLT_MXM_III: return ("MXM Type III (standard connector)"); 1446 case SMB_SLT_MXM_III_HE: return ("MXM Type III (HE connector)"); 1447 case SMB_SLT_MXM_V: return ("MXM Type IV"); 1448 case SMB_SLT_MXM3_A: return ("MXM 3.0 Type A"); 1449 case SMB_SLT_MXM3_B: return ("MXM 3.0 Type B"); 1450 case SMB_SLT_PCIEG2_SFF: return ("PCI Express Gen 2 SFF-8639"); 1451 case SMB_SLT_PCIEG3_SFF: return ("PCI Express Gen 3 SFF-8639"); 1452 case SMB_SLT_PCIE_M52_WBSKO: return ("PCI Express Mini 52-pin with bottom-side keep-outs"); 1453 case SMB_SLT_PCIE_M52_WOBSKO: return ("PCI Express Mini 52-pin without bottom-side keep-outs"); 1454 case SMB_SLT_PCIE_M76: return ("PCI Express Mini 72-pin"); 1455 case SMB_SLT_PC98_C20: return ("PC-98/C20"); 1456 case SMB_SLT_PC98_C24: return ("PC-98/C24"); 1457 case SMB_SLT_PC98_E: return ("PC-98/E"); 1458 case SMB_SLT_PC98_LB: return ("PC-98/Local Bus"); 1459 case SMB_SLT_PC98_C: return ("PC-98/Card"); 1460 case SMB_SLT_PCIE: return ("PCI Express"); 1461 case SMB_SLT_PCIE1: return ("PCI Express x1"); 1462 case SMB_SLT_PCIE2: return ("PCI Express x2"); 1463 case SMB_SLT_PCIE4: return ("PCI Express x4"); 1464 case SMB_SLT_PCIE8: return ("PCI Express x8"); 1465 case SMB_SLT_PCIE16: return ("PCI Express x16"); 1466 case SMB_SLT_PCIE2G: return ("PCI Exp. Gen 2"); 1467 case SMB_SLT_PCIE2G1: return ("PCI Exp. Gen 2 x1"); 1468 case SMB_SLT_PCIE2G2: return ("PCI Exp. Gen 2 x2"); 1469 case SMB_SLT_PCIE2G4: return ("PCI Exp. Gen 2 x4"); 1470 case SMB_SLT_PCIE2G8: return ("PCI Exp. Gen 2 x8"); 1471 case SMB_SLT_PCIE2G16: return ("PCI Exp. Gen 2 x16"); 1472 case SMB_SLT_PCIE3G: return ("PCI Exp. Gen 3"); 1473 case SMB_SLT_PCIE3G1: return ("PCI Exp. Gen 3 x1"); 1474 case SMB_SLT_PCIE3G2: return ("PCI Exp. Gen 3 x2"); 1475 case SMB_SLT_PCIE3G4: return ("PCI Exp. Gen 3 x4"); 1476 case SMB_SLT_PCIE3G8: return ("PCI Exp. Gen 3 x8"); 1477 case SMB_SLT_PCIE3G16: return ("PCI Exp. Gen 3 x16"); 1478 } 1479 return (NULL); 1480 } 1481 1482 const char * 1483 smbios_slot_usage_desc(uint_t x) 1484 { 1485 switch (x) { 1486 case SMB_SLU_OTHER: return ("other"); 1487 case SMB_SLU_UNKNOWN: return ("unknown"); 1488 case SMB_SLU_AVAIL: return ("available"); 1489 case SMB_SLU_INUSE: return ("in use"); 1490 } 1491 return (NULL); 1492 } 1493 1494 const char * 1495 smbios_slot_width_desc(uint_t x) 1496 { 1497 switch (x) { 1498 case SMB_SLW_OTHER: return ("other"); 1499 case SMB_SLW_UNKNOWN: return ("unknown"); 1500 case SMB_SLW_8: return ("8 bit"); 1501 case SMB_SLW_16: return ("16 bit"); 1502 case SMB_SLW_32: return ("32 bit"); 1503 case SMB_SLW_64: return ("64 bit"); 1504 case SMB_SLW_128: return ("128 bit"); 1505 case SMB_SLW_1X: return ("1x or x1"); 1506 case SMB_SLW_2X: return ("2x or x2"); 1507 case SMB_SLW_4X: return ("4x or x4"); 1508 case SMB_SLW_8X: return ("8x or x8"); 1509 case SMB_SLW_12X: return ("12x or x12"); 1510 case SMB_SLW_16X: return ("16x or x16"); 1511 case SMB_SLW_32X: return ("32x or x32"); 1512 } 1513 return (NULL); 1514 } 1515 1516 const char * 1517 smbios_tprobe_loc_desc(uint_t x) 1518 { 1519 switch (x) { 1520 case SMB_TPROBE_L_OTHER: return ("other"); 1521 case SMB_TPROBE_L_UNKNOWN: return ("unknown"); 1522 case SMB_TPROBE_L_PROC: return ("processor"); 1523 case SMB_TPROBE_L_DISK: return ("disk"); 1524 case SMB_TPROBE_L_PBAY: return ("peripheral bay"); 1525 case SMB_TPROBE_L_MGMT: return ("system management module"); 1526 case SMB_TPROBE_L_MOBO: return ("motherboard"); 1527 case SMB_TPROBE_L_MEMMOD: return ("memory module"); 1528 case SMB_TPROBE_L_PROCMOD: return ("processor module"); 1529 case SMB_TPROBE_L_POWER: return ("power unit"); 1530 case SMB_TPROBE_L_AIC: return ("add-in card"); 1531 case SMB_TPROBE_L_FPBOARD: return ("front panel board"); 1532 case SMB_TPROBE_L_BPBOARD: return ("rear panel board"); 1533 case SMB_TPROBE_L_PSBOARD: return ("power system board"); 1534 case SMB_TPROBE_L_DBPANE: return ("drive back plane"); 1535 } 1536 return (NULL); 1537 } 1538 1539 const char * 1540 smbios_tprobe_status_desc(uint_t x) 1541 { 1542 switch (x) { 1543 case SMB_TPROBE_S_OTHER: return ("other"); 1544 case SMB_TPROBE_S_UNKNOWN: return ("unknown"); 1545 case SMB_TPROBE_S_OK: return ("OK"); 1546 case SMB_TPROBE_S_NONCRIT: return ("non-critical"); 1547 case SMB_TPROBE_S_CRIT: return ("critical"); 1548 case SMB_TPROBE_S_NONRECOV: return ("non-recoverable"); 1549 } 1550 return (NULL); 1551 } 1552 1553 const char * 1554 smbios_type_desc(uint_t x) 1555 { 1556 switch (x) { 1557 case SMB_TYPE_BIOS: return ("BIOS information"); 1558 case SMB_TYPE_SYSTEM: return ("system information"); 1559 case SMB_TYPE_BASEBOARD: return ("base board"); 1560 case SMB_TYPE_CHASSIS: return ("system enclosure or chassis"); 1561 case SMB_TYPE_PROCESSOR: return ("processor"); 1562 case SMB_TYPE_MEMCTL: return ("memory controller"); 1563 case SMB_TYPE_MEMMOD: return ("memory module"); 1564 case SMB_TYPE_CACHE: return ("processor cache"); 1565 case SMB_TYPE_PORT: return ("port connector"); 1566 case SMB_TYPE_SLOT: return ("upgradeable system slot"); 1567 case SMB_TYPE_OBDEVS: return ("on-board devices"); 1568 case SMB_TYPE_OEMSTR: return ("OEM string table"); 1569 case SMB_TYPE_SYSCONFSTR: return ("system configuration string table"); 1570 case SMB_TYPE_LANG: return ("BIOS language information"); 1571 case SMB_TYPE_GROUP: return ("group associations"); 1572 case SMB_TYPE_EVENTLOG: return ("system event log"); 1573 case SMB_TYPE_MEMARRAY: return ("physical memory array"); 1574 case SMB_TYPE_MEMDEVICE: return ("memory device"); 1575 case SMB_TYPE_MEMERR32: return ("32-bit memory error information"); 1576 case SMB_TYPE_MEMARRAYMAP: return ("memory array mapped address"); 1577 case SMB_TYPE_MEMDEVICEMAP: return ("memory device mapped address"); 1578 case SMB_TYPE_POINTDEV: return ("built-in pointing device"); 1579 case SMB_TYPE_BATTERY: return ("portable battery"); 1580 case SMB_TYPE_RESET: return ("system reset settings"); 1581 case SMB_TYPE_SECURITY: return ("hardware security settings"); 1582 case SMB_TYPE_POWERCTL: return ("system power controls"); 1583 case SMB_TYPE_VPROBE: return ("voltage probe"); 1584 case SMB_TYPE_COOLDEV: return ("cooling device"); 1585 case SMB_TYPE_TPROBE: return ("temperature probe"); 1586 case SMB_TYPE_IPROBE: return ("current probe"); 1587 case SMB_TYPE_OOBRA: return ("out-of-band remote access facility"); 1588 case SMB_TYPE_BIS: return ("boot integrity services"); 1589 case SMB_TYPE_BOOT: return ("system boot status"); 1590 case SMB_TYPE_MEMERR64: return ("64-bit memory error information"); 1591 case SMB_TYPE_MGMTDEV: return ("management device"); 1592 case SMB_TYPE_MGMTDEVCP: return ("management device component"); 1593 case SMB_TYPE_MGMTDEVDATA: return ("management device threshold data"); 1594 case SMB_TYPE_MEMCHAN: return ("memory channel"); 1595 case SMB_TYPE_IPMIDEV: return ("IPMI device information"); 1596 case SMB_TYPE_POWERSUP: return ("system power supply"); 1597 case SMB_TYPE_ADDINFO: return ("additional information"); 1598 case SMB_TYPE_OBDEVEXT: return ("on-board device extended info"); 1599 case SMB_TYPE_MCHI: return ("mgmt controller host interface"); 1600 case SMB_TYPE_TPM: return ("TPM device"); 1601 case SMB_TYPE_INACTIVE: return ("inactive table entry"); 1602 case SMB_TYPE_EOT: return ("end of table"); 1603 case SMB_TYPE_OEM_LO: return ("start of OEM-specific type range"); 1604 case SMB_TYPE_OEM_HI: return ("end of OEM-specific type range"); 1605 } 1606 return (NULL); 1607 } 1608 1609 const char * 1610 smbios_vprobe_loc_desc(uint_t x) 1611 { 1612 switch (x) { 1613 case SMB_VPROBE_L_OTHER: return ("other"); 1614 case SMB_VPROBE_L_UNKNOWN: return ("unknown"); 1615 case SMB_VPROBE_L_PROC: return ("processor"); 1616 case SMB_VPROBE_L_DISK: return ("disk"); 1617 case SMB_VPROBE_L_PBAY: return ("peripheral bay"); 1618 case SMB_VPROBE_L_MGMT: return ("system management module"); 1619 case SMB_VPROBE_L_MOBO: return ("motherboard"); 1620 case SMB_VPROBE_L_MEMMOD: return ("memory module"); 1621 case SMB_VPROBE_L_PROCMOD: return ("processor module"); 1622 case SMB_VPROBE_L_POWER: return ("power unit"); 1623 case SMB_VPROBE_L_AIC: return ("add-in card"); 1624 } 1625 return (NULL); 1626 } 1627 1628 const char * 1629 smbios_vprobe_status_desc(uint_t x) 1630 { 1631 switch (x) { 1632 case SMB_VPROBE_S_OTHER: return ("other"); 1633 case SMB_VPROBE_S_UNKNOWN: return ("unknown"); 1634 case SMB_VPROBE_S_OK: return ("OK"); 1635 case SMB_VPROBE_S_NONCRIT: return ("non-critical"); 1636 case SMB_VPROBE_S_CRIT: return ("critical"); 1637 case SMB_VPROBE_S_NONRECOV: return ("non-recoverable"); 1638 } 1639 return (NULL); 1640 } 1641 1642 const char * 1643 smbios_system_wakeup_desc(uint_t x) 1644 { 1645 switch (x) { 1646 case SMB_WAKEUP_RSV0: return ("reserved"); 1647 case SMB_WAKEUP_OTHER: return ("other"); 1648 case SMB_WAKEUP_UNKNOWN: return ("unknown"); 1649 case SMB_WAKEUP_APM: return ("APM timer"); 1650 case SMB_WAKEUP_MODEM: return ("modem ring"); 1651 case SMB_WAKEUP_LAN: return ("LAN remote"); 1652 case SMB_WAKEUP_SWITCH: return ("power switch"); 1653 case SMB_WAKEUP_PCIPME: return ("PCI PME#"); 1654 case SMB_WAKEUP_AC: return ("AC power restored"); 1655 } 1656 return (NULL); 1657 } 1658