mirror of
https://github.com/Zeal-Operating-System/ZealOS.git
synced 2024-12-31 17:56:30 +00:00
1b75d91002
Add arg to SATARep to specify drive types to show. Add checks in AHCIPortInit to verify port signatures, add helper method to get signatures from port.
1245 lines
146 KiB
HTML
Executable file
1245 lines
146 KiB
HTML
Executable file
<!DOCTYPE HTML>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html;charset=US-ASCII">
|
|
<meta name="generator" content="ZealOS V0.13">
|
|
<style type="text/css">
|
|
body {background-color:#fef1f0;}
|
|
.cF0{color:#000000;background-color:#fef1f0;}
|
|
.cF1{color:#0148a4;background-color:#fef1f0;}
|
|
.cF2{color:#3b7901;background-color:#fef1f0;}
|
|
.cF3{color:#057c7e;background-color:#fef1f0;}
|
|
.cF4{color:#bb2020;background-color:#fef1f0;}
|
|
.cF5{color:#9e42ae;background-color:#fef1f0;}
|
|
.cF6{color:#b57901;background-color:#fef1f0;}
|
|
.cF7{color:#b2b6af;background-color:#fef1f0;}
|
|
.cF8{color:#555753;background-color:#fef1f0;}
|
|
.cF9{color:#678fbb;background-color:#fef1f0;}
|
|
.cFA{color:#82bc49;background-color:#fef1f0;}
|
|
.cFB{color:#0097a2;background-color:#fef1f0;}
|
|
.cFC{color:#e26a6a;background-color:#fef1f0;}
|
|
.cFD{color:#c671bc;background-color:#fef1f0;}
|
|
.cFE{color:#c7ab00;background-color:#fef1f0;}
|
|
.cFF{color:#fef1f0;background-color:#fef1f0;}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<pre style="font-family:monospace;font-size:12pt">
|
|
<a name="l1"></a><span class=cF2>//SMBIOS parsing.</span><span class=cF0>
|
|
<a name="l2"></a></span><span class=cF2>//Based on SMBIOS specification 3.3.0 (document "DSP0134")</span><span class=cF0>
|
|
<a name="l3"></a></span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>SMBIOSInit</span><span class=cF0>()
|
|
<a name="l4"></a>{
|
|
<a name="l5"></a> </span><span class=cF2>//Section 7.1.1 line 925 (BIOS characteristics)</span><span class=cF0>
|
|
<a name="l6"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>"ST_SMBIOS_BIOS_FLAGS"</span><span class=cF0>,
|
|
<a name="l7"></a>
|
|
<a name="l8"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l9"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l10"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l11"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l12"></a> </span><span class=cF6>"ISA\0"</span><span class=cF0>
|
|
<a name="l13"></a> </span><span class=cF6>"MCA\0"</span><span class=cF0>
|
|
<a name="l14"></a> </span><span class=cF6>"EISA\0"</span><span class=cF0>
|
|
<a name="l15"></a> </span><span class=cF6>"PCI\0"</span><span class=cF0>
|
|
<a name="l16"></a> </span><span class=cF6>"PC Card\0"</span><span class=cF0>
|
|
<a name="l17"></a> </span><span class=cF6>"Plug and Play\0"</span><span class=cF0>
|
|
<a name="l18"></a> </span><span class=cF6>"APM\0"</span><span class=cF0>
|
|
<a name="l19"></a> </span><span class=cF6>"Flashable BIOS\0"</span><span class=cF0>
|
|
<a name="l20"></a> </span><span class=cF6>"BIOS shadowing\0"</span><span class=cF0>
|
|
<a name="l21"></a> </span><span class=cF6>"VESA Local Bus\0"</span><span class=cF0>
|
|
<a name="l22"></a> </span><span class=cF6>"ESCD\0"</span><span class=cF0>
|
|
<a name="l23"></a> </span><span class=cF6>"CD Boot\0"</span><span class=cF0>
|
|
<a name="l24"></a> </span><span class=cF6>"Selectable boot\0"</span><span class=cF0>
|
|
<a name="l25"></a> </span><span class=cF6>"BIOS ROM socketed\0"</span><span class=cF0>
|
|
<a name="l26"></a> </span><span class=cF6>"PC Card Boot\0"</span><span class=cF0>
|
|
<a name="l27"></a> </span><span class=cF6>"Enhanced Disk Drive Services\0"</span><span class=cF0>
|
|
<a name="l28"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l29"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l30"></a> </span><span class=cF6>"INT 0x13 5.25\"/360 KB Floppy Support\0"</span><span class=cF0>
|
|
<a name="l31"></a> </span><span class=cF6>"INT 0x13 5.25\"/1.2 MB Floppy Support\0"</span><span class=cF0>
|
|
<a name="l32"></a> </span><span class=cF6>"INT 0x13 3.5\"/720 KB Floppy Support\0"</span><span class=cF0>
|
|
<a name="l33"></a> </span><span class=cF6>"INT 0x13 3.5\"/2.88 MB Floppy Support\0"</span><span class=cF0>
|
|
<a name="l34"></a> </span><span class=cF6>"INT 0x05 Screen Printing\0"</span><span class=cF0>
|
|
<a name="l35"></a> </span><span class=cF6>"INT 0x09 8042 Keyboard\0"</span><span class=cF0>
|
|
<a name="l36"></a> </span><span class=cF6>"INT 0x14 Serial\0"</span><span class=cF0>
|
|
<a name="l37"></a> </span><span class=cF6>"INT 0x17 Printer\0"</span><span class=cF0>
|
|
<a name="l38"></a> </span><span class=cF6>"INT 0x10 CGA/Mono Video"</span><span class=cF0>);
|
|
<a name="l39"></a>
|
|
<a name="l40"></a> </span><span class=cF2>//Section 7.1.2.1 line 931 (BIOS characteristics extension byte 1)</span><span class=cF0>
|
|
<a name="l41"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>"ST_SMBIOS_BIOS_FLAGSEXT1"</span><span class=cF0>,
|
|
<a name="l42"></a>
|
|
<a name="l43"></a> </span><span class=cF6>"ACPI\0"</span><span class=cF0>
|
|
<a name="l44"></a> </span><span class=cF6>"USB Legacy\0"</span><span class=cF0>
|
|
<a name="l45"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l46"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l47"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l48"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l49"></a> </span><span class=cF6>"Serial Boot\0"</span><span class=cF0>
|
|
<a name="l50"></a> </span><span class=cF6>"Smart Battery"</span><span class=cF0>);
|
|
<a name="l51"></a>
|
|
<a name="l52"></a> </span><span class=cF2>//Section 7.1.2.2 line 935 (BIOS characteristics extension byte 2)</span><span class=cF0>
|
|
<a name="l53"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>"ST_SMBIOS_BIOS_FLAGSEXT2"</span><span class=cF0>,
|
|
<a name="l54"></a>
|
|
<a name="l55"></a> </span><span class=cF6>"BIOS Boot\0"</span><span class=cF0>
|
|
<a name="l56"></a> </span><span class=cF6>"Network Boot\0"</span><span class=cF0>
|
|
<a name="l57"></a> </span><span class=cF6>"Targeted Content Distribution\0"</span><span class=cF0>
|
|
<a name="l58"></a> </span><span class=cF6>"UEFI\0"</span><span class=cF0>
|
|
<a name="l59"></a> </span><span class=cF6>"Virtual Machine"</span><span class=cF0>);
|
|
<a name="l60"></a>
|
|
<a name="l61"></a> </span><span class=cF2>//Section 7.2.2 line 959 (system wakeup types)</span><span class=cF0>
|
|
<a name="l62"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>"ST_SMBIOS_WAKEUP_TYPES"</span><span class=cF0>,
|
|
<a name="l63"></a>
|
|
<a name="l64"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l65"></a> </span><span class=cF6>"Other\0"</span><span class=cF0>
|
|
<a name="l66"></a> </span><span class=cF6>"Unknown\0"</span><span class=cF0>
|
|
<a name="l67"></a> </span><span class=cF6>"APM Timer\0"</span><span class=cF0>
|
|
<a name="l68"></a> </span><span class=cF6>"Modem Ring\0"</span><span class=cF0>
|
|
<a name="l69"></a> </span><span class=cF6>"LAN Remote\0"</span><span class=cF0>
|
|
<a name="l70"></a> </span><span class=cF6>"Power Switch\0"</span><span class=cF0>
|
|
<a name="l71"></a> </span><span class=cF6>"PCI PME#\0"</span><span class=cF0>
|
|
<a name="l72"></a> </span><span class=cF6>"AC Power Restored"</span><span class=cF0>);
|
|
<a name="l73"></a>
|
|
<a name="l74"></a> </span><span class=cF2>//Section 7.3.1 line 972 (baseboard feature flags)</span><span class=cF0>
|
|
<a name="l75"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>"ST_SMBIOS_BASEBOARD_FLAGS"</span><span class=cF0>,
|
|
<a name="l76"></a>
|
|
<a name="l77"></a> </span><span class=cF6>"Hosting Board (Motherboard)\0"</span><span class=cF0>
|
|
<a name="l78"></a> </span><span class=cF6>"Requires Auxilary Board\0"</span><span class=cF0>
|
|
<a name="l79"></a> </span><span class=cF6>"Removable\0"</span><span class=cF0>
|
|
<a name="l80"></a> </span><span class=cF6>"Replaceable\0"</span><span class=cF0>
|
|
<a name="l81"></a> </span><span class=cF6>"Hot Swappable"</span><span class=cF0>);
|
|
<a name="l82"></a>
|
|
<a name="l83"></a> </span><span class=cF2>//Section 7.3.2 line 977 (baseboard board types)</span><span class=cF0>
|
|
<a name="l84"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>"ST_SMBIOS_BASEBOARD_TYPES"</span><span class=cF0>,
|
|
<a name="l85"></a>
|
|
<a name="l86"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l87"></a> </span><span class=cF6>"Unknown\0"</span><span class=cF0>
|
|
<a name="l88"></a> </span><span class=cF6>"Other\0"</span><span class=cF0>
|
|
<a name="l89"></a> </span><span class=cF6>"Server Blade\0"</span><span class=cF0>
|
|
<a name="l90"></a> </span><span class=cF6>"Connectivity Switch\0"</span><span class=cF0>
|
|
<a name="l91"></a> </span><span class=cF6>"System Management Module\0"</span><span class=cF0>
|
|
<a name="l92"></a> </span><span class=cF6>"Processor Module\0"</span><span class=cF0>
|
|
<a name="l93"></a> </span><span class=cF6>"I/O Module\0"</span><span class=cF0>
|
|
<a name="l94"></a> </span><span class=cF6>"Daughterboard\0"</span><span class=cF0>
|
|
<a name="l95"></a> </span><span class=cF6>"Motherboard\0"</span><span class=cF0>
|
|
<a name="l96"></a> </span><span class=cF6>"Processor/Memory Module\0"</span><span class=cF0>
|
|
<a name="l97"></a> </span><span class=cF6>"Processor/IO Module\0"</span><span class=cF0>
|
|
<a name="l98"></a> </span><span class=cF6>"Interconnect Board\0"</span><span class=cF0>);
|
|
<a name="l99"></a>
|
|
<a name="l100"></a> </span><span class=cF2>//Section 7.4.1 line 988 (system enclosure types)</span><span class=cF0>
|
|
<a name="l101"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>"ST_SMBIOS_ENCLOSURE_TYPES"</span><span class=cF0>,
|
|
<a name="l102"></a>
|
|
<a name="l103"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l104"></a> </span><span class=cF6>"Other\0"</span><span class=cF0>
|
|
<a name="l105"></a> </span><span class=cF6>"Unknown\0"</span><span class=cF0>
|
|
<a name="l106"></a> </span><span class=cF6>"Desktop\0"</span><span class=cF0>
|
|
<a name="l107"></a> </span><span class=cF6>"Low Profile Desktop\0"</span><span class=cF0>
|
|
<a name="l108"></a> </span><span class=cF6>"Pizza Box\0"</span><span class=cF0>
|
|
<a name="l109"></a> </span><span class=cF6>"Mini Tower\0"</span><span class=cF0>
|
|
<a name="l110"></a> </span><span class=cF6>"Tower\0"</span><span class=cF0>
|
|
<a name="l111"></a> </span><span class=cF6>"Portable\0"</span><span class=cF0>
|
|
<a name="l112"></a> </span><span class=cF6>"Laptop\0"</span><span class=cF0>
|
|
<a name="l113"></a> </span><span class=cF6>"Notebook\0"</span><span class=cF0>
|
|
<a name="l114"></a> </span><span class=cF6>"Hand Held\0"</span><span class=cF0>
|
|
<a name="l115"></a> </span><span class=cF6>"Docking Station\0"</span><span class=cF0>
|
|
<a name="l116"></a> </span><span class=cF6>"All-in-One\0"</span><span class=cF0>
|
|
<a name="l117"></a> </span><span class=cF6>"Sub Notebook\0"</span><span class=cF0>
|
|
<a name="l118"></a> </span><span class=cF6>"Space-saving\0"</span><span class=cF0>
|
|
<a name="l119"></a> </span><span class=cF6>"Lunch box\0"</span><span class=cF0>
|
|
<a name="l120"></a> </span><span class=cF6>"Main Server Chassis\0"</span><span class=cF0>
|
|
<a name="l121"></a> </span><span class=cF6>"Expansion Chassis\0"</span><span class=cF0>
|
|
<a name="l122"></a> </span><span class=cF6>"SubChassis\0"</span><span class=cF0>
|
|
<a name="l123"></a> </span><span class=cF6>"Bus Expansion Chassis\0"</span><span class=cF0>
|
|
<a name="l124"></a> </span><span class=cF6>"Peripheral Chassis\0"</span><span class=cF0>
|
|
<a name="l125"></a> </span><span class=cF6>"RAID Chassis\0"</span><span class=cF0>
|
|
<a name="l126"></a> </span><span class=cF6>"Rack Mount Chassis\0"</span><span class=cF0>
|
|
<a name="l127"></a> </span><span class=cF6>"Sealed-case PC\0"</span><span class=cF0>
|
|
<a name="l128"></a> </span><span class=cF6>"Multi-system Chassis\0"</span><span class=cF0>
|
|
<a name="l129"></a> </span><span class=cF6>"Compact PCI\0"</span><span class=cF0>
|
|
<a name="l130"></a> </span><span class=cF6>"Advanced TCA\0"</span><span class=cF0>
|
|
<a name="l131"></a> </span><span class=cF6>"Blade\0"</span><span class=cF0>
|
|
<a name="l132"></a> </span><span class=cF6>"Blade Enclosure\0"</span><span class=cF0>
|
|
<a name="l133"></a> </span><span class=cF6>"Tablet\0"</span><span class=cF0>
|
|
<a name="l134"></a> </span><span class=cF6>"Convertible\0"</span><span class=cF0>
|
|
<a name="l135"></a> </span><span class=cF6>"Detachable\0"</span><span class=cF0>
|
|
<a name="l136"></a> </span><span class=cF6>"IoT Gateway\0"</span><span class=cF0>
|
|
<a name="l137"></a> </span><span class=cF6>"Embedded PC\0"</span><span class=cF0>
|
|
<a name="l138"></a> </span><span class=cF6>"Mini PC\0"</span><span class=cF0>
|
|
<a name="l139"></a> </span><span class=cF6>"Stick PC"</span><span class=cF0>);
|
|
<a name="l140"></a>
|
|
<a name="l141"></a> </span><span class=cF2>//Section 7.4.2 line 991 (enclosure states)</span><span class=cF0>
|
|
<a name="l142"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>"ST_SMBIOS_ENCLOSURE_STATES"</span><span class=cF0>,
|
|
<a name="l143"></a>
|
|
<a name="l144"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l145"></a> </span><span class=cF6>"Other\0"</span><span class=cF0>
|
|
<a name="l146"></a> </span><span class=cF6>"Unknown\0"</span><span class=cF0>
|
|
<a name="l147"></a> </span><span class=cF6>"Safe\0"</span><span class=cF0>
|
|
<a name="l148"></a> </span><span class=cF6>"Warning\0"</span><span class=cF0>
|
|
<a name="l149"></a> </span><span class=cF6>"Critical\0"</span><span class=cF0>
|
|
<a name="l150"></a> </span><span class=cF6>"Non-Recoverable"</span><span class=cF0>);
|
|
<a name="l151"></a>
|
|
<a name="l152"></a> </span><span class=cF2>//Section 7.4.3 line 994 (enclosure security status field)</span><span class=cF0>
|
|
<a name="l153"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>"ST_SMBIOS_ENCLOSURE_SECURITY_STATUSES"</span><span class=cF0>,
|
|
<a name="l154"></a>
|
|
<a name="l155"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l156"></a> </span><span class=cF6>"Other\0"</span><span class=cF0>
|
|
<a name="l157"></a> </span><span class=cF6>"Unknown\0"</span><span class=cF0>
|
|
<a name="l158"></a> </span><span class=cF6>"None\0"</span><span class=cF0>
|
|
<a name="l159"></a> </span><span class=cF6>"External Interface Locked Out\0"</span><span class=cF0>
|
|
<a name="l160"></a> </span><span class=cF6>"External Interface Enabled"</span><span class=cF0>);
|
|
<a name="l161"></a>
|
|
<a name="l162"></a> </span><span class=cF2>//Section 7.5.1 line 1014 (processor type field)</span><span class=cF0>
|
|
<a name="l163"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>"ST_SMBIOS_PROCESSOR_TYPES"</span><span class=cF0>,
|
|
<a name="l164"></a>
|
|
<a name="l165"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l166"></a> </span><span class=cF6>"Other\0"</span><span class=cF0>
|
|
<a name="l167"></a> </span><span class=cF6>"Unknown\0"</span><span class=cF0>
|
|
<a name="l168"></a> </span><span class=cF6>"Central Processor\0"</span><span class=cF0>
|
|
<a name="l169"></a> </span><span class=cF6>"Math Processor\0"</span><span class=cF0>
|
|
<a name="l170"></a> </span><span class=cF6>"DSP Processor\0"</span><span class=cF0>
|
|
<a name="l171"></a> </span><span class=cF6>"Video Processor"</span><span class=cF0>);
|
|
<a name="l172"></a> </span><span class=cF2>//Section 7.5.4 line 1050 (processor voltage field)</span><span class=cF0>
|
|
<a name="l173"></a>
|
|
<a name="l174"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>"ST_SMBIOS_PROCESSOR_VOLTAGE_LEVELS"</span><span class=cF0>,
|
|
<a name="l175"></a>
|
|
<a name="l176"></a> </span><span class=cF6>"5V\0"</span><span class=cF0>
|
|
<a name="l177"></a> </span><span class=cF6>"3.3V\0"</span><span class=cF0>
|
|
<a name="l178"></a> </span><span class=cF6>"2.9V"</span><span class=cF0>);
|
|
<a name="l179"></a>
|
|
<a name="l180"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>"ST_CPUID_1_EDX_FLAGS"</span><span class=cF0>,
|
|
<a name="l181"></a>
|
|
<a name="l182"></a> </span><span class=cF6>"x87 FPU\0"</span><span class=cF0>
|
|
<a name="l183"></a> </span><span class=cF6>"Virtual 8086 Mode Enhancements\0"</span><span class=cF0>
|
|
<a name="l184"></a> </span><span class=cF6>"Debugging Extensions\0"</span><span class=cF0>
|
|
<a name="l185"></a> </span><span class=cF6>"Page Size Extensions\0"</span><span class=cF0>
|
|
<a name="l186"></a> </span><span class=cF6>"Time Stamp Counter\0"</span><span class=cF0>
|
|
<a name="l187"></a> </span><span class=cF6>"MSRs\0"</span><span class=cF0>
|
|
<a name="l188"></a> </span><span class=cF6>"Page Address Extension\0"</span><span class=cF0>
|
|
<a name="l189"></a> </span><span class=cF6>"Machine Check Exceptions\0"</span><span class=cF0>
|
|
<a name="l190"></a> </span><span class=cF6>"CMPXCHG8B\0"</span><span class=cF0>
|
|
<a name="l191"></a> </span><span class=cF6>"APIC\0"</span><span class=cF0>
|
|
<a name="l192"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l193"></a> </span><span class=cF6>"SYSENTER/SYSEXIT\0"</span><span class=cF0>
|
|
<a name="l194"></a> </span><span class=cF6>"Memory Type Range Registers\0"</span><span class=cF0>
|
|
<a name="l195"></a> </span><span class=cF6>"Page Global Bit\0"</span><span class=cF0>
|
|
<a name="l196"></a> </span><span class=cF6>"Machine Check Architecture\0"</span><span class=cF0>
|
|
<a name="l197"></a> </span><span class=cF6>"CMOV Instructions\0"</span><span class=cF0>
|
|
<a name="l198"></a> </span><span class=cF6>"Page Attribute Table\0"</span><span class=cF0>
|
|
<a name="l199"></a> </span><span class=cF6>"36 Bit Page Size Extension\0"</span><span class=cF0>
|
|
<a name="l200"></a> </span><span class=cF6>"Processor Serial Number\0"</span><span class=cF0>
|
|
<a name="l201"></a> </span><span class=cF6>"CLFLUSH\0"</span><span class=cF0>
|
|
<a name="l202"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l203"></a> </span><span class=cF6>"Debug Store\0"</span><span class=cF0>
|
|
<a name="l204"></a> </span><span class=cF6>"ACPI\0"</span><span class=cF0>
|
|
<a name="l205"></a> </span><span class=cF6>"MMX\0"</span><span class=cF0>
|
|
<a name="l206"></a> </span><span class=cF6>"FXSAVE/FXRSTOR\0"</span><span class=cF0>
|
|
<a name="l207"></a> </span><span class=cF6>"SSE\0"</span><span class=cF0>
|
|
<a name="l208"></a> </span><span class=cF6>"SSE2\0"</span><span class=cF0>
|
|
<a name="l209"></a> </span><span class=cF6>"Self Snoop\0"</span><span class=cF0>
|
|
<a name="l210"></a> </span><span class=cF6>"HTT\0"</span><span class=cF0>
|
|
<a name="l211"></a> </span><span class=cF6>"Thermal Monitor\0"</span><span class=cF0>
|
|
<a name="l212"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l213"></a> </span><span class=cF6>"Pending Break Enable\0"</span><span class=cF0>);
|
|
<a name="l214"></a>
|
|
<a name="l215"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>"ST_CPUID_1_ECX_FLAGS"</span><span class=cF0>,
|
|
<a name="l216"></a>
|
|
<a name="l217"></a> </span><span class=cF6>"SSE3\0"</span><span class=cF0>
|
|
<a name="l218"></a> </span><span class=cF6>"PCLMULQDQ\0"</span><span class=cF0>
|
|
<a name="l219"></a> </span><span class=cF6>"64 bit DS AREA\0"</span><span class=cF0>
|
|
<a name="l220"></a> </span><span class=cF6>"MONITOR/MWAIT\0"</span><span class=cF0>
|
|
<a name="l221"></a> </span><span class=cF6>"CPL Qualified Debug Store\0"</span><span class=cF0>
|
|
<a name="l222"></a> </span><span class=cF6>"Virtual Machine Extensions\0"</span><span class=cF0>
|
|
<a name="l223"></a> </span><span class=cF6>"Safer Mode Extensions\0"</span><span class=cF0>
|
|
<a name="l224"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l225"></a> </span><span class=cF6>"Thermal Monitor 2\0"</span><span class=cF0>
|
|
<a name="l226"></a> </span><span class=cF6>"SSSE3\0"</span><span class=cF0>
|
|
<a name="l227"></a> </span><span class=cF6>"L1 Context ID\0"</span><span class=cF0>
|
|
<a name="l228"></a> </span><span class=cF6>"IA32_DEBUG_INTERFACE\0"</span><span class=cF0>
|
|
<a name="l229"></a> </span><span class=cF6>"FMA Extensions\0"</span><span class=cF0>
|
|
<a name="l230"></a> </span><span class=cF6>"CMPXCHG16B\0"</span><span class=cF0>
|
|
<a name="l231"></a> </span><span class=cF6>"xTPR Update Control\0"</span><span class=cF0>
|
|
<a name="l232"></a> </span><span class=cF6>"Perfmon and Debug Capability\0"</span><span class=cF0>
|
|
<a name="l233"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l234"></a> </span><span class=cF6>"Process Context Identifiers\0"</span><span class=cF0>
|
|
<a name="l235"></a> </span><span class=cF6>"MMIO Prefetch\0"</span><span class=cF0>
|
|
<a name="l236"></a> </span><span class=cF6>"SSE4.1\0"</span><span class=cF0>
|
|
<a name="l237"></a> </span><span class=cF6>"SSE4.2\0"</span><span class=cF0>
|
|
<a name="l238"></a> </span><span class=cF6>"x2APIC\0"</span><span class=cF0>
|
|
<a name="l239"></a> </span><span class=cF6>"MOVBE\0"</span><span class=cF0>
|
|
<a name="l240"></a> </span><span class=cF6>"POPCNT\0"</span><span class=cF0>
|
|
<a name="l241"></a> </span><span class=cF6>"TSC Deadline\0"</span><span class=cF0>
|
|
<a name="l242"></a> </span><span class=cF6>"AESNI\0"</span><span class=cF0>
|
|
<a name="l243"></a> </span><span class=cF6>"XSAVE\0"</span><span class=cF0>
|
|
<a name="l244"></a> </span><span class=cF6>"OSXSAVE\0"</span><span class=cF0>
|
|
<a name="l245"></a> </span><span class=cF6>"AVX\0"</span><span class=cF0>
|
|
<a name="l246"></a> </span><span class=cF6>"F16C\0"</span><span class=cF0>
|
|
<a name="l247"></a> </span><span class=cF6>"RDRAND"</span><span class=cF0>);
|
|
<a name="l248"></a>
|
|
<a name="l249"></a> </span><span class=cF2>//Section 7.5.5 line 1058 (upgrade field)</span><span class=cF0>
|
|
<a name="l250"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>"ST_SMBIOS_PROCESSOR_UPGRADES"</span><span class=cF0>,
|
|
<a name="l251"></a>
|
|
<a name="l252"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l253"></a> </span><span class=cF6>"Other\0"</span><span class=cF0>
|
|
<a name="l254"></a> </span><span class=cF6>"Unknown\0"</span><span class=cF0>
|
|
<a name="l255"></a> </span><span class=cF6>"Daughterboard\0"</span><span class=cF0>
|
|
<a name="l256"></a> </span><span class=cF6>"ZIF Socket\0"</span><span class=cF0>
|
|
<a name="l257"></a> </span><span class=cF6>"Replacable Piggy Back\0"</span><span class=cF0>
|
|
<a name="l258"></a> </span><span class=cF6>"None\0"</span><span class=cF0>
|
|
<a name="l259"></a> </span><span class=cF6>"LIF Socket\0"</span><span class=cF0>
|
|
<a name="l260"></a> </span><span class=cF6>"Slot 1\0"</span><span class=cF0>
|
|
<a name="l261"></a> </span><span class=cF6>"Slot2\0"</span><span class=cF0>
|
|
<a name="l262"></a> </span><span class=cF6>"370-pin Socket\0"</span><span class=cF0>
|
|
<a name="l263"></a> </span><span class=cF6>"Slot A\0"</span><span class=cF0>
|
|
<a name="l264"></a> </span><span class=cF6>"Slot M\0"</span><span class=cF0>
|
|
<a name="l265"></a> </span><span class=cF6>"Socket 423\0"</span><span class=cF0>
|
|
<a name="l266"></a> </span><span class=cF6>"Socket A (Socket 462)\0"</span><span class=cF0>
|
|
<a name="l267"></a> </span><span class=cF6>"Socket 478\0"</span><span class=cF0>
|
|
<a name="l268"></a> </span><span class=cF6>"754\0"</span><span class=cF0>
|
|
<a name="l269"></a> </span><span class=cF6>"940\0"</span><span class=cF0>
|
|
<a name="l270"></a> </span><span class=cF6>"939\0"</span><span class=cF0>
|
|
<a name="l271"></a> </span><span class=cF6>"mPGA604\0"</span><span class=cF0>
|
|
<a name="l272"></a> </span><span class=cF6>"LGA771\0"</span><span class=cF0>
|
|
<a name="l273"></a> </span><span class=cF6>"LGA775\0"</span><span class=cF0>
|
|
<a name="l274"></a> </span><span class=cF6>"S1\0"</span><span class=cF0>
|
|
<a name="l275"></a> </span><span class=cF6>"AM2\0"</span><span class=cF0>
|
|
<a name="l276"></a> </span><span class=cF6>"F (1207)\0"</span><span class=cF0>
|
|
<a name="l277"></a> </span><span class=cF6>"LGA1366\0"</span><span class=cF0>
|
|
<a name="l278"></a> </span><span class=cF6>"G34\0"</span><span class=cF0>
|
|
<a name="l279"></a> </span><span class=cF6>"AM3\0"</span><span class=cF0>
|
|
<a name="l280"></a> </span><span class=cF6>"C32\0"</span><span class=cF0>
|
|
<a name="l281"></a> </span><span class=cF6>"LGA1156\0"</span><span class=cF0>
|
|
<a name="l282"></a> </span><span class=cF6>"LGA1567\0"</span><span class=cF0>
|
|
<a name="l283"></a> </span><span class=cF6>"PGA988A\0"</span><span class=cF0>
|
|
<a name="l284"></a> </span><span class=cF6>"BGA1288\0"</span><span class=cF0>
|
|
<a name="l285"></a> </span><span class=cF6>"rPGA988B\0"</span><span class=cF0>
|
|
<a name="l286"></a> </span><span class=cF6>"BGA1023\0"</span><span class=cF0>
|
|
<a name="l287"></a> </span><span class=cF6>"BGA1224\0"</span><span class=cF0>
|
|
<a name="l288"></a> </span><span class=cF6>"LGA1155\0"</span><span class=cF0>
|
|
<a name="l289"></a> </span><span class=cF6>"LGA1356\0"</span><span class=cF0>
|
|
<a name="l290"></a> </span><span class=cF6>"LGA2011\0"</span><span class=cF0>
|
|
<a name="l291"></a> </span><span class=cF6>"FS1\0"</span><span class=cF0>
|
|
<a name="l292"></a> </span><span class=cF6>"FS2\0"</span><span class=cF0>
|
|
<a name="l293"></a> </span><span class=cF6>"FM1\FM2\0"</span><span class=cF0>
|
|
<a name="l294"></a> </span><span class=cF6>"LGA2011-3\0"</span><span class=cF0>
|
|
<a name="l295"></a> </span><span class=cF6>"LGA1356-3\0"</span><span class=cF0>
|
|
<a name="l296"></a> </span><span class=cF6>"LGA1150\0"</span><span class=cF0>
|
|
<a name="l297"></a> </span><span class=cF6>"BGA1168\0"</span><span class=cF0>
|
|
<a name="l298"></a> </span><span class=cF6>"BGA1234\BGA1364\0"</span><span class=cF0>
|
|
<a name="l299"></a> </span><span class=cF6>"AM4\0"</span><span class=cF0>
|
|
<a name="l300"></a> </span><span class=cF6>"LGA1151\0"</span><span class=cF0>
|
|
<a name="l301"></a> </span><span class=cF6>"BGA1440\0"</span><span class=cF0>
|
|
<a name="l302"></a> </span><span class=cF6>"BGA1515\0"</span><span class=cF0>
|
|
<a name="l303"></a> </span><span class=cF6>"LGA3647-1\0"</span><span class=cF0>
|
|
<a name="l304"></a> </span><span class=cF6>"SP3\0"</span><span class=cF0>
|
|
<a name="l305"></a> </span><span class=cF6>"SP3r2\0"</span><span class=cF0>
|
|
<a name="l306"></a> </span><span class=cF6>"LGA2066\0"</span><span class=cF0>
|
|
<a name="l307"></a> </span><span class=cF6>"BGA1932\0"</span><span class=cF0>
|
|
<a name="l308"></a> </span><span class=cF6>"BGA1510\0"</span><span class=cF0>
|
|
<a name="l309"></a> </span><span class=cF6>"BGA1528"</span><span class=cF0>);
|
|
<a name="l310"></a>
|
|
<a name="l311"></a> </span><span class=cF2>//Section 7.5.9 line 1110 (processor characteristics)</span><span class=cF0>
|
|
<a name="l312"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>"ST_SMBIOS_PROCESSOR_FLAGS"</span><span class=cF0>,
|
|
<a name="l313"></a>
|
|
<a name="l314"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l315"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l316"></a> </span><span class=cF6>"64 Bit\0"</span><span class=cF0>
|
|
<a name="l317"></a> </span><span class=cF6>"Multicore\0"</span><span class=cF0>
|
|
<a name="l318"></a> </span><span class=cF6>"HyperThreading\0"</span><span class=cF0>
|
|
<a name="l319"></a> </span><span class=cF6>"NX/XD Protection\0"</span><span class=cF0>
|
|
<a name="l320"></a> </span><span class=cF6>"Enhanced Virtualization\0"</span><span class=cF0>
|
|
<a name="l321"></a> </span><span class=cF6>"Power/Performance Control\0"</span><span class=cF0>
|
|
<a name="l322"></a> </span><span class=cF6>"128 Bit Capable"</span><span class=cF0>);
|
|
<a name="l323"></a>
|
|
<a name="l324"></a> </span><span class=cF2>//Section 7.8.2 line 1178 (cache information SRAM type field)</span><span class=cF0>
|
|
<a name="l325"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>"ST_SMBIOS_CACHE_SRAM_TYPES"</span><span class=cF0>,
|
|
<a name="l326"></a>
|
|
<a name="l327"></a> </span><span class=cF6>"Other\0"</span><span class=cF0>
|
|
<a name="l328"></a> </span><span class=cF6>"Unknown\0"</span><span class=cF0>
|
|
<a name="l329"></a> </span><span class=cF6>"Non-Burst\0"</span><span class=cF0>
|
|
<a name="l330"></a> </span><span class=cF6>"Burst\0"</span><span class=cF0>
|
|
<a name="l331"></a> </span><span class=cF6>"Pipeline Burst\0"</span><span class=cF0>
|
|
<a name="l332"></a> </span><span class=cF6>"Synchronous\0"</span><span class=cF0>
|
|
<a name="l333"></a> </span><span class=cF6>"Asynchronous"</span><span class=cF0>);
|
|
<a name="l334"></a>
|
|
<a name="l335"></a> </span><span class=cF2>//Section 7.8.6 line 1193 (cache information associativity field)</span><span class=cF0>
|
|
<a name="l336"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>"ST_SMBIOS_CACHE_ASSOCIATIVITY"</span><span class=cF0>,
|
|
<a name="l337"></a>
|
|
<a name="l338"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l339"></a> </span><span class=cF6>"Other\0"</span><span class=cF0>
|
|
<a name="l340"></a> </span><span class=cF6>"Unknown\0"</span><span class=cF0>
|
|
<a name="l341"></a> </span><span class=cF6>"Direct Mapped\0"</span><span class=cF0>
|
|
<a name="l342"></a> </span><span class=cF6>"2-way Set-Associative\0"</span><span class=cF0>
|
|
<a name="l343"></a> </span><span class=cF6>"4-way Set-Associative\0"</span><span class=cF0>
|
|
<a name="l344"></a> </span><span class=cF6>"Fully Associative\0"</span><span class=cF0>
|
|
<a name="l345"></a> </span><span class=cF6>"8-way Set-Associative\0"</span><span class=cF0>
|
|
<a name="l346"></a> </span><span class=cF6>"16-way Set-Associative\0"</span><span class=cF0>
|
|
<a name="l347"></a> </span><span class=cF6>"12-way Set-Associative\0"</span><span class=cF0>
|
|
<a name="l348"></a> </span><span class=cF6>"24-way Set-Associative\0"</span><span class=cF0>
|
|
<a name="l349"></a> </span><span class=cF6>"32-way Set-Associative\0"</span><span class=cF0>
|
|
<a name="l350"></a> </span><span class=cF6>"48-way Set-Associative\0"</span><span class=cF0>
|
|
<a name="l351"></a> </span><span class=cF6>"64-way Set-Associative\0"</span><span class=cF0>
|
|
<a name="l352"></a> </span><span class=cF6>"20-way Set-Associative"</span><span class=cF0>);
|
|
<a name="l353"></a>
|
|
<a name="l354"></a> </span><span class=cF2>//Section 7.9.2 line 1219 (connector type field)</span><span class=cF0>
|
|
<a name="l355"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>"ST_SMBIOS_CONNECTOR_TYPES"</span><span class=cF0>,
|
|
<a name="l356"></a>
|
|
<a name="l357"></a> </span><span class=cF6>"None\0"</span><span class=cF0>
|
|
<a name="l358"></a> </span><span class=cF6>"Centronics\0"</span><span class=cF0>
|
|
<a name="l359"></a> </span><span class=cF6>"Mini Centronics\0"</span><span class=cF0>
|
|
<a name="l360"></a> </span><span class=cF6>"Proprietary\0"</span><span class=cF0>
|
|
<a name="l361"></a> </span><span class=cF6>"DB-25 Pin Male\0"</span><span class=cF0>
|
|
<a name="l362"></a> </span><span class=cF6>"DB-25 Pin Female\0"</span><span class=cF0>
|
|
<a name="l363"></a> </span><span class=cF6>"DB-15 Pin Male\0"</span><span class=cF0>
|
|
<a name="l364"></a> </span><span class=cF6>"DB-15 Pin Female\0"</span><span class=cF0>
|
|
<a name="l365"></a> </span><span class=cF6>"DB-9 Pin Male\0"</span><span class=cF0>
|
|
<a name="l366"></a> </span><span class=cF6>"DB-9 Pin Female\0"</span><span class=cF0>
|
|
<a name="l367"></a> </span><span class=cF6>"RJ-11\0"</span><span class=cF0>
|
|
<a name="l368"></a> </span><span class=cF6>"RJ-45\0"</span><span class=cF0>
|
|
<a name="l369"></a> </span><span class=cF6>"50-Pin MiniSCSI\0"</span><span class=cF0>
|
|
<a name="l370"></a> </span><span class=cF6>"Mini-DIN\0"</span><span class=cF0>
|
|
<a name="l371"></a> </span><span class=cF6>"Micro-DIN\0"</span><span class=cF0>
|
|
<a name="l372"></a> </span><span class=cF6>"PS/2\0"</span><span class=cF0>
|
|
<a name="l373"></a> </span><span class=cF6>"Infrared\0"</span><span class=cF0>
|
|
<a name="l374"></a> </span><span class=cF6>"HP-HIL\0"</span><span class=cF0>
|
|
<a name="l375"></a> </span><span class=cF6>"Access Bus (USB)\0"</span><span class=cF0>
|
|
<a name="l376"></a> </span><span class=cF6>"SSA SCSI\0"</span><span class=cF0>
|
|
<a name="l377"></a> </span><span class=cF6>"Circular DIN-8 Male\0"</span><span class=cF0>
|
|
<a name="l378"></a> </span><span class=cF6>"Circular DIN-8 Female\0"</span><span class=cF0>
|
|
<a name="l379"></a> </span><span class=cF6>"Onboard IDE\0"</span><span class=cF0>
|
|
<a name="l380"></a> </span><span class=cF6>"Onboard Floppy\0"</span><span class=cF0>
|
|
<a name="l381"></a> </span><span class=cF6>"9-Pin Dual Inline (Pin 10 Cut)\0"</span><span class=cF0>
|
|
<a name="l382"></a> </span><span class=cF6>"25-Pin Dual Inline (Pin 26 Cut)\0"</span><span class=cF0>
|
|
<a name="l383"></a> </span><span class=cF6>"50-Pin Dual Inline\0"</span><span class=cF0>
|
|
<a name="l384"></a> </span><span class=cF6>"68-Pin Dual Inline\0"</span><span class=cF0>
|
|
<a name="l385"></a> </span><span class=cF6>"Onboard CD-ROM Sound Input\0"</span><span class=cF0>
|
|
<a name="l386"></a> </span><span class=cF6>"Mini-Centronics Type-14\0"</span><span class=cF0>
|
|
<a name="l387"></a> </span><span class=cF6>"Mini-Centronics Type-26\0"</span><span class=cF0>
|
|
<a name="l388"></a> </span><span class=cF6>"Mini-Jack (Headphones)\0"</span><span class=cF0>
|
|
<a name="l389"></a> </span><span class=cF6>"BNC\0"</span><span class=cF0>
|
|
<a name="l390"></a> </span><span class=cF6>"1394\0"</span><span class=cF0>
|
|
<a name="l391"></a> </span><span class=cF6>"SAS\SATA Plug\0"</span><span class=cF0>
|
|
<a name="l392"></a> </span><span class=cF6>"USB Type-C"</span><span class=cF0>);
|
|
<a name="l393"></a>
|
|
<a name="l394"></a> </span><span class=cF2>//Section 7.9.3 line 1222 (port type field)</span><span class=cF0>
|
|
<a name="l395"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>"ST_SMBIOS_PORT_TYPES"</span><span class=cF0>,
|
|
<a name="l396"></a>
|
|
<a name="l397"></a> </span><span class=cF6>"None\0"</span><span class=cF0>
|
|
<a name="l398"></a> </span><span class=cF6>"Parallel Port XT/AT Compatible\0"</span><span class=cF0>
|
|
<a name="l399"></a> </span><span class=cF6>"Parallel Port PS/2\0"</span><span class=cF0>
|
|
<a name="l400"></a> </span><span class=cF6>"Parallel Port ECP\0"</span><span class=cF0>
|
|
<a name="l401"></a> </span><span class=cF6>"Parallel Port EPP\0"</span><span class=cF0>
|
|
<a name="l402"></a> </span><span class=cF6>"Parallel Port ECP/EPP\0"</span><span class=cF0>
|
|
<a name="l403"></a> </span><span class=cF6>"Serial Port XT/AT Compatible\0"</span><span class=cF0>
|
|
<a name="l404"></a> </span><span class=cF6>"Serial Port 16450 Compatible\0"</span><span class=cF0>
|
|
<a name="l405"></a> </span><span class=cF6>"Serial Port 16550 Compatible\0"</span><span class=cF0>
|
|
<a name="l406"></a> </span><span class=cF6>"Serial Port 16550A Compatible\0"</span><span class=cF0>
|
|
<a name="l407"></a> </span><span class=cF6>"SCSI Port\0"</span><span class=cF0>
|
|
<a name="l408"></a> </span><span class=cF6>"MIDI Port\0"</span><span class=cF0>
|
|
<a name="l409"></a> </span><span class=cF6>"Joystick Port\0"</span><span class=cF0>
|
|
<a name="l410"></a> </span><span class=cF6>"Keyboard Port\0"</span><span class=cF0>
|
|
<a name="l411"></a> </span><span class=cF6>"Mouse Port\0"</span><span class=cF0>
|
|
<a name="l412"></a> </span><span class=cF6>"SSA SCSI\0"</span><span class=cF0>
|
|
<a name="l413"></a> </span><span class=cF6>"USB\0"</span><span class=cF0>
|
|
<a name="l414"></a> </span><span class=cF6>"FireWire (IEEE 1394)\0"</span><span class=cF0>
|
|
<a name="l415"></a> </span><span class=cF6>"PCMCIA Type I\0"</span><span class=cF0>
|
|
<a name="l416"></a> </span><span class=cF6>"PCMCIA Type II\0"</span><span class=cF0>
|
|
<a name="l417"></a> </span><span class=cF6>"PCMCIA Type III\0"</span><span class=cF0>
|
|
<a name="l418"></a> </span><span class=cF6>"Cardbus\0"</span><span class=cF0>
|
|
<a name="l419"></a> </span><span class=cF6>"Access Bus Port\0"</span><span class=cF0>
|
|
<a name="l420"></a> </span><span class=cF6>"SCSI II\0"</span><span class=cF0>
|
|
<a name="l421"></a> </span><span class=cF6>"SCSI Wide\0"</span><span class=cF0>
|
|
<a name="l422"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l423"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l424"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l425"></a> </span><span class=cF6>"Video Port\0"</span><span class=cF0>
|
|
<a name="l426"></a> </span><span class=cF6>"Audio Port\0"</span><span class=cF0>
|
|
<a name="l427"></a> </span><span class=cF6>"Modem Port\0"</span><span class=cF0>
|
|
<a name="l428"></a> </span><span class=cF6>"Network Port\0"</span><span class=cF0>
|
|
<a name="l429"></a> </span><span class=cF6>"SATA\0"</span><span class=cF0>
|
|
<a name="l430"></a> </span><span class=cF6>"SAS\0"</span><span class=cF0>
|
|
<a name="l431"></a> </span><span class=cF6>"MFDP (Multi-Function Display Port\0"</span><span class=cF0>
|
|
<a name="l432"></a> </span><span class=cF6>"Thunderbolt\0"</span><span class=cF0>
|
|
<a name="l433"></a> </span><span class=cF6>"8251 Compatible\0"</span><span class=cF0>
|
|
<a name="l434"></a> </span><span class=cF6>"8251 FIFO Compatible"</span><span class=cF0>);
|
|
<a name="l435"></a>
|
|
<a name="l436"></a> </span><span class=cF2>//Section 7.10.1 line 1229 (slot type)</span><span class=cF0>
|
|
<a name="l437"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>"ST_SMBIOS_SLOT_TYPES1"</span><span class=cF0>,
|
|
<a name="l438"></a>
|
|
<a name="l439"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l440"></a> </span><span class=cF6>"Other\0"</span><span class=cF0>
|
|
<a name="l441"></a> </span><span class=cF6>"Unknown\0"</span><span class=cF0>
|
|
<a name="l442"></a> </span><span class=cF6>"ISA\0"</span><span class=cF0>
|
|
<a name="l443"></a> </span><span class=cF6>"MCA\0"</span><span class=cF0>
|
|
<a name="l444"></a> </span><span class=cF6>"EISA\0"</span><span class=cF0>
|
|
<a name="l445"></a> </span><span class=cF6>"PCI\0"</span><span class=cF0>
|
|
<a name="l446"></a> </span><span class=cF6>"PC Card (PCMCIA)\0"</span><span class=cF0>
|
|
<a name="l447"></a> </span><span class=cF6>"VESA Local Bus\0"</span><span class=cF0>
|
|
<a name="l448"></a> </span><span class=cF6>"Proprietary\0"</span><span class=cF0>
|
|
<a name="l449"></a> </span><span class=cF6>"Proprietary Card Slot\0"</span><span class=cF0>
|
|
<a name="l450"></a> </span><span class=cF6>"Proprietary Memory Card Slot\0"</span><span class=cF0>
|
|
<a name="l451"></a> </span><span class=cF6>"I/O Riser Card Slot\0"</span><span class=cF0>
|
|
<a name="l452"></a> </span><span class=cF6>"NuBus\0"</span><span class=cF0>
|
|
<a name="l453"></a> </span><span class=cF6>"PCI - 66 MHz Capable\0"</span><span class=cF0>
|
|
<a name="l454"></a> </span><span class=cF6>"AGP\0"</span><span class=cF0>
|
|
<a name="l455"></a> </span><span class=cF6>"AGP 2X\0"</span><span class=cF0>
|
|
<a name="l456"></a> </span><span class=cF6>"AGP 4X\0"</span><span class=cF0>
|
|
<a name="l457"></a> </span><span class=cF6>"PCI-X\0"</span><span class=cF0>
|
|
<a name="l458"></a> </span><span class=cF6>"AGP 8X\0"</span><span class=cF0>
|
|
<a name="l459"></a> </span><span class=cF6>"M.2 Socket 1-DP (Mechanical Key A)\0"</span><span class=cF0>
|
|
<a name="l460"></a> </span><span class=cF6>"M.2 Socket 1-SD (Mechanical Key E)\0"</span><span class=cF0>
|
|
<a name="l461"></a> </span><span class=cF6>"M.2 Socket 2 (Mechanical Key B)\0"</span><span class=cF0>
|
|
<a name="l462"></a> </span><span class=cF6>"M.2 Socket 3 (Mechanical Key M)\0"</span><span class=cF0>
|
|
<a name="l463"></a> </span><span class=cF6>"MXM Type I\0"</span><span class=cF0>
|
|
<a name="l464"></a> </span><span class=cF6>"MXM Type II\0"</span><span class=cF0>
|
|
<a name="l465"></a> </span><span class=cF6>"MXM Type III (Standard Connector)\0"</span><span class=cF0>
|
|
<a name="l466"></a> </span><span class=cF6>"MXM Type III (HE Connector)\0"</span><span class=cF0>
|
|
<a name="l467"></a> </span><span class=cF6>"MXM Type IV\0"</span><span class=cF0>
|
|
<a name="l468"></a> </span><span class=cF6>"MXM 3.0 Type A\0"</span><span class=cF0>
|
|
<a name="l469"></a> </span><span class=cF6>"MXM 3.0 Type B\0"</span><span class=cF0>
|
|
<a name="l470"></a> </span><span class=cF6>"PCI Express Gen 2 SFF-8639\0"</span><span class=cF0>
|
|
<a name="l471"></a> </span><span class=cF6>"PCI Express Gen 3 SFF-8639\0"</span><span class=cF0>
|
|
<a name="l472"></a> </span><span class=cF6>"PCI Express Mini 52-Pin with bottom-side keep-outs\0"</span><span class=cF0>
|
|
<a name="l473"></a> </span><span class=cF6>"PCI Express Mini 52-Pin without bottom-side keep-outs\0"</span><span class=cF0>
|
|
<a name="l474"></a> </span><span class=cF6>"PCI Express Mini 76-Pin\0"</span><span class=cF0>
|
|
<a name="l475"></a> </span><span class=cF6>"CXL Flexbus 1.0"</span><span class=cF0>);
|
|
<a name="l476"></a>
|
|
<a name="l477"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>"ST_SMBIOS_SLOT_TYPES2"</span><span class=cF0>,
|
|
<a name="l478"></a>
|
|
<a name="l479"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l480"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l481"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l482"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l483"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l484"></a> </span><span class=cF6>"PCI Express\0"</span><span class=cF0>
|
|
<a name="l485"></a> </span><span class=cF6>"PCI Express 1x\0"</span><span class=cF0>
|
|
<a name="l486"></a> </span><span class=cF6>"PCI Express 2x\0"</span><span class=cF0>
|
|
<a name="l487"></a> </span><span class=cF6>"PCI Express 4x\0"</span><span class=cF0>
|
|
<a name="l488"></a> </span><span class=cF6>"PCI Express 8x\0"</span><span class=cF0>
|
|
<a name="l489"></a> </span><span class=cF6>"PCI Express 16x\0"</span><span class=cF0>
|
|
<a name="l490"></a> </span><span class=cF6>"PCI Express Gen 2\0"</span><span class=cF0>
|
|
<a name="l491"></a> </span><span class=cF6>"PCI Express Gen 2 1x\0"</span><span class=cF0>
|
|
<a name="l492"></a> </span><span class=cF6>"PCI Express Gen 2 2x\0"</span><span class=cF0>
|
|
<a name="l493"></a> </span><span class=cF6>"PCI Express Gen 2 4x\0"</span><span class=cF0>
|
|
<a name="l494"></a> </span><span class=cF6>"PCI Express Gen 2 8x\0"</span><span class=cF0>
|
|
<a name="l495"></a> </span><span class=cF6>"PCI Express Gen 2 16x\0"</span><span class=cF0>
|
|
<a name="l496"></a> </span><span class=cF6>"PCI Express Gen 3\0"</span><span class=cF0>
|
|
<a name="l497"></a> </span><span class=cF6>"PCI Express Gen 3 1x\0"</span><span class=cF0>
|
|
<a name="l498"></a> </span><span class=cF6>"PCI Express Gen 3 2x\0"</span><span class=cF0>
|
|
<a name="l499"></a> </span><span class=cF6>"PCI Express Gen 3 4x\0"</span><span class=cF0>
|
|
<a name="l500"></a> </span><span class=cF6>"PCI Express Gen 3 8x\0"</span><span class=cF0>
|
|
<a name="l501"></a> </span><span class=cF6>"PCI Express Gen 3 16x\0"</span><span class=cF0>
|
|
<a name="l502"></a> </span><span class=cF6>"PCI Express Gen 4\0"</span><span class=cF0>
|
|
<a name="l503"></a> </span><span class=cF6>"PCI Express Gen 4 1x\0"</span><span class=cF0>
|
|
<a name="l504"></a> </span><span class=cF6>"PCI Express Gen 4 2x\0"</span><span class=cF0>
|
|
<a name="l505"></a> </span><span class=cF6>"PCI Express Gen 4 4x\0"</span><span class=cF0>
|
|
<a name="l506"></a> </span><span class=cF6>"PCI Express Gen 4 8x\0"</span><span class=cF0>
|
|
<a name="l507"></a> </span><span class=cF6>"PCI Express Gen 4 16x"</span><span class=cF0>);
|
|
<a name="l508"></a>
|
|
<a name="l509"></a> </span><span class=cF2>//Section 7.10.2 line 1244 (slot data bus width field)</span><span class=cF0>
|
|
<a name="l510"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>"ST_SMBIOS_SLOT_DATA_BUS_WIDTHS"</span><span class=cF0>,
|
|
<a name="l511"></a>
|
|
<a name="l512"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l513"></a> </span><span class=cF6>"Other\0"</span><span class=cF0>
|
|
<a name="l514"></a> </span><span class=cF6>"Unknown\0"</span><span class=cF0>
|
|
<a name="l515"></a> </span><span class=cF6>"8 Bit\0"</span><span class=cF0>
|
|
<a name="l516"></a> </span><span class=cF6>"16 Bit\0"</span><span class=cF0>
|
|
<a name="l517"></a> </span><span class=cF6>"32 Bit\0"</span><span class=cF0>
|
|
<a name="l518"></a> </span><span class=cF6>"64 Bit\0"</span><span class=cF0>
|
|
<a name="l519"></a> </span><span class=cF6>"128 Bit\0"</span><span class=cF0>
|
|
<a name="l520"></a> </span><span class=cF6>"1x\0"</span><span class=cF0>
|
|
<a name="l521"></a> </span><span class=cF6>"2x\0"</span><span class=cF0>
|
|
<a name="l522"></a> </span><span class=cF6>"4x\0"</span><span class=cF0>
|
|
<a name="l523"></a> </span><span class=cF6>"8x\0"</span><span class=cF0>
|
|
<a name="l524"></a> </span><span class=cF6>"12x\0"</span><span class=cF0>
|
|
<a name="l525"></a> </span><span class=cF6>"16x\0"</span><span class=cF0>
|
|
<a name="l526"></a> </span><span class=cF6>"32x"</span><span class=cF0>);
|
|
<a name="l527"></a>
|
|
<a name="l528"></a> </span><span class=cF2>//Section 7.10.6 line 1259 (slot characteristics 1 field)</span><span class=cF0>
|
|
<a name="l529"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>"ST_SMBIOS_SLOT_FLAGS1"</span><span class=cF0>,
|
|
<a name="l530"></a>
|
|
<a name="l531"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l532"></a> </span><span class=cF6>"5.0 V\0"</span><span class=cF0>
|
|
<a name="l533"></a> </span><span class=cF6>"3.3 V\0"</span><span class=cF0>
|
|
<a name="l534"></a> </span><span class=cF6>"Shared Slot Opening\0"</span><span class=cF0>
|
|
<a name="l535"></a> </span><span class=cF6>"PC Card 16\0"</span><span class=cF0>
|
|
<a name="l536"></a> </span><span class=cF6>"CardBus\0"</span><span class=cF0>
|
|
<a name="l537"></a> </span><span class=cF6>"Zoom Video\0"</span><span class=cF0>
|
|
<a name="l538"></a> </span><span class=cF6>"Modem Ring Resume"</span><span class=cF0>);
|
|
<a name="l539"></a>
|
|
<a name="l540"></a> </span><span class=cF2>//Section 7.10.7 line 1262 (slot characteristics 2 field)</span><span class=cF0>
|
|
<a name="l541"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>"ST_SMBIOS_SLOT_FLAGS2"</span><span class=cF0>,
|
|
<a name="l542"></a>
|
|
<a name="l543"></a> </span><span class=cF6>"PCI Power Management Event (PME#) Signal\0"</span><span class=cF0>
|
|
<a name="l544"></a> </span><span class=cF6>"HotPlug\0"</span><span class=cF0>
|
|
<a name="l545"></a> </span><span class=cF6>"SMBus\0"</span><span class=cF0>
|
|
<a name="l546"></a> </span><span class=cF6>"Bifurcation"</span><span class=cF0>);
|
|
<a name="l547"></a>
|
|
<a name="l548"></a> </span><span class=cF2>//Section 7.17.1 line 1523 (memory array location field)</span><span class=cF0>
|
|
<a name="l549"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>"ST_SMBIOS_PHYMEM_LOCATIONS"</span><span class=cF0>,
|
|
<a name="l550"></a>
|
|
<a name="l551"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l552"></a> </span><span class=cF6>"Other\0"</span><span class=cF0>
|
|
<a name="l553"></a> </span><span class=cF6>"Unknown\0"</span><span class=cF0>
|
|
<a name="l554"></a> </span><span class=cF6>"Motherboard\0"</span><span class=cF0>
|
|
<a name="l555"></a> </span><span class=cF6>"ISA Add-On Card\0"</span><span class=cF0>
|
|
<a name="l556"></a> </span><span class=cF6>"EISA Add-On Card\0"</span><span class=cF0>
|
|
<a name="l557"></a> </span><span class=cF6>"PCI Add-On Card\0"</span><span class=cF0>
|
|
<a name="l558"></a> </span><span class=cF6>"MCA Add-On Card\0"</span><span class=cF0>
|
|
<a name="l559"></a> </span><span class=cF6>"PCMCIA Add-On Card\0"</span><span class=cF0>
|
|
<a name="l560"></a> </span><span class=cF6>"Proprietary Add-On Card\0"</span><span class=cF0>
|
|
<a name="l561"></a> </span><span class=cF6>"NuBus\0"</span><span class=cF0>
|
|
<a name="l562"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l563"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l564"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l565"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l566"></a> </span><span class=cF6>" \0"</span><span class=cF0>);
|
|
<a name="l567"></a>
|
|
<a name="l568"></a> </span><span class=cF2>//Section 7.17.2 line 1527 (memory array use field)</span><span class=cF0>
|
|
<a name="l569"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>"ST_SMBIOS_PHYMEM_USES"</span><span class=cF0>,
|
|
<a name="l570"></a>
|
|
<a name="l571"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l572"></a> </span><span class=cF6>"Other\0"</span><span class=cF0>
|
|
<a name="l573"></a> </span><span class=cF6>"Unknown\0"</span><span class=cF0>
|
|
<a name="l574"></a> </span><span class=cF6>"System Memory\0"</span><span class=cF0>
|
|
<a name="l575"></a> </span><span class=cF6>"Video Memory\0"</span><span class=cF0>
|
|
<a name="l576"></a> </span><span class=cF6>"Flash Memory\0"</span><span class=cF0>
|
|
<a name="l577"></a> </span><span class=cF6>"Non-Volatile RAM\0"</span><span class=cF0>
|
|
<a name="l578"></a> </span><span class=cF6>"Cache Memory"</span><span class=cF0>);
|
|
<a name="l579"></a>
|
|
<a name="l580"></a> </span><span class=cF2>//Section 7.18.1 line 1542 (form factor field)</span><span class=cF0>
|
|
<a name="l581"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>"ST_SMBIOS_MEMDEV_FORM_FACTORS"</span><span class=cF0>,
|
|
<a name="l582"></a>
|
|
<a name="l583"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l584"></a> </span><span class=cF6>"Other\0"</span><span class=cF0>
|
|
<a name="l585"></a> </span><span class=cF6>"Unknown\0"</span><span class=cF0>
|
|
<a name="l586"></a> </span><span class=cF6>"SIMM\0"</span><span class=cF0>
|
|
<a name="l587"></a> </span><span class=cF6>"SIP\0"</span><span class=cF0>
|
|
<a name="l588"></a> </span><span class=cF6>"DIP\0"</span><span class=cF0>
|
|
<a name="l589"></a> </span><span class=cF6>"ZIP\0"</span><span class=cF0>
|
|
<a name="l590"></a> </span><span class=cF6>"Proprietary Card\0"</span><span class=cF0>
|
|
<a name="l591"></a> </span><span class=cF6>"DIMM\0"</span><span class=cF0>
|
|
<a name="l592"></a> </span><span class=cF6>"TSOP\0"</span><span class=cF0>
|
|
<a name="l593"></a> </span><span class=cF6>"Row of Chips\0"</span><span class=cF0>
|
|
<a name="l594"></a> </span><span class=cF6>"RIMM\0"</span><span class=cF0>
|
|
<a name="l595"></a> </span><span class=cF6>"SODIMM\0"</span><span class=cF0>
|
|
<a name="l596"></a> </span><span class=cF6>"SRIMM\0"</span><span class=cF0>
|
|
<a name="l597"></a> </span><span class=cF6>"FB-DIMM\0"</span><span class=cF0>
|
|
<a name="l598"></a> </span><span class=cF6>"Die"</span><span class=cF0>);
|
|
<a name="l599"></a>
|
|
<a name="l600"></a> </span><span class=cF2>//Section 7.18.2 line 1546 (type field)</span><span class=cF0>
|
|
<a name="l601"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>"ST_SMBIOS_MEMDEV_TYPES"</span><span class=cF0>,
|
|
<a name="l602"></a>
|
|
<a name="l603"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l604"></a> </span><span class=cF6>"Unknown\0"</span><span class=cF0>
|
|
<a name="l605"></a> </span><span class=cF6>"DRAM\0"</span><span class=cF0>
|
|
<a name="l606"></a> </span><span class=cF6>"EDRAM\0"</span><span class=cF0>
|
|
<a name="l607"></a> </span><span class=cF6>"VRAM\0"</span><span class=cF0>
|
|
<a name="l608"></a> </span><span class=cF6>"SRAM\0"</span><span class=cF0>
|
|
<a name="l609"></a> </span><span class=cF6>"RAM\0"</span><span class=cF0>
|
|
<a name="l610"></a> </span><span class=cF6>"ROM\0"</span><span class=cF0>
|
|
<a name="l611"></a> </span><span class=cF6>"FLASH\0"</span><span class=cF0>
|
|
<a name="l612"></a> </span><span class=cF6>"EEPROM\0"</span><span class=cF0>
|
|
<a name="l613"></a> </span><span class=cF6>"FEPROM\0"</span><span class=cF0>
|
|
<a name="l614"></a> </span><span class=cF6>"EPROM\0"</span><span class=cF0>
|
|
<a name="l615"></a> </span><span class=cF6>"CDRAM\0"</span><span class=cF0>
|
|
<a name="l616"></a> </span><span class=cF6>"3DRAM\0"</span><span class=cF0>
|
|
<a name="l617"></a> </span><span class=cF6>"SDRAM\0"</span><span class=cF0>
|
|
<a name="l618"></a> </span><span class=cF6>"SGRAM\0"</span><span class=cF0>
|
|
<a name="l619"></a> </span><span class=cF6>"RDRAM\0"</span><span class=cF0>
|
|
<a name="l620"></a> </span><span class=cF6>"DDR\0"</span><span class=cF0>
|
|
<a name="l621"></a> </span><span class=cF6>"DDR2\0"</span><span class=cF0>
|
|
<a name="l622"></a> </span><span class=cF6>"DDR2 FB-DIMM\0"</span><span class=cF0>
|
|
<a name="l623"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l624"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l625"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l626"></a> </span><span class=cF6>"DDR3\0"</span><span class=cF0>
|
|
<a name="l627"></a> </span><span class=cF6>"FBD2\0"</span><span class=cF0>
|
|
<a name="l628"></a> </span><span class=cF6>"DDR4\0"</span><span class=cF0>
|
|
<a name="l629"></a> </span><span class=cF6>"LPDDR\0"</span><span class=cF0>
|
|
<a name="l630"></a> </span><span class=cF6>"LPDDR2\0"</span><span class=cF0>
|
|
<a name="l631"></a> </span><span class=cF6>"LPDDR3\0"</span><span class=cF0>
|
|
<a name="l632"></a> </span><span class=cF6>"LPDDR4\0"</span><span class=cF0>
|
|
<a name="l633"></a> </span><span class=cF6>"Logical Non-Volatile Device\0"</span><span class=cF0>
|
|
<a name="l634"></a> </span><span class=cF6>"HBM (High Bandwidth Memory)\0"</span><span class=cF0>
|
|
<a name="l635"></a> </span><span class=cF6>"HBM2 (High Bandwidth Memory Gen 2)"</span><span class=cF0>);
|
|
<a name="l636"></a>
|
|
<a name="l637"></a> </span><span class=cF2>//Section 7.18.3 line 1550 (type detail field)</span><span class=cF0>
|
|
<a name="l638"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>"ST_SMBIOS_MEMDEV_TYPE_DETAILS"</span><span class=cF0>,
|
|
<a name="l639"></a>
|
|
<a name="l640"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l641"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l642"></a> </span><span class=cF6>" \0"</span><span class=cF0>
|
|
<a name="l643"></a> </span><span class=cF6>"Fast Paged\0"</span><span class=cF0>
|
|
<a name="l644"></a> </span><span class=cF6>"Static Column\0"</span><span class=cF0>
|
|
<a name="l645"></a> </span><span class=cF6>"Psuedo Static\0"</span><span class=cF0>
|
|
<a name="l646"></a> </span><span class=cF6>"RAMBUS\0"</span><span class=cF0>
|
|
<a name="l647"></a> </span><span class=cF6>"Synchronous\0"</span><span class=cF0>
|
|
<a name="l648"></a> </span><span class=cF6>"CMOS\0"</span><span class=cF0>
|
|
<a name="l649"></a> </span><span class=cF6>"EDO\0"</span><span class=cF0>
|
|
<a name="l650"></a> </span><span class=cF6>"Window DRAM\0"</span><span class=cF0>
|
|
<a name="l651"></a> </span><span class=cF6>"Cache DRAM\0"</span><span class=cF0>
|
|
<a name="l652"></a> </span><span class=cF6>"Non Volatile\0"</span><span class=cF0>
|
|
<a name="l653"></a> </span><span class=cF6>"Registered (Buffered)\0"</span><span class=cF0>
|
|
<a name="l654"></a> </span><span class=cF6>"Unregistered (Unbuffered)\0"</span><span class=cF0>
|
|
<a name="l655"></a> </span><span class=cF6>"LRDIMM"</span><span class=cF0>);
|
|
<a name="l656"></a>} </span><span class=cF5>SMBIOSInit</span><span class=cF0>;
|
|
<a name="l657"></a>
|
|
<a name="l658"></a></span><span class=cF1>Bool</span><span class=cF0> </span><span class=cF5>SMBIOSEntryScan</span><span class=cF0>(</span><span class=cF9>CSMBIOSEntryPoint</span><span class=cF0> **entry)
|
|
<a name="l659"></a>{</span><span class=cF2>//Search 0xF0000 - 0x100000 for SMBIOS Entry Point structure.</span><span class=cF0>
|
|
<a name="l660"></a> </span><span class=cF9>I64</span><span class=cF0> i;
|
|
<a name="l661"></a> </span><span class=cF1>U8</span><span class=cF0> </span><span class=cF1>noreg</span><span class=cF0> checksum = </span><span class=cFE>0</span><span class=cF0>, *mem = </span><span class=cFE>0xF0000</span><span class=cF0>;
|
|
<a name="l662"></a>
|
|
<a name="l663"></a> </span><span class=cF1>do</span><span class=cF0>
|
|
<a name="l664"></a> </span><span class=cF7>{</span><span class=cF0>
|
|
<a name="l665"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>MemCompare</span><span class=cF7>(</span><span class=cF0>mem, </span><span class=cF6>"_SM_"</span><span class=cF0>, </span><span class=cFE>4</span><span class=cF7>)</span><span class=cF0>)
|
|
<a name="l666"></a> {
|
|
<a name="l667"></a> *entry = mem;
|
|
<a name="l668"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>; i < </span><span class=cF7>(</span><span class=cF0>*entry</span><span class=cF7>)</span><span class=cF0>->length; i++)
|
|
<a name="l669"></a> checksum += mem[i];
|
|
<a name="l670"></a>
|
|
<a name="l671"></a> </span><span class=cF1>if</span><span class=cF0> (checksum == </span><span class=cFE>0</span><span class=cF0>) </span><span class=cF2>//valid checksums sum to zero</span><span class=cF0>
|
|
<a name="l672"></a> </span><span class=cF1>break</span><span class=cF0>;
|
|
<a name="l673"></a> }
|
|
<a name="l674"></a> </span><span class=cF7>}</span><span class=cF0>
|
|
<a name="l675"></a> </span><span class=cF1>while</span><span class=cF0> (</span><span class=cF7>(</span><span class=cF0>mem += </span><span class=cFE>16</span><span class=cF7>)</span><span class=cF0> < </span><span class=cFE>0x100000</span><span class=cF0>); </span><span class=cF2>//anchor sits on 16-byte boundary</span><span class=cF0>
|
|
<a name="l676"></a>
|
|
<a name="l677"></a> </span><span class=cF1>return</span><span class=cF0> mem != </span><span class=cFE>0x100000</span><span class=cF0>;
|
|
<a name="l678"></a>}
|
|
<a name="l679"></a>
|
|
<a name="l680"></a></span><span class=cF1>U8</span><span class=cF0> *</span><span class=cF5>SMBIOSStr</span><span class=cF0>(</span><span class=cF9>CSMBIOSHeader</span><span class=cF0> *header, </span><span class=cF9>I64</span><span class=cF0> str_num, </span><span class=cF1>U8</span><span class=cF0> *</span><span class=cF1>default</span><span class=cF0>=</span><span class=cF6>"None"</span><span class=cF0>)
|
|
<a name="l681"></a>{</span><span class=cF2>//Get string str_num from end of structure (string section).</span><span class=cF0>
|
|
<a name="l682"></a> </span><span class=cF9>I64</span><span class=cF0> i;
|
|
<a name="l683"></a> </span><span class=cF1>U8</span><span class=cF0>* ptr = header(</span><span class=cF1>U8</span><span class=cF0> *) + header->length;
|
|
<a name="l684"></a>
|
|
<a name="l685"></a> </span><span class=cF1>if</span><span class=cF0> (!str_num)
|
|
<a name="l686"></a> </span><span class=cF1>return</span><span class=cF0> </span><span class=cF1>default</span><span class=cF0>;
|
|
<a name="l687"></a>
|
|
<a name="l688"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>1</span><span class=cF0>; i < str_num; i++)
|
|
<a name="l689"></a> </span><span class=cF7>{</span><span class=cF0>
|
|
<a name="l690"></a> </span><span class=cF1>while</span><span class=cF0> (*ptr++);
|
|
<a name="l691"></a> </span><span class=cF1>if</span><span class=cF0> (!ptr[</span><span class=cFE>0</span><span class=cF0>] && !ptr[</span><span class=cFE>1</span><span class=cF0>]) </span><span class=cF2>//structure ends in double NULL</span><span class=cF0>
|
|
<a name="l692"></a> </span><span class=cF1>return</span><span class=cF0> </span><span class=cF1>default</span><span class=cF0>;
|
|
<a name="l693"></a> </span><span class=cF7>}</span><span class=cF0>
|
|
<a name="l694"></a>
|
|
<a name="l695"></a> </span><span class=cF1>return</span><span class=cF0> ptr;
|
|
<a name="l696"></a>}
|
|
<a name="l697"></a>
|
|
<a name="l698"></a></span><span class=cF9>CSMBIOSHeader</span><span class=cF0> *</span><span class=cF5>SMBIOSStructGet</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> type=</span><span class=cFE>0xFFFFF</span><span class=cF0>, </span><span class=cF9>I64</span><span class=cF0> handle=</span><span class=cFE>0xFFFFF</span><span class=cF0>, </span><span class=cF9>CSMBIOSHeader</span><span class=cF0> *head=</span><span class=cF3>NULL</span><span class=cF0>)
|
|
<a name="l699"></a>{</span><span class=cF2>//Search for struct with type or handle. Return NULL if not found.</span><span class=cF0>
|
|
<a name="l700"></a> </span><span class=cF9>I64</span><span class=cF0> i;
|
|
<a name="l701"></a> </span><span class=cF9>CSMBIOSEntryPoint</span><span class=cF0> *entry;
|
|
<a name="l702"></a>
|
|
<a name="l703"></a> </span><span class=cF1>if</span><span class=cF0> (!head)
|
|
<a name="l704"></a> </span><span class=cF7>{</span><span class=cF0>
|
|
<a name="l705"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>SMBIOSEntryScan</span><span class=cF7>(</span><span class=cF0>&entry</span><span class=cF7>)</span><span class=cF0>)
|
|
<a name="l706"></a> </span><span class=cF1>return</span><span class=cF0> </span><span class=cF3>NULL</span><span class=cF0>;
|
|
<a name="l707"></a> head = entry->table_address;
|
|
<a name="l708"></a> </span><span class=cF7>}</span><span class=cF0>
|
|
<a name="l709"></a> </span><span class=cF1>while</span><span class=cF0> (head->type != </span><span class=cFE>127</span><span class=cF0>)
|
|
<a name="l710"></a> </span><span class=cF7>{</span><span class=cF0>
|
|
<a name="l711"></a> </span><span class=cF1>if</span><span class=cF0> (head->handle == handle)
|
|
<a name="l712"></a> </span><span class=cF1>return</span><span class=cF0> head;
|
|
<a name="l713"></a> </span><span class=cF1>if</span><span class=cF0> (head->type == type)
|
|
<a name="l714"></a> </span><span class=cF1>return</span><span class=cF0> head;
|
|
<a name="l715"></a>
|
|
<a name="l716"></a> head = head(</span><span class=cF1>U8</span><span class=cF0> *) + head->length;
|
|
<a name="l717"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>1</span><span class=cF0>; head</span><span class=cF7>(</span><span class=cF1>U8</span><span class=cF0> *</span><span class=cF7>)</span><span class=cF0>[i - </span><span class=cFE>1</span><span class=cF0>] || head</span><span class=cF7>(</span><span class=cF1>U8</span><span class=cF0> *</span><span class=cF7>)</span><span class=cF0>[i]; i++);
|
|
<a name="l718"></a> head = head(</span><span class=cF1>U8</span><span class=cF0> *) + i + </span><span class=cFE>1</span><span class=cF0>;
|
|
<a name="l719"></a> </span><span class=cF7>}</span><span class=cF0>
|
|
<a name="l720"></a>
|
|
<a name="l721"></a> </span><span class=cF1>return</span><span class=cF0> </span><span class=cF3>NULL</span><span class=cF0>;
|
|
<a name="l722"></a>}
|
|
<a name="l723"></a>
|
|
<a name="l724"></a></span><span class=cF1>U8</span><span class=cF0> *</span><span class=cF5>SysRepFlagsMake</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *buf)
|
|
<a name="l725"></a>{
|
|
<a name="l726"></a> </span><span class=cF1>U8</span><span class=cF0> *str;
|
|
<a name="l727"></a> </span><span class=cF1>U8</span><span class=cF0> *tmp = </span><span class=cF5>StrReplace</span><span class=cF0>(</span><span class=cF5>StrReplace</span><span class=cF7>(</span><span class=cF5>StrReplace</span><span class=cF0>(</span><span class=cF5>StrReplace</span><span class=cF7>(</span><span class=cF0>buf,
|
|
<a name="l728"></a> </span><span class=cF6>"+ "</span><span class=cF0>, </span><span class=cF6>""</span><span class=cF7>)</span><span class=cF0>,
|
|
<a name="l729"></a> </span><span class=cF6>"- "</span><span class=cF0>, </span><span class=cF6>""</span><span class=cF0>,, </span><span class=cF3>TRUE</span><span class=cF0>),
|
|
<a name="l730"></a> </span><span class=cF6>"+"</span><span class=cF0>, </span><span class=cF6>"\n$BLUE$+$GREEN$"</span><span class=cF0>,, </span><span class=cF3>TRUE</span><span class=cF7>)</span><span class=cF0>,
|
|
<a name="l731"></a> </span><span class=cF6>"-"</span><span class=cF0>, </span><span class=cF6>"\n$BLUE$-$RED$"</span><span class=cF0>,, </span><span class=cF3>TRUE</span><span class=cF0>);
|
|
<a name="l732"></a>
|
|
<a name="l733"></a> str = </span><span class=cF5>MStrPrint</span><span class=cF0>(</span><span class=cF6>"$ID,17$%s$ID,-17$"</span><span class=cF0>, tmp);
|
|
<a name="l734"></a> </span><span class=cF5>Free</span><span class=cF0>(tmp);
|
|
<a name="l735"></a>
|
|
<a name="l736"></a> </span><span class=cF1>return</span><span class=cF0> str;
|
|
<a name="l737"></a>}
|
|
<a name="l738"></a>
|
|
<a name="l739"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>SysRep</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> type=</span><span class=cF3>SMBIOSt_ALL</span><span class=cF0>, </span><span class=cF9>I64</span><span class=cF0> handle=</span><span class=cFE>0</span><span class=cF0>, </span><span class=cF1>Bool</span><span class=cF0> show_all_flags=</span><span class=cF3>FALSE</span><span class=cF0>, </span><span class=cF9>I64</span><span class=cF0> memdev_handle=</span><span class=cFE>0xFFFF</span><span class=cF0>)
|
|
<a name="l740"></a>{</span><span class=cF2>//Display info of System Management BIOS (SMBIOS) structures. Returns structure count of displayed structures.</span><span class=cF0>
|
|
<a name="l741"></a> </span><span class=cF9>I64</span><span class=cF0> i = </span><span class=cFE>1</span><span class=cF0>, structure_count = </span><span class=cFE>0</span><span class=cF0>, cache_count = </span><span class=cFE>0</span><span class=cF0>;
|
|
<a name="l742"></a> </span><span class=cF9>CSMBIOSEntryPoint</span><span class=cF0> *entry;
|
|
<a name="l743"></a> </span><span class=cF9>CSMBIOSHeader</span><span class=cF0> *header;
|
|
<a name="l744"></a> </span><span class=cF1>U8</span><span class=cF0> buffer[</span><span class=cFE>2048</span><span class=cF0>], buffer2[</span><span class=cFE>512</span><span class=cF0>], *str;
|
|
<a name="l745"></a>
|
|
<a name="l746"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>SMBIOSEntryScan</span><span class=cF7>(</span><span class=cF0>&entry</span><span class=cF7>)</span><span class=cF0>)
|
|
<a name="l747"></a> </span><span class=cF7>{</span><span class=cF0>
|
|
<a name="l748"></a> </span><span class=cF6>"No SMBIOS data found.\n"</span><span class=cF0>;
|
|
<a name="l749"></a> </span><span class=cF1>return</span><span class=cF0> </span><span class=cFE>0</span><span class=cF0>;
|
|
<a name="l750"></a> </span><span class=cF7>}</span><span class=cF0>
|
|
<a name="l751"></a> header = entry->table_address;
|
|
<a name="l752"></a>
|
|
<a name="l753"></a> </span><span class=cF1>if</span><span class=cF0> (!handle && type == </span><span class=cFE>0xFF</span><span class=cF0>)
|
|
<a name="l754"></a> </span><span class=cF6>"SMBIOS version %d.%d (%d entries)\n"</span><span class=cF0>, entry->major_version, entry->minor_version, entry->structure_count;
|
|
<a name="l755"></a> </span><span class=cF1>while</span><span class=cF0> (header->type != </span><span class=cFE>127</span><span class=cF0>)
|
|
<a name="l756"></a> </span><span class=cF7>{</span><span class=cF0>
|
|
<a name="l757"></a> </span><span class=cF1>if</span><span class=cF0> (handle && header->handle != handle)
|
|
<a name="l758"></a> </span><span class=cF1>goto</span><span class=cF0> loop_end;
|
|
<a name="l759"></a> </span><span class=cF1>if</span><span class=cF0> (type != </span><span class=cFE>0xFF</span><span class=cF0> && header->type != type)
|
|
<a name="l760"></a> </span><span class=cF1>goto</span><span class=cF0> loop_end;
|
|
<a name="l761"></a> </span><span class=cF1>switch</span><span class=cF0> (header->type)
|
|
<a name="l762"></a> {
|
|
<a name="l763"></a> </span><span class=cF1>start</span><span class=cF0>:
|
|
<a name="l764"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>SMBIOSt_BIOS</span><span class=cF0>:
|
|
<a name="l765"></a> </span><span class=cF9>CSMBIOSBIOSInfo</span><span class=cF0> *bios_info = header;
|
|
<a name="l766"></a> </span><span class=cF9>I64</span><span class=cF0> start_addr = bios_info->start_address_segment << </span><span class=cFE>16</span><span class=cF0>;
|
|
<a name="l767"></a> </span><span class=cF6>"$TR-C,\"BIOS\"$\n"</span><span class=cF0>;
|
|
<a name="l768"></a> </span><span class=cF6>"$FD,CYAN$"</span><span class=cF0>;
|
|
<a name="l769"></a> </span><span class=cF6>"$ID,3$"</span><span class=cF0>
|
|
<a name="l770"></a> </span><span class=cF6>"Vendor\t\t\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, bios_info->vendor);
|
|
<a name="l771"></a> </span><span class=cF6>"Version\t\t\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, bios_info->version);
|
|
<a name="l772"></a> </span><span class=cF6>"Release Date\t\t:$BLACK$%s (mm/dd/yyyy)$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, bios_info->release_date);
|
|
<a name="l773"></a> </span><span class=cF6>"Release Version\t:$BLACK$%d.%d$FG$\n"</span><span class=cF0>, bios_info->major_release, bios_info->minor_release;
|
|
<a name="l774"></a> </span><span class=cF6>"Start Address\t:$BLACK$0x%X$FG$\n"</span><span class=cF0>, </span><span class=cF5>Seg2Linear</span><span class=cF0>(&start_addr);
|
|
<a name="l775"></a> </span><span class=cF6>"Image Size\t\t:$BLACK$%d bytes$FG$\n"</span><span class=cF0>, (</span><span class=cFE>0x10000</span><span class=cF0> - bios_info->start_address_segment) * </span><span class=cFE>16</span><span class=cF0>;
|
|
<a name="l776"></a> </span><span class=cF6>"ROM Size\t\t\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l777"></a> </span><span class=cF1>if</span><span class=cF0> (bios_info->rom_size == </span><span class=cFE>0xFF</span><span class=cF0>)
|
|
<a name="l778"></a> </span><span class=cF6>"%d %ziB$FG$\n"</span><span class=cF0>, bios_info->extended_rom_size & ~</span><span class=cFE>0xC000</span><span class=cF0>, </span><span class=cF5>Bt</span><span class=cF0>(&bios_info->extended_rom_size, </span><span class=cFE>14</span><span class=cF0>), </span><span class=cF6>"M\0G"</span><span class=cF0>;
|
|
<a name="l779"></a> </span><span class=cF1>else</span><span class=cF0>
|
|
<a name="l780"></a> </span><span class=cF6>"%d KiB$FG$\n"</span><span class=cF0>, (bios_info->rom_size + </span><span class=cFE>1</span><span class=cF0>) * </span><span class=cFE>64</span><span class=cF0>;
|
|
<a name="l781"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>Bt</span><span class=cF7>(</span><span class=cF0>&bios_info->flags, </span><span class=cFE>3</span><span class=cF7>)</span><span class=cF0>)
|
|
<a name="l782"></a> </span><span class=cF6>"Flags Not Supported$FG$\n"</span><span class=cF0>;
|
|
<a name="l783"></a> </span><span class=cF1>else</span><span class=cF0>
|
|
<a name="l784"></a> </span><span class=cF7>{</span><span class=cF0>
|
|
<a name="l785"></a> </span><span class=cF6>"$TR,\"Flags\"$"</span><span class=cF0>;
|
|
<a name="l786"></a> </span><span class=cF5>FlagsStrPrint</span><span class=cF0>(buffer, </span><span class=cF5>Define</span><span class=cF7>(</span><span class=cF6>"ST_SMBIOS_BIOS_FLAGS"</span><span class=cF7>)</span><span class=cF0>, bios_info->flags & ~</span><span class=cFE>0xF</span><span class=cF0>, show_all_flags, </span><span class=cFE>31</span><span class=cF0>);
|
|
<a name="l787"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(buffer, </span><span class=cF5>FlagsStrPrint</span><span class=cF7>(</span><span class=cF0>buffer2, </span><span class=cF5>Define</span><span class=cF0>(</span><span class=cF6>"ST_SMBIOS_BIOS_FLAGSEXT1"</span><span class=cF0>), bios_info->extended_flags[</span><span class=cFE>0</span><span class=cF0>], show_all_flags, </span><span class=cFE>8</span><span class=cF7>)</span><span class=cF0>);
|
|
<a name="l788"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(buffer, </span><span class=cF5>FlagsStrPrint</span><span class=cF7>(</span><span class=cF0>buffer2, </span><span class=cF5>Define</span><span class=cF0>(</span><span class=cF6>"ST_SMBIOS_BIOS_FLAGSEXT2"</span><span class=cF0>), bios_info->extended_flags[</span><span class=cFE>1</span><span class=cF0>], show_all_flags, </span><span class=cFE>5</span><span class=cF7>)</span><span class=cF0>);
|
|
<a name="l789"></a> str = </span><span class=cF5>SysRepFlagsMake</span><span class=cF0>(buffer);
|
|
<a name="l790"></a> </span><span class=cF6>"%s$FG$\n"</span><span class=cF0>, str;
|
|
<a name="l791"></a> </span><span class=cF5>Free</span><span class=cF0>(str);
|
|
<a name="l792"></a> </span><span class=cF7>}</span><span class=cF0>
|
|
<a name="l793"></a> </span><span class=cF6>"$ID,-3$"</span><span class=cF0>;
|
|
<a name="l794"></a> </span><span class=cF1>break</span><span class=cF0>;
|
|
<a name="l795"></a>
|
|
<a name="l796"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>SMBIOSt_SYSTEM</span><span class=cF0>:
|
|
<a name="l797"></a> </span><span class=cF9>CSMBIOSSystemInfo</span><span class=cF0> *sys_info = header;
|
|
<a name="l798"></a> </span><span class=cF6>"$TR-C,\"System\"$\n"</span><span class=cF0>;
|
|
<a name="l799"></a> </span><span class=cF6>"$FD,CYAN$"</span><span class=cF0>;
|
|
<a name="l800"></a> </span><span class=cF6>"$ID,3$Manufacturer\t\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, sys_info->manufacturer);
|
|
<a name="l801"></a> </span><span class=cF6>"Product Name\t\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, sys_info->product_name);
|
|
<a name="l802"></a> </span><span class=cF6>"Version\t\t\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, sys_info->version);
|
|
<a name="l803"></a> </span><span class=cF6>"Serial Number\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, sys_info->serial_number);
|
|
<a name="l804"></a> </span><span class=cF6>"UUID\t\t\t\t:$BLACK$%X-%X-%X-%X-%X$FG$\n"</span><span class=cF0>, </span><span class=cF5>EndianU32</span><span class=cF0>(sys_info->uuid</span><span class=cF7>(</span><span class=cF9>U32</span><span class=cF0> *</span><span class=cF7>)</span><span class=cF0>),
|
|
<a name="l805"></a> </span><span class=cF5>EndianU16</span><span class=cF0>(</span><span class=cF7>(</span><span class=cF0>sys_info->uuid</span><span class=cF7>)(</span><span class=cF9>U16</span><span class=cF0> *</span><span class=cF7>)</span><span class=cF0>[</span><span class=cFE>2</span><span class=cF0>]), </span><span class=cF5>EndianU16</span><span class=cF0>(</span><span class=cF7>(</span><span class=cF0>sys_info->uuid</span><span class=cF7>)(</span><span class=cF9>U16</span><span class=cF0> *</span><span class=cF7>)</span><span class=cF0>[</span><span class=cFE>3</span><span class=cF0>]), </span><span class=cF5>EndianU16</span><span class=cF0>(</span><span class=cF7>(</span><span class=cF0>sys_info->uuid</span><span class=cF7>)(</span><span class=cF9>U16</span><span class=cF0> *</span><span class=cF7>)</span><span class=cF0>[</span><span class=cFE>4</span><span class=cF0>]),
|
|
<a name="l806"></a> </span><span class=cF5>EndianU16</span><span class=cF0>(</span><span class=cF7>(</span><span class=cF0>sys_info->uuid</span><span class=cF7>)(</span><span class=cF9>U16</span><span class=cF0> *</span><span class=cF7>)</span><span class=cF0>[</span><span class=cFE>5</span><span class=cF0>]) << </span><span class=cFE>32</span><span class=cF0> | </span><span class=cF5>EndianU32</span><span class=cF0>(</span><span class=cF7>(</span><span class=cF0>sys_info->uuid</span><span class=cF7>)(</span><span class=cF9>U32</span><span class=cF0> *</span><span class=cF7>)</span><span class=cF0>[</span><span class=cFE>3</span><span class=cF0>]);
|
|
<a name="l807"></a> </span><span class=cF6>"Wakeup Type\t\t:$BLACK$%Z$FG$\n"</span><span class=cF0>, sys_info->wakeup_type, </span><span class=cF6>"ST_SMBIOS_WAKEUP_TYPES"</span><span class=cF0>;
|
|
<a name="l808"></a> </span><span class=cF6>"SKU Number\t\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, sys_info->sku_number);
|
|
<a name="l809"></a> </span><span class=cF6>"Family\t\t\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, sys_info->family);
|
|
<a name="l810"></a> </span><span class=cF6>"$ID,-3$"</span><span class=cF0>;
|
|
<a name="l811"></a> </span><span class=cF1>break</span><span class=cF0>;
|
|
<a name="l812"></a>
|
|
<a name="l813"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>SMBIOSt_ENCLOSURE</span><span class=cF0>:
|
|
<a name="l814"></a> </span><span class=cF9>CSMBIOSEnclosureInfo</span><span class=cF0> *info = header;
|
|
<a name="l815"></a> </span><span class=cF6>"$TR-C,\"Enclosure\"$\n"</span><span class=cF0>;
|
|
<a name="l816"></a> </span><span class=cF6>"$FD,CYAN$"</span><span class=cF0>;
|
|
<a name="l817"></a> </span><span class=cF6>"$ID,3$Manufacturer\t\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, info->manufacturer);
|
|
<a name="l818"></a> </span><span class=cF6>"Type\t\t\t\t:$BLACK$%Z%z$FG$\n"</span><span class=cF0>, info->type & </span><span class=cFE>0x7F</span><span class=cF0>, </span><span class=cF6>"ST_SMBIOS_ENCLOSURE_TYPES"</span><span class=cF0>,
|
|
<a name="l819"></a> </span><span class=cF5>Bt</span><span class=cF0>(&info->type, </span><span class=cFE>7</span><span class=cF0>), </span><span class=cF6>" \0, Lock Present"</span><span class=cF0>;
|
|
<a name="l820"></a> </span><span class=cF6>"Version\t\t\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, info->version);
|
|
<a name="l821"></a> </span><span class=cF6>"Bootup State\t\t:$BLACK$%Z$FG$\n"</span><span class=cF0>, info->bootup_state, </span><span class=cF6>"ST_SMBIOS_ENCLOSURE_STATES"</span><span class=cF0>;
|
|
<a name="l822"></a> </span><span class=cF6>"Thermal State\t:$BLACK$%Z$FG$\n"</span><span class=cF0>, info->thermal_state, </span><span class=cF6>"ST_SMBIOS_ENCLOSURE_STATES"</span><span class=cF0>;
|
|
<a name="l823"></a> </span><span class=cF6>"Power Supply\t\t:$BLACK$%Z$FG$\n"</span><span class=cF0>, info->power_supply_state, </span><span class=cF6>"ST_SMBIOS_ENCLOSURE_STATES"</span><span class=cF0>;
|
|
<a name="l824"></a> </span><span class=cF6>"Security Status\t:$BLACK$%Z$FG$\n"</span><span class=cF0>, info->security_status, </span><span class=cF6>"ST_SMBIOS_ENCLOSURE_SECURITY_STATUSES"</span><span class=cF0>;
|
|
<a name="l825"></a> </span><span class=cF6>"Height\t\t\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l826"></a> </span><span class=cF1>if</span><span class=cF0> (info->height)
|
|
<a name="l827"></a> </span><span class=cF6>"%0.2f\"$FG$\n"</span><span class=cF0>, info->height * </span><span class=cFE>1</span><span class=cF0>.</span><span class=cFE>75</span><span class=cF0>; </span><span class=cF2>//height is in 'U' units. 1 'U' is 1.75 inches or 4.445 cm.</span><span class=cF0>
|
|
<a name="l828"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF6>"Unknown$FG$\n"</span><span class=cF0>;
|
|
<a name="l829"></a> </span><span class=cF6>"Serial Number\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, info->serial_number);
|
|
<a name="l830"></a> </span><span class=cF6>"Asset Tag\t\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, info->asset_tag);
|
|
<a name="l831"></a> </span><span class=cF6>"Power Cord Count\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l832"></a> </span><span class=cF1>if</span><span class=cF0> (info->power_cord_count)
|
|
<a name="l833"></a> </span><span class=cF6>"%d$FG$\n"</span><span class=cF0>, info->power_cord_count;
|
|
<a name="l834"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF6>"Unknown$FG$\n"</span><span class=cF0>;
|
|
<a name="l835"></a></span><span class=cF2>//</span><span class=cF0> </span><span class=cF2>"Contained Elements:$BLACK$",r,'\t'; //TODO: maybe implement this?</span><span class=cF0>
|
|
<a name="l836"></a> </span><span class=cF6>"$ID,-3$"</span><span class=cF0>;
|
|
<a name="l837"></a> </span><span class=cF1>break</span><span class=cF0>;
|
|
<a name="l838"></a>
|
|
<a name="l839"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>SMBIOSt_PROCESSOR</span><span class=cF0>:
|
|
<a name="l840"></a> </span><span class=cF9>CSMBIOSProcessorInfo</span><span class=cF0> *p_info = header;
|
|
<a name="l841"></a> </span><span class=cF9>CRAXRBXRCXRDX</span><span class=cF0> regs;
|
|
<a name="l842"></a> </span><span class=cF5>CPUId</span><span class=cF0>(</span><span class=cFE>1</span><span class=cF0>, &regs);
|
|
<a name="l843"></a> </span><span class=cF6>"$TR-C,\"Processor\"$\n"</span><span class=cF0>;
|
|
<a name="l844"></a> </span><span class=cF6>"$FD,CYAN$"</span><span class=cF0>;
|
|
<a name="l845"></a> </span><span class=cF6>"$ID,3$Socket Name\t\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, p_info->name);
|
|
<a name="l846"></a> </span><span class=cF6>"Processor Type\t:$BLACK$%Z$FG$\n"</span><span class=cF0>, p_info->type, </span><span class=cF6>"ST_SMBIOS_PROCESSOR_TYPES"</span><span class=cF0>;
|
|
<a name="l847"></a> </span><span class=cF6>"Status\t\t\t:$BLACK$%z, %z$FG$\n"</span><span class=cF0>, p_info->status >> </span><span class=cFE>6</span><span class=cF0>, </span><span class=cF6>"Socket Unpopulated\0Socket Populated"</span><span class=cF0>,
|
|
<a name="l848"></a> p_info->status & </span><span class=cFE>7</span><span class=cF0>, </span><span class=cF6>"Unknown\0CPU Enabled\0CPU Disabled through BIOS Setup\0"</span><span class=cF0>
|
|
<a name="l849"></a> </span><span class=cF6>"CPU Disabled by BIOS (POST Error)\0CPU is Idle, Waiting to be Enabled\0 \0 \0Other"</span><span class=cF0>;
|
|
<a name="l850"></a> </span><span class=cF6>"Core Count\t\t:$BLACK$%d$FG$\n"</span><span class=cF0>, p_info->core_count;
|
|
<a name="l851"></a> </span><span class=cF6>"Cores Enabled\t:$BLACK$%d$FG$\n"</span><span class=cF0>, p_info->cores_enabled;
|
|
<a name="l852"></a> </span><span class=cF6>"Manufacturer\t\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, p_info->manufacturer);
|
|
<a name="l853"></a></span><span class=cF2>//</span><span class=cF0> </span><span class=cF2>"CPU Family\t\t\t:$BLACK$%z$FG$\n", p_info->family, "ST_SMBIOS_PROCESSOR_FAMILIES"; TODO: maybe implement this?</span><span class=cF0>
|
|
<a name="l854"></a> </span><span class=cF6>"Name\t\t\t\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, p_info->version);
|
|
<a name="l855"></a> </span><span class=cF6>"Family\t\t\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l856"></a> </span><span class=cF1>if</span><span class=cF0> (regs.rax >> </span><span class=cFE>8</span><span class=cF0> & </span><span class=cFE>0xF</span><span class=cF0> < </span><span class=cFE>0xF</span><span class=cF0>)
|
|
<a name="l857"></a> </span><span class=cF6>"%d$FG$\n"</span><span class=cF0>, regs.rax >> </span><span class=cFE>8</span><span class=cF0> & </span><span class=cFE>0xF</span><span class=cF0>;
|
|
<a name="l858"></a> </span><span class=cF1>else</span><span class=cF0>
|
|
<a name="l859"></a> </span><span class=cF6>"%d$FG$\n"</span><span class=cF0>, </span><span class=cFE>0xF</span><span class=cF0> + regs.rax >> </span><span class=cFE>20</span><span class=cF0> & </span><span class=cFE>0xFF</span><span class=cF0>;
|
|
<a name="l860"></a>
|
|
<a name="l861"></a> </span><span class=cF6>"Model\t\t\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l862"></a> </span><span class=cF1>if</span><span class=cF0> (regs.rax >> </span><span class=cFE>4</span><span class=cF0> & </span><span class=cFE>0xF</span><span class=cF0> < </span><span class=cFE>0xF</span><span class=cF0>)
|
|
<a name="l863"></a> </span><span class=cF6>"%d$FG$\n"</span><span class=cF0>, regs.rax >> </span><span class=cFE>4</span><span class=cF0> & </span><span class=cFE>0xF</span><span class=cF0>;
|
|
<a name="l864"></a> </span><span class=cF1>else</span><span class=cF0>
|
|
<a name="l865"></a> </span><span class=cF6>"%d$FG$\n"</span><span class=cF0>, (regs.rax >> </span><span class=cFE>4</span><span class=cF0> & </span><span class=cFE>0xF</span><span class=cF0>) << </span><span class=cFE>4</span><span class=cF0> | (regs.rax >> </span><span class=cFE>16</span><span class=cF0> & </span><span class=cFE>0xF</span><span class=cF0>);
|
|
<a name="l866"></a>
|
|
<a name="l867"></a> </span><span class=cF6>"Stepping\t\t\t:$BLACK$%d$FG$\n"</span><span class=cF0>, regs.rax & </span><span class=cFE>0xF</span><span class=cF0>;
|
|
<a name="l868"></a> </span><span class=cF6>"Current Speed\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l869"></a> </span><span class=cF1>if</span><span class=cF0> (p_info->current_speed)
|
|
<a name="l870"></a> </span><span class=cF6>"%0.1f GHz$FG$\n"</span><span class=cF0>, p_info->current_speed / </span><span class=cFE>1000</span><span class=cF0>.</span><span class=cFE>0</span><span class=cF0>;
|
|
<a name="l871"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF6>"Unknown$FG$\n"</span><span class=cF0>;
|
|
<a name="l872"></a>
|
|
<a name="l873"></a> </span><span class=cF6>"Max Speed\t\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l874"></a> </span><span class=cF1>if</span><span class=cF0> (p_info->max_speed)
|
|
<a name="l875"></a> </span><span class=cF6>"%0.1f GHz$FG$\n"</span><span class=cF0>, p_info->max_speed / </span><span class=cFE>1000</span><span class=cF0>.</span><span class=cFE>0</span><span class=cF0>;
|
|
<a name="l876"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF6>"Unknown$FG$\n"</span><span class=cF0>;
|
|
<a name="l877"></a> </span><span class=cF6>"Socket\t\t\t:$BLACK$%Z$FG$\n"</span><span class=cF0>, p_info->upgrade, </span><span class=cF6>"ST_SMBIOS_PROCESSOR_UPGRADES"</span><span class=cF0>;
|
|
<a name="l878"></a>
|
|
<a name="l879"></a> </span><span class=cF6>"Voltage\t\t\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l880"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>Bt</span><span class=cF7>(</span><span class=cF0>&p_info->voltage, </span><span class=cFE>7</span><span class=cF7>)</span><span class=cF0>)
|
|
<a name="l881"></a> </span><span class=cF6>"%0.1fV$FG$\n"</span><span class=cF0>, (p_info->voltage & </span><span class=cFE>0x7F</span><span class=cF0>) / </span><span class=cFE>10</span><span class=cF0>.</span><span class=cFE>0</span><span class=cF0>;
|
|
<a name="l882"></a> </span><span class=cF1>else</span><span class=cF0>
|
|
<a name="l883"></a> </span><span class=cF6>"%Z$FG$\n"</span><span class=cF0>, </span><span class=cF5>Bsf</span><span class=cF0>(p_info->voltage), </span><span class=cF6>"ST_SMBIOS_PROCESSOR_VOLTAGE_LEVELS"</span><span class=cF0>;
|
|
<a name="l884"></a>
|
|
<a name="l885"></a> </span><span class=cF6>"External Clock\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l886"></a> </span><span class=cF1>if</span><span class=cF0> (p_info->external_clock)
|
|
<a name="l887"></a> </span><span class=cF6>"%d MHz$FG$\n"</span><span class=cF0>, p_info->external_clock;
|
|
<a name="l888"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF6>"Unknown$FG$\n"</span><span class=cF0>;
|
|
<a name="l889"></a>
|
|
<a name="l890"></a> </span><span class=cF6>"Serial Number\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, p_info->serial_number);
|
|
<a name="l891"></a> </span><span class=cF6>"Asset Tag\t\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, p_info->asset_tag);
|
|
<a name="l892"></a> </span><span class=cF6>"Part Number\t\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, p_info->part_number);
|
|
<a name="l893"></a>
|
|
<a name="l894"></a> </span><span class=cF5>FlagsStrPrint</span><span class=cF0>(buffer, </span><span class=cF5>Define</span><span class=cF7>(</span><span class=cF6>"ST_SMBIOS_PROCESSOR_FLAGS"</span><span class=cF7>)</span><span class=cF0>, p_info->characteristics, show_all_flags, </span><span class=cFE>9</span><span class=cF0>);
|
|
<a name="l895"></a> str = </span><span class=cF5>SysRepFlagsMake</span><span class=cF0>(buffer);
|
|
<a name="l896"></a> </span><span class=cF6>"$TR,\"Processor Flags\"$%s$FG$\n"</span><span class=cF0>, str;
|
|
<a name="l897"></a> </span><span class=cF5>FlagsStrPrint</span><span class=cF0>(buffer, </span><span class=cF5>Define</span><span class=cF7>(</span><span class=cF6>"ST_CPUID_1_EDX_FLAGS"</span><span class=cF7>)</span><span class=cF0>, regs.rdx, show_all_flags, </span><span class=cFE>32</span><span class=cF0>);
|
|
<a name="l898"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(buffer, </span><span class=cF5>FlagsStrPrint</span><span class=cF7>(</span><span class=cF0>buffer2, </span><span class=cF5>Define</span><span class=cF0>(</span><span class=cF6>"ST_CPUID_1_ECX_FLAGS"</span><span class=cF0>), regs.rcx, show_all_flags, </span><span class=cFE>31</span><span class=cF7>)</span><span class=cF0>);
|
|
<a name="l899"></a> str = </span><span class=cF5>SysRepFlagsMake</span><span class=cF0>(buffer);
|
|
<a name="l900"></a> </span><span class=cF6>"$TR,\"CPUID 0x1 Flags\"$%s$FG$\n"</span><span class=cF0>, str;
|
|
<a name="l901"></a> </span><span class=cF5>Free</span><span class=cF0>(str);
|
|
<a name="l902"></a> </span><span class=cF1>if</span><span class=cF0> (p_info->l1_cache_handle && p_info->l1_cache_handle != </span><span class=cFE>0xFFFF</span><span class=cF0>)
|
|
<a name="l903"></a> </span><span class=cF7>{</span><span class=cF0>
|
|
<a name="l904"></a> </span><span class=cF6>"$TR,\"L1 Cache Info\"$\n"</span><span class=cF0>;
|
|
<a name="l905"></a> </span><span class=cF5>SysRep</span><span class=cF0>(,p_info->l1_cache_handle, show_all_flags);
|
|
<a name="l906"></a> </span><span class=cF7>}</span><span class=cF0>
|
|
<a name="l907"></a> </span><span class=cF1>if</span><span class=cF0> (p_info->l2_cache_handle && p_info->l2_cache_handle != </span><span class=cFE>0xFFFF</span><span class=cF0>)
|
|
<a name="l908"></a> </span><span class=cF7>{</span><span class=cF0>
|
|
<a name="l909"></a> </span><span class=cF6>"$TR,\"L2 Cache Info\"$\n"</span><span class=cF0>;
|
|
<a name="l910"></a> </span><span class=cF5>SysRep</span><span class=cF0>(,p_info->l2_cache_handle, show_all_flags);
|
|
<a name="l911"></a> </span><span class=cF7>}</span><span class=cF0>
|
|
<a name="l912"></a> </span><span class=cF1>if</span><span class=cF0> (p_info->l3_cache_handle && p_info->l3_cache_handle != </span><span class=cFE>0xFFFF</span><span class=cF0>)
|
|
<a name="l913"></a> </span><span class=cF7>{</span><span class=cF0>
|
|
<a name="l914"></a> </span><span class=cF6>"$TR,\"L3 Cache Info\"$\n"</span><span class=cF0>;
|
|
<a name="l915"></a> </span><span class=cF5>SysRep</span><span class=cF0>(,p_info->l3_cache_handle, show_all_flags);
|
|
<a name="l916"></a> </span><span class=cF7>}</span><span class=cF0>
|
|
<a name="l917"></a> </span><span class=cF6>"$ID,-3$"</span><span class=cF0>;
|
|
<a name="l918"></a> </span><span class=cF1>break</span><span class=cF0>;
|
|
<a name="l919"></a>
|
|
<a name="l920"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>SMBIOSt_CACHE</span><span class=cF0>:
|
|
<a name="l921"></a> </span><span class=cF1>if</span><span class=cF0> (!handle)
|
|
<a name="l922"></a> </span><span class=cF1>break</span><span class=cF0>;
|
|
<a name="l923"></a> </span><span class=cF1>if</span><span class=cF0> (cache_count++ > </span><span class=cFE>0</span><span class=cF0>)
|
|
<a name="l924"></a> </span><span class=cF1>break</span><span class=cF0>;
|
|
<a name="l925"></a> </span><span class=cF9>CSMBIOSCacheInfo</span><span class=cF0> *c_info = header;
|
|
<a name="l926"></a> </span><span class=cF6>"$FD,CYAN$"</span><span class=cF0>;
|
|
<a name="l927"></a> </span><span class=cF6>"$ID,3$"</span><span class=cF0>;
|
|
<a name="l928"></a> </span><span class=cF6>"Name\t\t\t\t\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, c_info->name);
|
|
<a name="l929"></a> </span><span class=cF6>"Status\t\t\t\t:$BLACK$%z$FG$\n"</span><span class=cF0>, </span><span class=cF5>Bt</span><span class=cF0>(&c_info->config, </span><span class=cFE>7</span><span class=cF0>), </span><span class=cF6>"Disabled\0Enabled"</span><span class=cF0>;
|
|
<a name="l930"></a> </span><span class=cF6>"Mode\t\t\t\t\t:$BLACK$%z$FG$\n"</span><span class=cF0>, c_info->config >> </span><span class=cFE>8</span><span class=cF0> & </span><span class=cFE>3</span><span class=cF0>, </span><span class=cF6>"Write-Through\0Write-Back\0Varies with Memory Address\0Unknown"</span><span class=cF0>;
|
|
<a name="l931"></a> </span><span class=cF6>"Type\t\t\t\t\t:$BLACK$%z$FG$\n"</span><span class=cF0>, c_info->cache_type, </span><span class=cF6>" \0Other\0Unknown\0Instruction\0Data\0Unified"</span><span class=cF0>;
|
|
<a name="l932"></a> </span><span class=cF6>"Location\t\t\t\t:$BLACK$%z$FG$\n"</span><span class=cF0>, c_info->config >> </span><span class=cFE>5</span><span class=cF0> & </span><span class=cFE>3</span><span class=cF0>, </span><span class=cF6>"CPU Internal\0External\0 \0Unknown"</span><span class=cF0>;
|
|
<a name="l933"></a> </span><span class=cF6>"Socketed\t\t\t\t:$BLACK$%z$FG$\n"</span><span class=cF0>, </span><span class=cF5>Bt</span><span class=cF0>(&c_info->config, </span><span class=cFE>3</span><span class=cF0>), </span><span class=cF6>"No\0Yes"</span><span class=cF0>;
|
|
<a name="l934"></a> </span><span class=cF6>"Max Cache Size\t\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l935"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>Bt</span><span class=cF7>(</span><span class=cF0>&c_info->max_size, </span><span class=cFE>15</span><span class=cF7>)</span><span class=cF0>) </span><span class=cF2>//if Bit 15 is 1 then granularity is 64K else 1K</span><span class=cF0>
|
|
<a name="l936"></a> </span><span class=cF6>"%d KB$FG$\n"</span><span class=cF0>, (c_info->max_size & </span><span class=cFE>0x7FFF</span><span class=cF0>) * </span><span class=cFE>64</span><span class=cF0>;
|
|
<a name="l937"></a> </span><span class=cF1>else</span><span class=cF0>
|
|
<a name="l938"></a> </span><span class=cF6>"%d KB$FG$\n"</span><span class=cF0>, c_info->max_size & </span><span class=cFE>0x7FFF</span><span class=cF0>;
|
|
<a name="l939"></a> </span><span class=cF6>"Installed Size\t\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l940"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>Bt</span><span class=cF7>(</span><span class=cF0>&c_info->installed_size, </span><span class=cFE>15</span><span class=cF7>)</span><span class=cF0>) </span><span class=cF2>//if Bit 15 is 1 then granularity is 64K else 1K</span><span class=cF0>
|
|
<a name="l941"></a> </span><span class=cF6>"%d KB$FG$\n"</span><span class=cF0>, (c_info->installed_size & </span><span class=cFE>0x7FFF</span><span class=cF0>) * </span><span class=cFE>64</span><span class=cF0>;
|
|
<a name="l942"></a> </span><span class=cF1>else</span><span class=cF0>
|
|
<a name="l943"></a> </span><span class=cF6>"%d KB$FG$\n"</span><span class=cF0>, c_info->installed_size & </span><span class=cFE>0x7FFF</span><span class=cF0>;
|
|
<a name="l944"></a> </span><span class=cF5>FlagsStrPrint</span><span class=cF0>(buffer, </span><span class=cF5>Define</span><span class=cF7>(</span><span class=cF6>"ST_SMBIOS_CACHE_SRAM_TYPES"</span><span class=cF7>)</span><span class=cF0>, c_info->supported_sram_type);
|
|
<a name="l945"></a> str = </span><span class=cF5>StrReplace</span><span class=cF0>(buffer, </span><span class=cF6>"+"</span><span class=cF0>, </span><span class=cF6>", "</span><span class=cF0>);
|
|
<a name="l946"></a> </span><span class=cF6>"Supported SRAM Types\t:$BLACK$%s$FG$\n"</span><span class=cF0>, str + </span><span class=cFE>2</span><span class=cF0>;
|
|
<a name="l947"></a> </span><span class=cF5>Free</span><span class=cF0>(str);
|
|
<a name="l948"></a> </span><span class=cF6>"Installed SRAM Type\t:$BLACK$%Z$FG$\n"</span><span class=cF0>, </span><span class=cF5>Bsf</span><span class=cF0>(c_info->installed_sram_type), </span><span class=cF6>"ST_SMBIOS_CACHE_SRAM_TYPES"</span><span class=cF0>;
|
|
<a name="l949"></a> </span><span class=cF6>"Cache Speed\t\t\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l950"></a> </span><span class=cF1>if</span><span class=cF0> (c_info->cache_speed)
|
|
<a name="l951"></a> </span><span class=cF6>"%d nS$FG$\n"</span><span class=cF0>, c_info->cache_speed;
|
|
<a name="l952"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF6>"Unknown$FG$\n"</span><span class=cF0>;
|
|
<a name="l953"></a> </span><span class=cF6>"ECC type\t\t\t\t:$BLACK$%z$FG$\n"</span><span class=cF0>, c_info->error_correction_type,
|
|
<a name="l954"></a> </span><span class=cF6>" \0Other\0Unknown\0None\0Parity\0Single-bit ECC\0Multi-bit ECC"</span><span class=cF0>;
|
|
<a name="l955"></a> </span><span class=cF6>"Associativity\t\t\t:$BLACK$%Z$FG$\n"</span><span class=cF0>, c_info->associativity, </span><span class=cF6>"ST_SMBIOS_CACHE_ASSOCIATIVITY"</span><span class=cF0>;
|
|
<a name="l956"></a> </span><span class=cF6>"$ID,-3$"</span><span class=cF0>;
|
|
<a name="l957"></a> </span><span class=cF1>break</span><span class=cF0>;
|
|
<a name="l958"></a>
|
|
<a name="l959"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>SMBIOSt_PHYMEM</span><span class=cF0>:
|
|
<a name="l960"></a> </span><span class=cF9>CSMBIOSMemArrayInfo</span><span class=cF0> *ma_info = header;
|
|
<a name="l961"></a> </span><span class=cF6>"$TR,\"Memory Array\"$\n"</span><span class=cF0>;
|
|
<a name="l962"></a> </span><span class=cF6>"$FD,CYAN$"</span><span class=cF0>;
|
|
<a name="l963"></a> </span><span class=cF6>"$ID,3$"</span><span class=cF0>;
|
|
<a name="l964"></a> </span><span class=cF6>"Location\t\t\t:$BLACK$%Z$FG$\n"</span><span class=cF0>, ma_info->location, </span><span class=cF6>"ST_SMBIOS_PHYMEM_LOCATIONS"</span><span class=cF0>;
|
|
<a name="l965"></a> </span><span class=cF6>"Use\t\t\t\t:$BLACK$%Z$FG$\n"</span><span class=cF0>, ma_info->use, </span><span class=cF6>"ST_SMBIOS_PHYMEM_USES"</span><span class=cF0>;
|
|
<a name="l966"></a> </span><span class=cF6>"Error Correction\t:$BLACK$%z$FG$\n"</span><span class=cF0>, ma_info->use, </span><span class=cF6>" \0Other\0Unknown\0None\0Parity\0Single-bit ECC\0Multi-bit ECC\0CRC"</span><span class=cF0>;
|
|
<a name="l967"></a> </span><span class=cF6>"Max Capacity\t\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l968"></a> </span><span class=cF1>if</span><span class=cF0> (ma_info->max_capacity == </span><span class=cFE>0x80000000</span><span class=cF0>)
|
|
<a name="l969"></a> </span><span class=cF6>"%d MB$FG$\n"</span><span class=cF0>, ma_info->extended_max_capacity / </span><span class=cFE>1024</span><span class=cF0>;
|
|
<a name="l970"></a> </span><span class=cF1>else</span><span class=cF0>
|
|
<a name="l971"></a> </span><span class=cF6>"%d MB$FG$\n"</span><span class=cF0>, ma_info->max_capacity / </span><span class=cFE>1024</span><span class=cF0>;
|
|
<a name="l972"></a> </span><span class=cF6>"Mem Device Count\t:$BLACK$%d$FG$\n"</span><span class=cF0>, ma_info->mem_device_count;
|
|
<a name="l973"></a> </span><span class=cF6>"$TR,\"Memory Devices\"$\n"</span><span class=cF0>;
|
|
<a name="l974"></a> </span><span class=cF6>"$ID,3$"</span><span class=cF0>;
|
|
<a name="l975"></a> </span><span class=cF5>SysRep</span><span class=cF0>(</span><span class=cF3>SMBIOSt_MEM_DEVICE</span><span class=cF0>, handle, show_all_flags, ma_info->header.handle);
|
|
<a name="l976"></a> </span><span class=cF6>"$ID,-3$"</span><span class=cF0>;
|
|
<a name="l977"></a> </span><span class=cF6>"$ID,-3$"</span><span class=cF0>;
|
|
<a name="l978"></a> </span><span class=cF1>break</span><span class=cF0>;
|
|
<a name="l979"></a>
|
|
<a name="l980"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>SMBIOSt_MEM_DEVICE</span><span class=cF0>:
|
|
<a name="l981"></a> </span><span class=cF9>CSMBIOSMemDeviceInfo</span><span class=cF0> *mem_info = header;
|
|
<a name="l982"></a> </span><span class=cF1>if</span><span class=cF0> (type != </span><span class=cF3>SMBIOSt_MEM_DEVICE</span><span class=cF0>)
|
|
<a name="l983"></a> </span><span class=cF1>break</span><span class=cF0>;
|
|
<a name="l984"></a> </span><span class=cF1>if</span><span class=cF0> (memdev_handle != </span><span class=cFE>0xFFFF</span><span class=cF0> && memdev_handle != mem_info->memory_array_handle)
|
|
<a name="l985"></a> </span><span class=cF1>break</span><span class=cF0>;
|
|
<a name="l986"></a> </span><span class=cF6>"$TR,\"Memory Device\"$\n"</span><span class=cF0>;
|
|
<a name="l987"></a> </span><span class=cF6>"$FD,CYAN$"</span><span class=cF0>;
|
|
<a name="l988"></a> </span><span class=cF6>"$ID,3$"</span><span class=cF0>;
|
|
<a name="l989"></a> </span><span class=cF6>"Device Location\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, mem_info->device_locator);
|
|
<a name="l990"></a> </span><span class=cF6>"Bank Location\t\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, mem_info->bank_locator);
|
|
<a name="l991"></a> </span><span class=cF6>"Manufacturer\t\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, mem_info->manufacturer);
|
|
<a name="l992"></a> </span><span class=cF6>"Size\t\t\t\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l993"></a> </span><span class=cF1>if</span><span class=cF0> (!mem_info->size)
|
|
<a name="l994"></a> </span><span class=cF6>"No Device Installed$FG$\n"</span><span class=cF0>;
|
|
<a name="l995"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (mem_info->size == </span><span class=cFE>0xFFFF</span><span class=cF0>)
|
|
<a name="l996"></a> </span><span class=cF6>"Unknown$FG$\n"</span><span class=cF0>;
|
|
<a name="l997"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (mem_info->size == </span><span class=cFE>0x7FFF</span><span class=cF0>)
|
|
<a name="l998"></a> </span><span class=cF6>"%d GB$FG$\n"</span><span class=cF0>, mem_info->extended_size;
|
|
<a name="l999"></a> </span><span class=cF1>else</span><span class=cF0>
|
|
<a name="l1000"></a> </span><span class=cF6>"%d %zB$FG$\n"</span><span class=cF0>, mem_info->size & </span><span class=cFE>0x7FFF</span><span class=cF0>, </span><span class=cF5>Bt</span><span class=cF0>(&mem_info->size, </span><span class=cFE>15</span><span class=cF0>), </span><span class=cF6>"M\0K"</span><span class=cF0>;
|
|
<a name="l1001"></a> </span><span class=cF1>if</span><span class=cF0> (entry->major_version >= </span><span class=cFE>2</span><span class=cF0> && entry->minor_version >= </span><span class=cFE>8</span><span class=cF0>)
|
|
<a name="l1002"></a> </span><span class=cF7>{</span><span class=cF0>
|
|
<a name="l1003"></a> </span><span class=cF6>"Min Voltage\t\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l1004"></a> </span><span class=cF1>if</span><span class=cF0> (mem_info->min_voltage)
|
|
<a name="l1005"></a> </span><span class=cF6>"%d mV$FG$\n"</span><span class=cF0>, mem_info->min_voltage;
|
|
<a name="l1006"></a> </span><span class=cF1>else</span><span class=cF0>
|
|
<a name="l1007"></a> </span><span class=cF6>"Unknown$FG$\n"</span><span class=cF0>;
|
|
<a name="l1008"></a> </span><span class=cF6>"Max Voltage\t\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l1009"></a> </span><span class=cF1>if</span><span class=cF0> (mem_info->max_voltage)
|
|
<a name="l1010"></a> </span><span class=cF6>"%d mV$FG$\n"</span><span class=cF0>, mem_info->max_voltage;
|
|
<a name="l1011"></a> </span><span class=cF1>else</span><span class=cF0>
|
|
<a name="l1012"></a> </span><span class=cF6>"Unknown$FG$\n"</span><span class=cF0>;
|
|
<a name="l1013"></a> </span><span class=cF6>"Configured Volt.\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l1014"></a> </span><span class=cF1>if</span><span class=cF0> (mem_info->configured_voltage)
|
|
<a name="l1015"></a> </span><span class=cF6>"%d mV$FG$\n"</span><span class=cF0>, mem_info->configured_voltage;
|
|
<a name="l1016"></a> </span><span class=cF1>else</span><span class=cF0>
|
|
<a name="l1017"></a> </span><span class=cF6>"Unknown$FG$\n"</span><span class=cF0>;
|
|
<a name="l1018"></a> </span><span class=cF7>}</span><span class=cF0>
|
|
<a name="l1019"></a> </span><span class=cF6>"Total Width\t\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l1020"></a> </span><span class=cF1>if</span><span class=cF0> (mem_info->total_width != </span><span class=cFE>0xFFFF</span><span class=cF0>)
|
|
<a name="l1021"></a> </span><span class=cF6>"%d bits$FG$\n"</span><span class=cF0>, mem_info->total_width;
|
|
<a name="l1022"></a> </span><span class=cF1>else</span><span class=cF0>
|
|
<a name="l1023"></a> </span><span class=cF6>"Unknown$FG$\n"</span><span class=cF0>;
|
|
<a name="l1024"></a> </span><span class=cF6>"Data Width\t\t\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l1025"></a> </span><span class=cF1>if</span><span class=cF0> (mem_info->data_width != </span><span class=cFE>0xFFFF</span><span class=cF0>)
|
|
<a name="l1026"></a> </span><span class=cF6>"%d bits$FG$\n"</span><span class=cF0>, mem_info->data_width;
|
|
<a name="l1027"></a> </span><span class=cF1>else</span><span class=cF0>
|
|
<a name="l1028"></a> </span><span class=cF6>"Unknown$FG$\n"</span><span class=cF0>;
|
|
<a name="l1029"></a> </span><span class=cF6>"Max Speed\t\t\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l1030"></a> </span><span class=cF1>if</span><span class=cF0> (mem_info->speed)
|
|
<a name="l1031"></a> </span><span class=cF6>"%d </span><span class=cF9><u>MT/s</u></span><span class=cF6>$FG$\n"</span><span class=cF0>, mem_info->speed;
|
|
<a name="l1032"></a> </span><span class=cF1>else</span><span class=cF0>
|
|
<a name="l1033"></a> </span><span class=cF6>"Unknown$FG$\n"</span><span class=cF0>;
|
|
<a name="l1034"></a> </span><span class=cF6>"Configured Speed\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l1035"></a> </span><span class=cF1>if</span><span class=cF0> (mem_info->configured_speed)
|
|
<a name="l1036"></a> </span><span class=cF6>"%d </span><span class=cF9><u>MT/s</u></span><span class=cF6>$FG$\n"</span><span class=cF0>, mem_info->configured_speed;
|
|
<a name="l1037"></a> </span><span class=cF1>else</span><span class=cF0>
|
|
<a name="l1038"></a> </span><span class=cF6>"Unknown$FG$\n"</span><span class=cF0>;
|
|
<a name="l1039"></a> </span><span class=cF6>"Serial Number\t\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, mem_info->serial_number);
|
|
<a name="l1040"></a> </span><span class=cF6>"Part Number\t\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, mem_info->part_number);
|
|
<a name="l1041"></a> </span><span class=cF6>"Asset Tag\t\t\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, mem_info->asset_tag);
|
|
<a name="l1042"></a> </span><span class=cF6>"Form Factor\t\t:$BLACK$%Z$FG$\n"</span><span class=cF0>, mem_info->form_factor, </span><span class=cF6>"ST_SMBIOS_MEMDEV_FORM_FACTORS"</span><span class=cF0>;
|
|
<a name="l1043"></a> </span><span class=cF6>"Type\t\t\t\t:$BLACK$%Z$FG$\n"</span><span class=cF0>, mem_info->type, </span><span class=cF6>"ST_SMBIOS_MEMDEV_TYPES"</span><span class=cF0>;
|
|
<a name="l1044"></a> </span><span class=cF5>FlagsStrPrint</span><span class=cF0>(buffer, </span><span class=cF5>Define</span><span class=cF7>(</span><span class=cF6>"ST_SMBIOS_MEMDEV_TYPE_DETAILS"</span><span class=cF7>)</span><span class=cF0>, mem_info->type_detail, show_all_flags, </span><span class=cFE>16</span><span class=cF0>);
|
|
<a name="l1045"></a> str = </span><span class=cF5>SysRepFlagsMake</span><span class=cF0>(buffer);
|
|
<a name="l1046"></a> </span><span class=cF6>"$TR,\"Type Flags\"$%s$FG$\n"</span><span class=cF0>, str;
|
|
<a name="l1047"></a> </span><span class=cF5>Free</span><span class=cF0>(str);
|
|
<a name="l1048"></a> </span><span class=cF6>"$ID,-3$"</span><span class=cF0>;
|
|
<a name="l1049"></a> </span><span class=cF1>break</span><span class=cF0>;
|
|
<a name="l1050"></a>
|
|
<a name="l1051"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>SMBIOSt_BASEBOARD</span><span class=cF0>:
|
|
<a name="l1052"></a> </span><span class=cF9>CSMBIOSBaseboardInfo</span><span class=cF0> *b_info = header;
|
|
<a name="l1053"></a> </span><span class=cF6>"$TR-C,\"Baseboard\"$\n"</span><span class=cF0>;
|
|
<a name="l1054"></a> </span><span class=cF6>"$FD,CYAN$"</span><span class=cF0>;
|
|
<a name="l1055"></a> </span><span class=cF6>"$ID,3$"</span><span class=cF0>;
|
|
<a name="l1056"></a> </span><span class=cF6>"Manufacturer\t\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, b_info->manufacturer);
|
|
<a name="l1057"></a> </span><span class=cF6>"Product\t\t\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, b_info->product);
|
|
<a name="l1058"></a> </span><span class=cF6>"Version\t\t\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, b_info->version);
|
|
<a name="l1059"></a> </span><span class=cF6>"Type\t\t\t\t:$BLACK$%Z$FG$\n"</span><span class=cF0>, b_info->board_type, </span><span class=cF6>"ST_SMBIOS_BASEBOARD_TYPES"</span><span class=cF0>;
|
|
<a name="l1060"></a> </span><span class=cF6>"Location\t\t\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, b_info->chassis_location, </span><span class=cF6>"Not Specified"</span><span class=cF0>);
|
|
<a name="l1061"></a> </span><span class=cF6>"Serial Number\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, b_info->serial_number);
|
|
<a name="l1062"></a> </span><span class=cF6>"Asset Tag\t\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, b_info->asset_tag);
|
|
<a name="l1063"></a> </span><span class=cF6>"$TR,\"Flags\"$"</span><span class=cF0>;
|
|
<a name="l1064"></a> </span><span class=cF5>FlagsStrPrint</span><span class=cF0>(buffer, </span><span class=cF5>Define</span><span class=cF7>(</span><span class=cF6>"ST_SMBIOS_BASEBOARD_FLAGS"</span><span class=cF7>)</span><span class=cF0>, b_info->feature_flags, show_all_flags, </span><span class=cFE>5</span><span class=cF0>);
|
|
<a name="l1065"></a> str = </span><span class=cF5>SysRepFlagsMake</span><span class=cF0>(buffer);
|
|
<a name="l1066"></a> </span><span class=cF6>"%s$FG$\n"</span><span class=cF0>, str;
|
|
<a name="l1067"></a> </span><span class=cF5>Free</span><span class=cF0>(str);
|
|
<a name="l1068"></a> </span><span class=cF6>"$ID,-3$"</span><span class=cF0>;
|
|
<a name="l1069"></a> </span><span class=cF1>break</span><span class=cF0>;
|
|
<a name="l1070"></a>
|
|
<a name="l1071"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>SMBIOSt_CONNECTOR</span><span class=cF0>:
|
|
<a name="l1072"></a> </span><span class=cF9>CSMBIOSConnectorInfo</span><span class=cF0> *con_info = header;
|
|
<a name="l1073"></a> </span><span class=cF6>"$TR,\"Port Connector\"$\n"</span><span class=cF0>;
|
|
<a name="l1074"></a> </span><span class=cF6>"$FD,CYAN$"</span><span class=cF0>;
|
|
<a name="l1075"></a> </span><span class=cF6>"$ID,3$"</span><span class=cF0>;
|
|
<a name="l1076"></a> </span><span class=cF6>"Port Type\t\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l1077"></a> </span><span class=cF1>if</span><span class=cF0> (con_info->port_type == </span><span class=cFE>0xFF</span><span class=cF0>)
|
|
<a name="l1078"></a> </span><span class=cF6>"Other$FG$\n"</span><span class=cF0>;
|
|
<a name="l1079"></a> </span><span class=cF1>else</span><span class=cF0>
|
|
<a name="l1080"></a> </span><span class=cF6>"%Z$FG$\n"</span><span class=cF0>, con_info->port_type, </span><span class=cF6>"ST_SMBIOS_PORT_TYPES"</span><span class=cF0>;
|
|
<a name="l1081"></a> </span><span class=cF6>"External Name\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, con_info->external_name);
|
|
<a name="l1082"></a> </span><span class=cF6>"Internal Name\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, con_info->internal_name);
|
|
<a name="l1083"></a> </span><span class=cF6>"External Type\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l1084"></a> </span><span class=cF1>if</span><span class=cF0> (con_info->external_type == </span><span class=cFE>0xFF</span><span class=cF0>)
|
|
<a name="l1085"></a> </span><span class=cF6>"Other$FG$\n"</span><span class=cF0>;
|
|
<a name="l1086"></a> </span><span class=cF1>else</span><span class=cF0>
|
|
<a name="l1087"></a> </span><span class=cF6>"%Z$FG$\n"</span><span class=cF0>, con_info->external_type, </span><span class=cF6>"ST_SMBIOS_CONNECTOR_TYPES"</span><span class=cF0>;
|
|
<a name="l1088"></a> </span><span class=cF6>"Internal Type\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l1089"></a> </span><span class=cF1>if</span><span class=cF0> (con_info->internal_type == </span><span class=cFE>0xFF</span><span class=cF0>)
|
|
<a name="l1090"></a> </span><span class=cF6>"Other$FG$\n"</span><span class=cF0>;
|
|
<a name="l1091"></a> </span><span class=cF1>else</span><span class=cF0>
|
|
<a name="l1092"></a> </span><span class=cF6>"%Z$FG$\n"</span><span class=cF0>, con_info->internal_type, </span><span class=cF6>"ST_SMBIOS_CONNECTOR_TYPES"</span><span class=cF0>;
|
|
<a name="l1093"></a> </span><span class=cF6>"$ID,-3$"</span><span class=cF0>;
|
|
<a name="l1094"></a> </span><span class=cF1>break</span><span class=cF0>;
|
|
<a name="l1095"></a>
|
|
<a name="l1096"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>SMBIOSt_BATTERY</span><span class=cF0>:
|
|
<a name="l1097"></a> </span><span class=cF9>CSMBIOSBatteryInfo</span><span class=cF0> *bat_info = header;
|
|
<a name="l1098"></a> </span><span class=cF6>"$TR,\"Battery\"$\n"</span><span class=cF0>;
|
|
<a name="l1099"></a> </span><span class=cF6>"$FD,CYAN$"</span><span class=cF0>;
|
|
<a name="l1100"></a> </span><span class=cF6>"$ID,3$"</span><span class=cF0>;
|
|
<a name="l1101"></a> </span><span class=cF6>"Name\t\t\t\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, bat_info->name);
|
|
<a name="l1102"></a> </span><span class=cF6>"Manufacturer\t\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, bat_info->manufacturer);
|
|
<a name="l1103"></a> </span><span class=cF6>"</span><span class=cF9><u>SBDS</u></span><span class=cF6> Version\t\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, bat_info->manufacturer);
|
|
<a name="l1104"></a> </span><span class=cF6>"Manufacture Date\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l1105"></a> </span><span class=cF1>if</span><span class=cF0> (bat_info->manufacture_date)
|
|
<a name="l1106"></a> </span><span class=cF6>"%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, bat_info->manufacture_date);
|
|
<a name="l1107"></a> </span><span class=cF1>else</span><span class=cF0>
|
|
<a name="l1108"></a> </span><span class=cF6>"%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, bat_info->sbds_manufacture_date);
|
|
<a name="l1109"></a> </span><span class=cF6>"Chemistry\t\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l1110"></a> </span><span class=cF1>if</span><span class=cF0> (bat_info->chemistry)
|
|
<a name="l1111"></a> </span><span class=cF6>"%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, bat_info->chemistry);
|
|
<a name="l1112"></a> </span><span class=cF1>else</span><span class=cF0>
|
|
<a name="l1113"></a> </span><span class=cF6>"%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, bat_info->sbds_chemistry);
|
|
<a name="l1114"></a> </span><span class=cF6>"Capacity\t\t\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l1115"></a> </span><span class=cF1>if</span><span class=cF0> (bat_info->capacity)
|
|
<a name="l1116"></a> </span><span class=cF6>"%d Milliwatt-Hours$FG$\n"</span><span class=cF0>, bat_info->capacity * bat_info->capacity_multiplier;
|
|
<a name="l1117"></a> </span><span class=cF1>else</span><span class=cF0>
|
|
<a name="l1118"></a> </span><span class=cF6>"Unknown$FG$\n"</span><span class=cF0>;
|
|
<a name="l1119"></a> </span><span class=cF6>"Voltage\t\t\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l1120"></a> </span><span class=cF1>if</span><span class=cF0> (bat_info->voltage)
|
|
<a name="l1121"></a> </span><span class=cF6>"%d Millivolts$FG$\n"</span><span class=cF0>, bat_info->voltage;
|
|
<a name="l1122"></a> </span><span class=cF1>else</span><span class=cF0>
|
|
<a name="l1123"></a> </span><span class=cF6>"Unknown$FG$\n"</span><span class=cF0>;
|
|
<a name="l1124"></a> </span><span class=cF6>"Max Data Error\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l1125"></a> </span><span class=cF1>if</span><span class=cF0> (bat_info->max_battery_data_error != </span><span class=cFE>0xFF</span><span class=cF0>)
|
|
<a name="l1126"></a> </span><span class=cF6>"%d$FG$\n"</span><span class=cF0>, bat_info->max_battery_data_error;
|
|
<a name="l1127"></a> </span><span class=cF1>else</span><span class=cF0>
|
|
<a name="l1128"></a> </span><span class=cF6>"Unknown$FG$\n"</span><span class=cF0>;
|
|
<a name="l1129"></a> </span><span class=cF6>"Serial Number\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l1130"></a> </span><span class=cF1>if</span><span class=cF0> (bat_info->serial_number)
|
|
<a name="l1131"></a> </span><span class=cF6>"%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, bat_info->serial_number);
|
|
<a name="l1132"></a> </span><span class=cF1>else</span><span class=cF0>
|
|
<a name="l1133"></a> </span><span class=cF6>"%d$FG$\n"</span><span class=cF0>, bat_info->sbds_serial_number;
|
|
<a name="l1134"></a> </span><span class=cF6>"$ID,-3$"</span><span class=cF0>;
|
|
<a name="l1135"></a> </span><span class=cF1>break</span><span class=cF0>;
|
|
<a name="l1136"></a>
|
|
<a name="l1137"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>SMBIOSt_OEM_STRINGS</span><span class=cF0>:
|
|
<a name="l1138"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>SMBIOSt_SYS_CONFIG_OPTIONS</span><span class=cF0>:
|
|
<a name="l1139"></a> </span><span class=cF1>if</span><span class=cF0> (header->type == </span><span class=cF3>SMBIOSt_OEM_STRINGS</span><span class=cF0>)
|
|
<a name="l1140"></a> </span><span class=cF6>"$TR,\"OEM Strings\"$\n"</span><span class=cF0>;
|
|
<a name="l1141"></a> </span><span class=cF1>else</span><span class=cF0>
|
|
<a name="l1142"></a> </span><span class=cF6>"$TR,\"Sys Config Strings\"$\n"</span><span class=cF0>;
|
|
<a name="l1143"></a> </span><span class=cF6>"$FD,CYAN$"</span><span class=cF0>;
|
|
<a name="l1144"></a> </span><span class=cF6>"$ID,3$"</span><span class=cF0>;
|
|
<a name="l1145"></a> str = *(header</span><span class=cF7>(</span><span class=cF1>U8</span><span class=cF0> *</span><span class=cF7>)</span><span class=cF0> + </span><span class=cF1>sizeof</span><span class=cF7>(</span><span class=cF9>CSMBIOSHeader</span><span class=cF7>)</span><span class=cF0>); </span><span class=cF2>//using str to hold the string count</span><span class=cF0>
|
|
<a name="l1146"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>1</span><span class=cF0>; i <= str; i++)
|
|
<a name="l1147"></a> </span><span class=cF6>"\t\t\t\t\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, i);
|
|
<a name="l1148"></a> </span><span class=cF6>"$ID,-3$"</span><span class=cF0>;
|
|
<a name="l1149"></a> </span><span class=cF1>break</span><span class=cF0>;
|
|
<a name="l1150"></a>
|
|
<a name="l1151"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>SMBIOSt_SLOT</span><span class=cF0>:
|
|
<a name="l1152"></a> </span><span class=cF9>CSMBIOSSlotInfo</span><span class=cF0> *slot_info = header;
|
|
<a name="l1153"></a> </span><span class=cF6>"$TR,\"Slot\"$\n"</span><span class=cF0>;
|
|
<a name="l1154"></a> </span><span class=cF6>"$FD,CYAN$"</span><span class=cF0>;
|
|
<a name="l1155"></a> </span><span class=cF6>"$ID,3$"</span><span class=cF0>;
|
|
<a name="l1156"></a> </span><span class=cF6>"Name\t\t\t\t:$BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cF5>SMBIOSStr</span><span class=cF0>(header, slot_info->name);
|
|
<a name="l1157"></a> </span><span class=cF6>"Type\t\t\t\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l1158"></a> </span><span class=cF1>if</span><span class=cF0> (slot_info->type >= </span><span class=cFE>0xA0</span><span class=cF0>)
|
|
<a name="l1159"></a> </span><span class=cF6>"%Z$FG$\n"</span><span class=cF0>, slot_info->type - </span><span class=cFE>0xA0</span><span class=cF0>, </span><span class=cF6>"ST_SMBIOS_SLOT_TYPES2"</span><span class=cF0>;
|
|
<a name="l1160"></a> </span><span class=cF1>else</span><span class=cF0>
|
|
<a name="l1161"></a> </span><span class=cF6>"%Z$FG$\n"</span><span class=cF0>, slot_info->type, </span><span class=cF6>"ST_SMBIOS_SLOT_TYPES1"</span><span class=cF0>;
|
|
<a name="l1162"></a> </span><span class=cF6>"Data Bus Width\t:$BLACK$%Z$FG$\n"</span><span class=cF0>, slot_info->data_bus_width, </span><span class=cF6>"ST_SMBIOS_SLOT_DATA_BUS_WIDTHS"</span><span class=cF0>;
|
|
<a name="l1163"></a> </span><span class=cF6>"Current Usage\t:$BLACK$%z$FG$\n"</span><span class=cF0>, slot_info->current_usage, </span><span class=cF6>" \0Other\0Unknown\0Available\0In Use\0Unavailable"</span><span class=cF0>;
|
|
<a name="l1164"></a> </span><span class=cF6>"Slot Length\t\t:$BLACK$%z$FG$\n"</span><span class=cF0>, slot_info->length, </span><span class=cF6>" \0Other\0Unknown\0Short\0Long\02.5\" Drive Form Factor\03.5\" Drive Form Factor"</span><span class=cF0>;
|
|
<a name="l1165"></a> </span><span class=cF6>"Segment Group\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l1166"></a> </span><span class=cF1>if</span><span class=cF0> (slot_info->segment_group_number != </span><span class=cFE>0xFF</span><span class=cF0>)
|
|
<a name="l1167"></a> </span><span class=cF6>"%d$FG$\n"</span><span class=cF0>, slot_info->segment_group_number;
|
|
<a name="l1168"></a> </span><span class=cF1>else</span><span class=cF0>
|
|
<a name="l1169"></a> </span><span class=cF6>"None$FG$\n"</span><span class=cF0>;
|
|
<a name="l1170"></a> </span><span class=cF6>"Bus\t\t\t\t:$BLACK$"</span><span class=cF0>;
|
|
<a name="l1171"></a> </span><span class=cF1>if</span><span class=cF0> (slot_info->bus_number != </span><span class=cFE>0xFF</span><span class=cF0>)
|
|
<a name="l1172"></a> </span><span class=cF6>"%d$FG$\n"</span><span class=cF0>, slot_info->bus_number;
|
|
<a name="l1173"></a> </span><span class=cF1>else</span><span class=cF0>
|
|
<a name="l1174"></a> </span><span class=cF6>"None$FG$\n"</span><span class=cF0>;
|
|
<a name="l1175"></a>
|
|
<a name="l1176"></a> </span><span class=cF1>if</span><span class=cF0> (slot_info->device_function_number != </span><span class=cFE>0xFF</span><span class=cF0>)
|
|
<a name="l1177"></a> </span><span class=cF7>{</span><span class=cF0>
|
|
<a name="l1178"></a> </span><span class=cF6>"Device\t\t\t:$BLACK$%d$FG$\n"</span><span class=cF0>, slot_info->device_function_number >> </span><span class=cFE>3</span><span class=cF0>;
|
|
<a name="l1179"></a> </span><span class=cF6>"Function\t\t\t:$BLACK$%d$FG$\n"</span><span class=cF0>, slot_info->device_function_number & </span><span class=cFE>7</span><span class=cF0>;
|
|
<a name="l1180"></a> </span><span class=cF7>}</span><span class=cF0>
|
|
<a name="l1181"></a> </span><span class=cF1>else</span><span class=cF0>
|
|
<a name="l1182"></a> </span><span class=cF6>"Device\t\t\t:$BLACK$None$FG$\nFunction\t\t\t:$BLACK$None$FG$\n"</span><span class=cF0>;
|
|
<a name="l1183"></a> </span><span class=cF6>"$TR,\"Flags\"$"</span><span class=cF0>;
|
|
<a name="l1184"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>Bt</span><span class=cF7>(</span><span class=cF0>&slot_info->flags1, </span><span class=cFE>0</span><span class=cF7>)</span><span class=cF0>)
|
|
<a name="l1185"></a> </span><span class=cF7>{</span><span class=cF0>
|
|
<a name="l1186"></a> </span><span class=cF5>FlagsStrPrint</span><span class=cF0>(buffer, </span><span class=cF5>Define</span><span class=cF7>(</span><span class=cF6>"ST_SMBIOS_SLOT_FLAGS1"</span><span class=cF7>)</span><span class=cF0>, slot_info->flags1, show_all_flags, </span><span class=cFE>8</span><span class=cF0>);
|
|
<a name="l1187"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(buffer, </span><span class=cF5>FlagsStrPrint</span><span class=cF7>(</span><span class=cF0>buffer2, </span><span class=cF5>Define</span><span class=cF0>(</span><span class=cF6>"ST_SMBIOS_SLOT_FLAGS2"</span><span class=cF0>), slot_info->flags2, show_all_flags, </span><span class=cFE>4</span><span class=cF7>)</span><span class=cF0>);
|
|
<a name="l1188"></a> str = </span><span class=cF5>SysRepFlagsMake</span><span class=cF0>(buffer);
|
|
<a name="l1189"></a> </span><span class=cF6>"%s$FG$\n"</span><span class=cF0>, str;
|
|
<a name="l1190"></a> </span><span class=cF5>Free</span><span class=cF0>(str);
|
|
<a name="l1191"></a> </span><span class=cF7>}</span><span class=cF0>
|
|
<a name="l1192"></a> </span><span class=cF6>"$ID,-3$"</span><span class=cF0>;
|
|
<a name="l1193"></a> </span><span class=cF1>break</span><span class=cF0>;
|
|
<a name="l1194"></a>
|
|
<a name="l1195"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cFE>28</span><span class=cF0>:
|
|
<a name="l1196"></a> </span><span class=cF6>"$TR,\"Temperature Probe\"$\n"</span><span class=cF0>;
|
|
<a name="l1197"></a> </span><span class=cF1>break</span><span class=cF0>;
|
|
<a name="l1198"></a>
|
|
<a name="l1199"></a> </span><span class=cF1>end</span><span class=cF0>:
|
|
<a name="l1200"></a> structure_count++;
|
|
<a name="l1201"></a> }
|
|
<a name="l1202"></a>loop_end:
|
|
<a name="l1203"></a> header = header(</span><span class=cF1>U8</span><span class=cF0> *) + header->length;
|
|
<a name="l1204"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>1</span><span class=cF0>; header</span><span class=cF7>(</span><span class=cF1>U8</span><span class=cF0> *</span><span class=cF7>)</span><span class=cF0>[i - </span><span class=cFE>1</span><span class=cF0>] || header</span><span class=cF7>(</span><span class=cF1>U8</span><span class=cF0> *</span><span class=cF7>)</span><span class=cF0>[i]; i++);
|
|
<a name="l1205"></a> header = header(</span><span class=cF1>U8</span><span class=cF0> *) + i + </span><span class=cFE>1</span><span class=cF0>;
|
|
<a name="l1206"></a> </span><span class=cF7>}</span><span class=cF0>
|
|
<a name="l1207"></a> </span><span class=cF1>if</span><span class=cF0> (!handle)
|
|
<a name="l1208"></a> </span><span class=cF6>"$FD,BLUE$"</span><span class=cF0>;
|
|
<a name="l1209"></a>
|
|
<a name="l1210"></a> </span><span class=cF1>return</span><span class=cF0> structure_count;
|
|
<a name="l1211"></a>}
|
|
<a name="l1212"></a>
|
|
<a name="l1213"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>BIOSRep</span><span class=cF0>()
|
|
<a name="l1214"></a>{</span><span class=cF2>//Wrapper around </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Utils/SysRep.CC.html#l739"><span class=cF4>SysRep</span></a><span class=cF2>() to only show BIOS info.</span><span class=cF0>
|
|
<a name="l1215"></a> </span><span class=cF5>SysRep</span><span class=cF0>(</span><span class=cF3>SMBIOSt_BIOS</span><span class=cF0>);
|
|
<a name="l1216"></a>}
|
|
</span></pre></body>
|
|
</html>
|