00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef SYSTEMINFO_H
00020 #define SYSTEMINFO_H
00021
00022
00023
00024
00025 #include "smbios/config/auto_link.hpp"
00026
00027 #include <stdio.h>
00028
00029 #define SMBIOSEXCEPTION 0x01
00030 #define SMBIOSPARSEEXCEPTION 0x02
00031 #define SMBIOSITEMDATAOUTOFBOUNDS 0x03
00032 #define SMBIOSITEMSTRINGUNAVAILABLE 0x04
00033 #define SMBIOSPERMISSIONEXCEPTION 0x05
00034 #define SMBIOSPARAMETEREXCEPTION 0x06
00035 #define INTERNALERROR 0x07
00036 #define NOTIMPLEMENTED 0x08
00037
00038 #ifdef __cplusplus
00039 extern "C"
00040 {
00041 #endif
00042
00044
00045
00046
00047
00048
00049
00051
00053
00054 */
00055 const char *SMBIOSGetLibraryVersionString();
00056
00057
00059
00063 int SMBIOSGetDellSystemId();
00064
00066
00069 const char *SMBIOSGetSystemName();
00070
00072
00075 const char *SMBIOSGetBiosVersion();
00076
00078
00081 const char *SMBIOSGetAssetTag();
00082
00084
00087 const char *SMBIOSGetServiceTag();
00088
00090
00093 void SMBIOSFreeMemory( const char * );
00094
00099 const char *SMBIOSGetSysInfoErrorString();
00100
00102
00103
00104
00105
00106
00107
00109
00110
00111 int SMBIOSHasBootToUp();
00112 int SMBIOSGetBootToUp();
00113 void SMBIOSSetBootToUp(int state);
00114
00115
00116 int SMBIOSHasNvramStateBytes();
00117 int SMBIOSGetNvramStateBytes(int user);
00118 void SMBIOSSetNvramStateBytes(int value, int user);
00119
00120
00123 void SMBIOSMapAsciiTo_en_US_ScanCode(char *outputScanCodeBuf, const char *inputAsciiBuf, size_t outputBufSize);
00124
00125
00131 int SMBIOSGetSmiPasswordCoding();
00132
00133
00135 int SMBIOSIsDellSystem();
00136
00140 const char *SMBIOSGetVendorName();
00141
00142
00144
00145 * This tag can generally be up to 7 chars long. There are SMI and CMOS
00146 * methods to set this tag. At present, only CMOS access method is
00147 * implemented in libsmbios. This works across all Dell hardware that
00148 * the author is aware of.
00149 *
00150 * WARNING! The Dell Service Tag is very closely tied into the Dell
00151 * support system. This tag should not be changed except under direction
00152 * from Dell support. */
00153 int SMBIOSSetServiceTag(const char *password, const char *newTag, size_t len);
00154
00155
00157
00158 * This tag can generally be up to 10 chars long. There are SMI and CMOS
00159 * methods to set this tag. At present, only CMOS access method is
00160 * implemented in libsmbios. This works across all Dell hardware that
00161 * the author is aware of.
00162 *
00163 * User of the system can use this field to store any user-defined
00164 * data. Dell BIOS/support/etc does not utilize this value. */
00165 int SMBIOSSetAssetTag(const char *password, const char *newTag, size_t len);
00166
00167 #ifdef __cplusplus
00168 }
00169 #endif
00170
00171 #endif