00001 // vim:expandtab:autoindent:tabstop=4:shiftwidth=4:filetype=c: 00002 /* 00003 * Copyright (C) 2005 Dell Inc. 00004 * by Michael Brown <Michael_E_Brown@dell.com> 00005 * Licensed under the Open Software License version 2.1 00006 * 00007 * Alternatively, you can redistribute it and/or modify 00008 * it under the terms of the GNU General Public License as published 00009 * by the Free Software Foundation; either version 2 of the License, 00010 * or (at your option) any later version. 00011 00012 * This program is distributed in the hope that it will be useful, but 00013 * WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00015 * See the GNU General Public License for more details. 00016 */ 00017 00018 00019 #ifndef SYSTEMINFO_H 00020 #define SYSTEMINFO_H 00021 00022 // C-header files do not include compat.h 00023 // Instead, they should include auto_link.hpp, which sets up automatic 00024 // library selection on MSVC 00025 #include "smbios/config/auto_link.hpp" 00026 00027 #include <stdio.h> // for size_t 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 // Stable API section. 00046 // 00047 // All of the functions in this section have a strong guarantee that we 00048 // will not break API compatibility. 00049 // 00051 00053 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 // UNStable API section. 00104 // 00105 // API for the following functions has not been frozen yet and is 00106 // subject to change. 00107 // 00109 00110 // Almost stable 00111 int SMBIOSHasBootToUp(); 00112 int SMBIOSGetBootToUp(); // -- gets BIOS boot-to-UP flag 00113 void SMBIOSSetBootToUp(int state); // 00114 00115 // Almost stable 00116 int SMBIOSHasNvramStateBytes(); 00117 int SMBIOSGetNvramStateBytes(int user); 00118 void SMBIOSSetNvramStateBytes(int value, int user); 00119 00120 // Almost stable 00123 void SMBIOSMapAsciiTo_en_US_ScanCode(char *outputScanCodeBuf, const char *inputAsciiBuf, size_t outputBufSize); 00124 00125 // Almost stable 00131 int SMBIOSGetSmiPasswordCoding(); 00132 00133 // Almost stable 00135 int SMBIOSIsDellSystem(); 00136 00140 const char *SMBIOSGetVendorName(); // -- Dell or OEM vendor 00141 00142 // almost stable, CMOS-only implemented at this time 00144 00153 int SMBIOSSetServiceTag(const char *password, const char *newTag, size_t len); 00154 00155 // almost stable, CMOS-only implemented at this time 00157 00165 int SMBIOSSetAssetTag(const char *password, const char *newTag, size_t len); 00166 00167 #ifdef __cplusplus 00168 } 00169 #endif 00170 00171 #endif /* SYSTEMINFO_H */