<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>libsmbios_c library: /builddir/build/BUILD/libsmbios-2.2.26/src/include/smbios/RbuLowLevel.h Source File</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.1 --> <div class="navigation" id="top"> <div class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> <div class="header"> <div class="headertitle"> <h1>/builddir/build/BUILD/libsmbios-2.2.26/src/include/smbios/RbuLowLevel.h</h1> </div> </div> <div class="contents"> <a href="RbuLowLevel_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-</span> <a name="l00002"></a>00002 <span class="comment"> * vim:expandtab:autoindent:tabstop=4:shiftwidth=4:filetype=c:cindent:textwidth=0:</span> <a name="l00003"></a>00003 <span class="comment"> *</span> <a name="l00004"></a>00004 <span class="comment"> * Copyright (C) 2005 Dell Inc.</span> <a name="l00005"></a>00005 <span class="comment"> * by Michael Brown <Michael_E_Brown@dell.com></span> <a name="l00006"></a>00006 <span class="comment"> * Licensed under the Open Software License version 2.1</span> <a name="l00007"></a>00007 <span class="comment"> *</span> <a name="l00008"></a>00008 <span class="comment"> * Alternatively, you can redistribute it and/or modify</span> <a name="l00009"></a>00009 <span class="comment"> * it under the terms of the GNU General Public License as published</span> <a name="l00010"></a>00010 <span class="comment"> * by the Free Software Foundation; either version 2 of the License,</span> <a name="l00011"></a>00011 <span class="comment"> * or (at your option) any later version.</span> <a name="l00012"></a>00012 <span class="comment"></span> <a name="l00013"></a>00013 <span class="comment"> * This program is distributed in the hope that it will be useful, but</span> <a name="l00014"></a>00014 <span class="comment"> * WITHOUT ANY WARRANTY; without even the implied warranty of</span> <a name="l00015"></a>00015 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</span> <a name="l00016"></a>00016 <span class="comment"> * See the GNU General Public License for more details.</span> <a name="l00017"></a>00017 <span class="comment"> */</span> <a name="l00018"></a>00018 <a name="l00019"></a>00019 <span class="preprocessor">#ifndef RBULOWLEVEL_H</span> <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define RBULOWLEVEL_H</span> <a name="l00021"></a>00021 <span class="preprocessor"></span> <a name="l00022"></a>00022 <span class="comment">// compat header should always be first header if including system headers</span> <a name="l00023"></a>00023 <span class="preprocessor">#include "<a class="code" href="compat_8h.html">smbios/compat.h</a>"</span> <a name="l00024"></a>00024 <a name="l00025"></a><a class="code" href="RbuLowLevel_8h.html#ad8d61e11931930d9065a5b0c866bd44b">00025</a> <span class="preprocessor"># define RBU_SMBIOS_STRUCT (0xDE)</span> <a name="l00026"></a><a class="code" href="RbuLowLevel_8h.html#a88f82738e844fa29b5c52f07833fe898">00026</a> <span class="preprocessor"></span><span class="preprocessor"># define RBU_ACTIVATE (0x005c)</span> <a name="l00027"></a><a class="code" href="RbuLowLevel_8h.html#ac212b51e0b96782d3f5aaaafdd28f18a">00027</a> <span class="preprocessor"></span><span class="preprocessor"># define RBU_CANCEL (0x005d)</span> <a name="l00028"></a>00028 <span class="preprocessor"></span> <a name="l00029"></a>00029 <span class="comment">// WARNING WARNING WARNING</span> <a name="l00030"></a>00030 <span class="comment">//</span> <a name="l00031"></a>00031 <span class="comment">// This file is not guaranteed to be API/ABI stable. Include it at your own risk.</span> <a name="l00032"></a>00032 <span class="comment">//</span> <a name="l00033"></a>00033 <span class="comment">// WARNING WARNING WARNING</span> <a name="l00034"></a>00034 <a name="l00035"></a>00035 <span class="keyword">namespace </span>rbu <a name="l00036"></a>00036 { <a name="l00037"></a>00037 <span class="preprocessor"># if defined(_MSC_VER)</span> <a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor"># pragma pack(push,1)</span> <a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor"># endif</span> <a name="l00040"></a>00040 <span class="preprocessor"></span> <a name="l00041"></a>00041 <span class="comment">/* RBU packets are 4 KB-aligned and consist of a header and data. The packet header contains the necessary information for BIOS to find the packets in memory, and assemble them in proper order. */</span> <a name="l00042"></a>00042 <a name="l00043"></a><a class="code" href="structrbu_1_1rbu__packet.html">00043</a> <span class="keyword">struct </span><a class="code" href="structrbu_1_1rbu__packet.html">rbu_packet</a> <a name="l00044"></a>00044 { <a name="l00045"></a><a class="code" href="structrbu_1_1rbu__packet.html#a01c7be38ecdd91111ea66db58700ebca">00045</a> <a class="code" href="types_8h.html#a10e94b422ef0c20dcdec20d31a1f5049">u32</a> <a class="code" href="structrbu_1_1rbu__packet.html#a01c7be38ecdd91111ea66db58700ebca">pktId</a>; <span class="comment">// must be '$RPK'</span> <a name="l00046"></a><a class="code" href="structrbu_1_1rbu__packet.html#ae1ecd45adbce3788bd8964d94afc525f">00046</a> <a class="code" href="types_8h.html#a9e6c91d77e24643b888dbd1a1a590054">u16</a> <a class="code" href="structrbu_1_1rbu__packet.html#ae1ecd45adbce3788bd8964d94afc525f">pktSize</a>; <span class="comment">// size of packet in KB</span> <a name="l00047"></a><a class="code" href="structrbu_1_1rbu__packet.html#aef4ae214dfe675c59c0724dcfa56e248">00047</a> <a class="code" href="types_8h.html#a9e6c91d77e24643b888dbd1a1a590054">u16</a> <a class="code" href="structrbu_1_1rbu__packet.html#aef4ae214dfe675c59c0724dcfa56e248">reserved1</a>; <span class="comment">//</span> <a name="l00048"></a><a class="code" href="structrbu_1_1rbu__packet.html#accc835c4a3727968e7f70c9cc500b5fe">00048</a> <a class="code" href="types_8h.html#a9e6c91d77e24643b888dbd1a1a590054">u16</a> <a class="code" href="structrbu_1_1rbu__packet.html#accc835c4a3727968e7f70c9cc500b5fe">hdrSize</a>; <span class="comment">// size of packet header in paragraphs (16 byte chunks)</span> <a name="l00049"></a><a class="code" href="structrbu_1_1rbu__packet.html#a3aadadeaa12f7a220d5823d318407ce0">00049</a> <a class="code" href="types_8h.html#a9e6c91d77e24643b888dbd1a1a590054">u16</a> <a class="code" href="structrbu_1_1rbu__packet.html#a3aadadeaa12f7a220d5823d318407ce0">reserved2</a>; <span class="comment">//</span> <a name="l00050"></a><a class="code" href="structrbu_1_1rbu__packet.html#a3a9980938b564dda7745416b22253cd6">00050</a> <a class="code" href="types_8h.html#a10e94b422ef0c20dcdec20d31a1f5049">u32</a> <a class="code" href="structrbu_1_1rbu__packet.html#a3a9980938b564dda7745416b22253cd6">pktSetId</a>; <span class="comment">// unique id for packet set, can be anything</span> <a name="l00051"></a><a class="code" href="structrbu_1_1rbu__packet.html#ad30d9e91fadb526a79c55966e14f4b4e">00051</a> <a class="code" href="types_8h.html#a9e6c91d77e24643b888dbd1a1a590054">u16</a> <a class="code" href="structrbu_1_1rbu__packet.html#ad30d9e91fadb526a79c55966e14f4b4e">pktNum</a>; <span class="comment">// sequential pkt number (only thing that changes)</span> <a name="l00052"></a><a class="code" href="structrbu_1_1rbu__packet.html#af3b8aad5a66cd0d927956577f2556507">00052</a> <a class="code" href="types_8h.html#a9e6c91d77e24643b888dbd1a1a590054">u16</a> <a class="code" href="structrbu_1_1rbu__packet.html#af3b8aad5a66cd0d927956577f2556507">totPkts</a>; <span class="comment">// total number of packets</span> <a name="l00053"></a><a class="code" href="structrbu_1_1rbu__packet.html#a9dda5192f2cc8055dff7c45142c07223">00053</a> <a class="code" href="types_8h.html#aed742c436da53c1080638ce6ef7d13de">u8</a> <a class="code" href="structrbu_1_1rbu__packet.html#a9dda5192f2cc8055dff7c45142c07223">pktVer</a>; <span class="comment">// version == 1 for now</span> <a name="l00054"></a><a class="code" href="structrbu_1_1rbu__packet.html#a26d27d02e1062574703d5879a0f95781">00054</a> <a class="code" href="types_8h.html#aed742c436da53c1080638ce6ef7d13de">u8</a> <a class="code" href="structrbu_1_1rbu__packet.html#a26d27d02e1062574703d5879a0f95781">reserved</a>[9]; <a name="l00055"></a><a class="code" href="structrbu_1_1rbu__packet.html#aab2af8a61fc85c41ed68ca096c927ab6">00055</a> <a class="code" href="types_8h.html#a9e6c91d77e24643b888dbd1a1a590054">u16</a> <a class="code" href="structrbu_1_1rbu__packet.html#aab2af8a61fc85c41ed68ca096c927ab6">pktChksum</a>; <span class="comment">// sum all bytes in pkt must be zero</span> <a name="l00056"></a><a class="code" href="structrbu_1_1rbu__packet.html#a4013977e690bd59734d0097562c77f0d">00056</a> <a class="code" href="types_8h.html#aed742c436da53c1080638ce6ef7d13de">u8</a> <a class="code" href="structrbu_1_1rbu__packet.html#a4013977e690bd59734d0097562c77f0d">pktData</a>; <span class="comment">// Start of packet data.</span> <a name="l00057"></a>00057 } <a name="l00058"></a>00058 <a class="code" href="namespacerbu.html#a3c9d007f8f806df5de7b2b18048726e9">LIBSMBIOS_PACKED_ATTR</a>; <a name="l00059"></a>00059 <a name="l00060"></a>00060 <a name="l00061"></a>00061 <span class="comment">/* RBU Packet Requirements</span> <a name="l00062"></a>00062 <span class="comment"></span> <a name="l00063"></a>00063 <span class="comment"> 1.All values in the packet header except PktNum must be the same for all packets in a set with the following exception:</span> <a name="l00064"></a>00064 <span class="comment"> -- Packet 0 may have a different packet size (PktSize).</span> <a name="l00065"></a>00065 <span class="comment"> -- checksums</span> <a name="l00066"></a>00066 <span class="comment"> 2.Packet 0 data does not contain RBU data. Packet 1 contains the first chunk of RBU data.</span> <a name="l00067"></a>00067 <span class="comment"> 3.Packet data begins immediately after the header. Packet data size and offset can be calculated from PktSize and HdrSize.</span> <a name="l00068"></a>00068 <span class="comment"> 4.Reserved fields are 0.</span> <a name="l00069"></a>00069 <span class="comment"> 5.If multiple packets sets are written to memory, all packet sets must be identical.</span> <a name="l00070"></a>00070 <span class="comment"> 6.All packets must start on 4 KB boundaries.</span> <a name="l00071"></a>00071 <span class="comment"> 7.All packets must be placed in non-paged memory.</span> <a name="l00072"></a>00072 <span class="comment"> 8.The maximum size of a packet is 64 MB.</span> <a name="l00073"></a>00073 <span class="comment"> 9.The maximum size of a packet header is 4 KB.</span> <a name="l00074"></a>00074 <span class="comment"> 10.The maximum number of packets is 64 KB - 1.</span> <a name="l00075"></a>00075 <span class="comment"> 11.CPU INIT# must be immediately asserted (e.g. via OS shutdown/restart) after the RBU packet set is placed in memory.</span> <a name="l00076"></a>00076 <span class="comment"> 12.PktChk is the value resulting in a zero sum of all packet words (header and data).</span> <a name="l00077"></a>00077 <span class="comment"> 13.PktSetId uniquely identifies a packet set. BIOS aborts the packet search if all packets do not have the same PkSetId. Example identifiers: a 4-character ASCII ID string (e.g. “_A00”), a 4-byte hash value (e.g. CRC).</span> <a name="l00078"></a>00078 <span class="comment"> */</span> <a name="l00079"></a>00079 <a name="l00080"></a>00080 <span class="comment">/* RBU Packet 0 */</span> <a name="l00081"></a>00081 <a name="l00082"></a><a class="code" href="structrbu_1_1rbu__packet__0.html">00082</a> <span class="keyword">struct </span><a class="code" href="structrbu_1_1rbu__packet__0.html">rbu_packet_0</a> <a name="l00083"></a>00083 { <a name="l00084"></a><a class="code" href="structrbu_1_1rbu__packet__0.html#ae745b0827596f0caa26f520d0c561cac">00084</a> <a class="code" href="structrbu_1_1rbu__packet.html">rbu_packet</a> <a class="code" href="structrbu_1_1rbu__packet__0.html#ae745b0827596f0caa26f520d0c561cac">header</a>; <a name="l00085"></a><a class="code" href="structrbu_1_1rbu__packet__0.html#a46e6d02793d6d4fe13e8915beadf4e5f">00085</a> <a class="code" href="types_8h.html#aed742c436da53c1080638ce6ef7d13de">u8</a> <a class="code" href="structrbu_1_1rbu__packet__0.html#a46e6d02793d6d4fe13e8915beadf4e5f">passwordCheckInfo</a>; <span class="comment">// bit 7: passwordCheck is present bits 0-6: reserved</span> <a name="l00086"></a><a class="code" href="structrbu_1_1rbu__packet__0.html#a1d13af1a5857fce955b3339d16db3eaa">00086</a> <a class="code" href="types_8h.html#a10e94b422ef0c20dcdec20d31a1f5049">u32</a> <a class="code" href="structrbu_1_1rbu__packet__0.html#a1d13af1a5857fce955b3339d16db3eaa">passwordCheck</a>; <span class="comment">// crc-32 of admin/setup password</span> <a name="l00087"></a>00087 <span class="comment">// the rest is reserved for future expansion.</span> <a name="l00088"></a>00088 } <a name="l00089"></a>00089 <a class="code" href="namespacerbu.html#a3c9d007f8f806df5de7b2b18048726e9">LIBSMBIOS_PACKED_ATTR</a>; <a name="l00090"></a>00090 <a name="l00091"></a>00091 <span class="comment">/* RBU Packet 0 Definition</span> <a name="l00092"></a>00092 <span class="comment"></span> <a name="l00093"></a>00093 <span class="comment"> Packet 0 is reserved for packet set information. Packet 0 data consists of data items -- each item consists of an info byte followed by the actual data item. If bit 0 of the info byte is 1, the actual data starting at the next byte is present. If bit 0 is 0, the data is not present.</span> <a name="l00094"></a>00094 <span class="comment"></span> <a name="l00095"></a>00095 <span class="comment"> The system flash password is currently defined as the admin or setup password.</span> <a name="l00096"></a>00096 <span class="comment"></span> <a name="l00097"></a>00097 <span class="comment"> BIOS reject the packet set when:</span> <a name="l00098"></a>00098 <span class="comment"> 1.The packet set flash password CRC and the system flash password CRC do not match.</span> <a name="l00099"></a>00099 <span class="comment"> 2.The packet set flash password CRC is not present but the system flash password is present.</span> <a name="l00100"></a>00100 <span class="comment"></span> <a name="l00101"></a>00101 <span class="comment"> */</span> <a name="l00102"></a>00102 <a name="l00103"></a>00103 <a name="l00104"></a>00104 <span class="comment">/*</span> <a name="l00105"></a>00105 <span class="comment"> RBU BIOS UPDATE HEADER FILE (.HDR) structure</span> <a name="l00106"></a>00106 <span class="comment"> */</span> <a name="l00107"></a>00107 <a name="l00108"></a><a class="code" href="namespacerbu.html#a94a5e06d1e4e68d467433df944d3eaa4">00108</a> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="namespacerbu.html#a94a5e06d1e4e68d467433df944d3eaa4">NUM_SYS_ID_IN_HDR</a> = 12; <a name="l00109"></a>00109 <a name="l00110"></a><a class="code" href="structrbu_1_1rbu__hdr__file__header.html">00110</a> <span class="keyword">struct </span><a class="code" href="structrbu_1_1rbu__hdr__file__header.html">rbu_hdr_file_header</a> <a name="l00111"></a>00111 { <a name="l00112"></a><a class="code" href="structrbu_1_1rbu__hdr__file__header.html#a33221a5b9f66300b91413c9f81d63a05">00112</a> <span class="keywordtype">char</span> <a class="code" href="structrbu_1_1rbu__hdr__file__header.html#a33221a5b9f66300b91413c9f81d63a05">headerId</a>[4]; <a name="l00113"></a><a class="code" href="structrbu_1_1rbu__hdr__file__header.html#a076e9e8c8d738c3b71e252ca02c4f7a9">00113</a> <a class="code" href="types_8h.html#aed742c436da53c1080638ce6ef7d13de">u8</a> <a class="code" href="structrbu_1_1rbu__hdr__file__header.html#a076e9e8c8d738c3b71e252ca02c4f7a9">headerLength</a>; <a name="l00114"></a><a class="code" href="structrbu_1_1rbu__hdr__file__header.html#a894ede26093c1d1f1225b30da5ef1965">00114</a> <a class="code" href="types_8h.html#aed742c436da53c1080638ce6ef7d13de">u8</a> <a class="code" href="structrbu_1_1rbu__hdr__file__header.html#a894ede26093c1d1f1225b30da5ef1965">headerMajorVer</a>; <a name="l00115"></a><a class="code" href="structrbu_1_1rbu__hdr__file__header.html#a5c30ee726cf212e7e0e831c136b796a2">00115</a> <a class="code" href="types_8h.html#aed742c436da53c1080638ce6ef7d13de">u8</a> <a class="code" href="structrbu_1_1rbu__hdr__file__header.html#a5c30ee726cf212e7e0e831c136b796a2">headerMinorVer</a>; <a name="l00116"></a><a class="code" href="structrbu_1_1rbu__hdr__file__header.html#aab81406679d9c222fd1abf2b0f0c544f">00116</a> <a class="code" href="types_8h.html#aed742c436da53c1080638ce6ef7d13de">u8</a> <a class="code" href="structrbu_1_1rbu__hdr__file__header.html#aab81406679d9c222fd1abf2b0f0c544f">numSystems</a>; <a name="l00117"></a><a class="code" href="structrbu_1_1rbu__hdr__file__header.html#aa759b67e5aaf8b7f75b925b898eff50b">00117</a> <span class="keywordtype">char</span> <a class="code" href="structrbu_1_1rbu__hdr__file__header.html#aa759b67e5aaf8b7f75b925b898eff50b">quickCheck</a>[40]; <a name="l00118"></a><a class="code" href="structrbu_1_1rbu__hdr__file__header.html#a71e5307e1ed74ec0fe6e22eb7cbd60a5">00118</a> <span class="keywordtype">char</span> <a class="code" href="structrbu_1_1rbu__hdr__file__header.html#a71e5307e1ed74ec0fe6e22eb7cbd60a5">biosVersion</a>[3]; <a name="l00119"></a><a class="code" href="structrbu_1_1rbu__hdr__file__header.html#ac8bd851b62f00280c488d8bd00d00598">00119</a> <a class="code" href="types_8h.html#aed742c436da53c1080638ce6ef7d13de">u8</a> <a class="code" href="structrbu_1_1rbu__hdr__file__header.html#ac8bd851b62f00280c488d8bd00d00598">miscFlags</a>; <a name="l00120"></a><a class="code" href="structrbu_1_1rbu__hdr__file__header.html#a6fc34e1998af0076c35b13e7faa5eda0">00120</a> <a class="code" href="types_8h.html#aed742c436da53c1080638ce6ef7d13de">u8</a> <a class="code" href="structrbu_1_1rbu__hdr__file__header.html#a6fc34e1998af0076c35b13e7faa5eda0">biosInternalUse</a>; <a name="l00121"></a><a class="code" href="structrbu_1_1rbu__hdr__file__header.html#a659a34c07531504bc833716421b6f305">00121</a> <a class="code" href="types_8h.html#aed742c436da53c1080638ce6ef7d13de">u8</a> <a class="code" href="structrbu_1_1rbu__hdr__file__header.html#a659a34c07531504bc833716421b6f305">reserved</a>[5]; <a name="l00122"></a><a class="code" href="structrbu_1_1rbu__hdr__file__header.html#a7a9ec417f46971c51a495a6bf2af5b21">00122</a> <a class="code" href="types_8h.html#a9e6c91d77e24643b888dbd1a1a590054">u16</a> <a class="code" href="structrbu_1_1rbu__hdr__file__header.html#a7a9ec417f46971c51a495a6bf2af5b21">compatFlags</a>; <a name="l00123"></a><a class="code" href="structrbu_1_1rbu__hdr__file__header.html#a1368f4ff0076a6b895aa7451732c83a6">00123</a> <a class="code" href="types_8h.html#a9e6c91d77e24643b888dbd1a1a590054">u16</a> <a class="code" href="structrbu_1_1rbu__hdr__file__header.html#a1368f4ff0076a6b895aa7451732c83a6">systemIdList</a>[<a class="code" href="namespacerbu.html#a94a5e06d1e4e68d467433df944d3eaa4">NUM_SYS_ID_IN_HDR</a>]; <span class="comment">/*</span> <a name="l00124"></a>00124 <span class="comment"> Contains the list of NumSystems Dell System ID and Hardware Revision</span> <a name="l00125"></a>00125 <span class="comment"> ID pairs for which the Image Data is valid, in the following format:</span> <a name="l00126"></a>00126 <span class="comment"> Bit Range Description</span> <a name="l00127"></a>00127 <span class="comment"> 15:11 Dell System ID, bits 12:8.</span> <a name="l00128"></a>00128 <span class="comment"> This range is set to 00000b if the Dell System ID</span> <a name="l00129"></a>00129 <span class="comment"> is a 1-byte value.</span> <a name="l00130"></a>00130 <span class="comment"> 10:8 Hardware Revision ID</span> <a name="l00131"></a>00131 <span class="comment"> 7:0 Dell System ID, bits 7:0. */</span> <a name="l00132"></a>00132 } <a name="l00133"></a>00133 <a class="code" href="namespacerbu.html#a3c9d007f8f806df5de7b2b18048726e9">LIBSMBIOS_PACKED_ATTR</a>; <a name="l00134"></a>00134 <a name="l00135"></a>00135 <span class="preprocessor"># if defined(_MSC_VER)</span> <a name="l00136"></a>00136 <span class="preprocessor"></span><span class="preprocessor"># pragma pack(pop)</span> <a name="l00137"></a>00137 <span class="preprocessor"></span><span class="preprocessor"># endif</span> <a name="l00138"></a>00138 <span class="preprocessor"></span> <a name="l00139"></a>00139 } <a name="l00140"></a>00140 <a name="l00141"></a>00141 <span class="preprocessor">#endif </span><span class="comment">/* RBUIMPL_H */</span> </pre></div></div> </div> <hr class="footer"/><address class="footer"><small>Generated on Tue Oct 5 2010 for libsmbios_c library by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address> </body> </html>