Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

System.cpp File Reference

#include "smbios/ISmbios.h"
#include "smbios/IToken.h"
#include "smbios/ISmi.h"
#include "smbios/SystemInfo.h"
#include "smbios/IMemory.h"
#include "smbios/SmbiosDefs.h"
#include "ExceptionImpl.h"
#include "TokenLowLevel.h"
#include "DellMagic.h"
#include "smbios/version.h"
#include "smbios/message.h"

Go to the source code of this file.

Classes

struct  DellAssetTagFunctions
struct  DellBiosVersionFunctions
struct  DellGetServiceTagFunctions
struct  DellSetAssetTagFunctions
struct  DellSetServiceTagFunctions
struct  DellSystemNameFunctions

Defines

#define LIBSMBIOS_SOURCE
#define DCOUT(line)   do {} while(0)
#define DCERR(line)   do {} while(0)

Functions

void stripString (char *str)
unsigned char dell_decode_digit (char tagval)
void dell_decode_service_tag (char *tag, int len)
unsigned char dell_encode_digit (char ch)
void dell_encode_service_tag (char *tag, size_t len)
const char * SMBIOSGetLibraryVersionString ()
 Return a string representing the version of the libsmbios library.

void SMBIOSFreeMemory (const char *ptr)
 Free memory allocated by libsmbios.

char * getTagFromSMI (u16 select)
void setTagUsingSMI (const char *newTag, u16 select)
char * getStringFromTable (unsigned int structure, unsigned int stringNumber)
char * getServiceTagFromSysInfo ()
char * getServiceTagFromSysEncl ()
char * getServiceTagFromCMOSToken ()
char * getServiceTagFromSMI ()
const char * SMBIOSGetServiceTag ()
 Returns the 5 or 7 character Dell Service Tag.

void setServiceTagUsingCMOSToken (const char *newTag, size_t len)
void setServiceTagUsingSMI (const char *newTag, size_t size)
int SMBIOSSetServiceTag (const char *password, const char *serviceTag, size_t len)
 Set the 5 or 7 character Dell Service Tag.

char * getAssetTagFromSysEncl ()
char * getAssetTagFromToken ()
char * getAssetTagFromSMI ()
const char * SMBIOSGetAssetTag ()
 Returns the 10 character Dell Asset Tag.

void setAssetTagUsingCMOSToken (const char *newTag, size_t len)
void setAssetTagUsingSMI (const char *newTag, size_t size)
int SMBIOSSetAssetTag (const char *password, const char *assetTag, size_t len)
 Set the Dell Asset Tag.

char * getSystemNameFromSysInfo ()
const char * SMBIOSGetSystemName ()
 Return a buffer containing the System Name.

char * getBiosVersionFromOneByteStructForDiamond ()
char * getBiosVersionFromSmbios ()
const char * SMBIOSGetBiosVersion ()
 Return a buffer containing the BIOS version string.

const char * SMBIOSGetVendorName ()
int SMBIOSHasNvramStateBytes ()
int SMBIOSGetNvramStateBytes (int user)
void SMBIOSSetNvramStateBytes (int value, int user)
bool getUpOffsetAndFlag (up_info *up)
int upBootHelper (bool set=false, bool value=false)
int SMBIOSHasBootToUp ()
int SMBIOSGetBootToUp ()
void SMBIOSSetBootToUp (int state)
int SMBIOSGetSmiPasswordCoding ()

Variables

smbios::Exception< smbios::IExceptionSysInfoException
std::string biosPassword = ""
DellGetServiceTagFunctions DellGetServiceTagFunctions []
DellSetServiceTagFunctions DellSetServiceTagFunctions []
DellAssetTagFunctions DellAssetTagFunctions []
DellSetAssetTagFunctions DellSetAssetTagFunctions []
DellSystemNameFunctions DellSystemNameFunctions []
DellBiosVersionFunctions DellBiosVersionFunctions []


Define Documentation

#define DCERR line   )     do {} while(0)
 

Definition at line 46 of file System.cpp.

#define DCOUT line   )     do {} while(0)
 

Definition at line 45 of file System.cpp.

#define LIBSMBIOS_SOURCE
 

Definition at line 19 of file System.cpp.


Function Documentation

unsigned char dell_decode_digit char  tagval  )  [static]
 

Definition at line 83 of file System.cpp.

Referenced by dell_decode_service_tag().

void dell_decode_service_tag char *  tag,
int  len
[static]
 

Definition at line 105 of file System.cpp.

References dell_decode_digit(), and SVC_TAG_LEN_MAX.

Referenced by getServiceTagFromCMOSToken().

unsigned char dell_encode_digit char  ch  )  [static]
 

Definition at line 127 of file System.cpp.

Referenced by dell_encode_service_tag().

void dell_encode_service_tag char *  tag,
size_t  len
[static]
 

Definition at line 151 of file System.cpp.

References dell_encode_digit(), SVC_TAG_CMOS_LEN_MAX, and SVC_TAG_LEN_MAX.

Referenced by setServiceTagUsingCMOSToken().

char* getAssetTagFromSMI  ) 
 

Definition at line 550 of file System.cpp.

References getTagFromSMI().

char* getAssetTagFromSysEncl  )  [static]
 

Definition at line 496 of file System.cpp.

References getStringFromTable(), smbios::System_Enclosure_or_Chassis, and System_Enclosure_or_Chassis_Asset_Offset.

char* getAssetTagFromToken  ) 
 

Definition at line 503 of file System.cpp.

References ASSET_TAG_CMOS_LEN_MAX, ASSET_TAG_LEN_MAX, Cmos_Asset_Token, TokenTableFactory::getFactory(), CmosRWFactory::getFactory(), TokenTableFactory::getSingleton(), CmosRWFactory::getSingleton(), ICmosRW::readByte(), u16, u32, and u8.

Referenced by testPlatform::testAssetTag().

char* getBiosVersionFromOneByteStructForDiamond  )  [static]
 

Definition at line 735 of file System.cpp.

References DELL_SYSTEM_STRING, DELL_SYSTEM_STRING_LEN, DELL_SYSTEM_STRING_LOC_DIAMOND_1, DELL_SYSTEM_STRING_LOC_DIAMOND_2, IMemory::fillBuffer(), IMemory::getByte(), MemoryFactory::getFactory(), ID_BYTE_LOC_DIAMOND_1, ID_BYTE_LOC_DIAMOND_2, SYSTEM_ID_DIAMOND, and u8.

char* getBiosVersionFromSmbios  )  [static]
 

Definition at line 768 of file System.cpp.

References smbios::BIOS_Information, BIOS_Information_Version_Offset, and getStringFromTable().

char* getServiceTagFromCMOSToken  ) 
 

Definition at line 281 of file System.cpp.

References Cmos_Service_Token, DCOUT, dell_decode_service_tag(), TokenTableFactory::getFactory(), CmosRWFactory::getFactory(), TokenTableFactory::getSingleton(), CmosRWFactory::getSingleton(), ICmosRW::readByte(), SVC_TAG_CMOS_LEN_MAX, SVC_TAG_LEN_MAX, u16, u32, and u8.

Referenced by testPlatform::testServiceTagWriting().

char* getServiceTagFromSMI  ) 
 

Definition at line 336 of file System.cpp.

References DCOUT, and getTagFromSMI().

char* getServiceTagFromSysEncl  )  [static]
 

Definition at line 274 of file System.cpp.

References DCOUT, getStringFromTable(), smbios::System_Enclosure_or_Chassis, and System_Enclosure_or_Chassis_Service_Offset.

char* getServiceTagFromSysInfo  )  [static]
 

Definition at line 268 of file System.cpp.

References DCOUT, getStringFromTable(), smbios::System_Information, and System_Information_Serial_Number_Offset.

char* getStringFromTable unsigned int  structure,
unsigned int  stringNumber
[static]
 

Definition at line 238 of file System.cpp.

References SmbiosFactory::getFactory(), SmbiosFactory::getSingleton(), smbios::getString_FromItem(), and stripString().

Referenced by getAssetTagFromSysEncl(), getBiosVersionFromSmbios(), getServiceTagFromSysEncl(), getServiceTagFromSysInfo(), getSystemNameFromSysInfo(), and SMBIOSGetVendorName().

char* getSystemNameFromSysInfo  )  [static]
 

Definition at line 691 of file System.cpp.

References getStringFromTable(), smbios::System_Information, and System_Information_Product_Name_Offset.

char* getTagFromSMI u16  select  )  [static]
 

Definition at line 213 of file System.cpp.

References smi::doSimpleCallingInterfaceSmi(), u16, and u32.

Referenced by getAssetTagFromSMI(), and getServiceTagFromSMI().

bool getUpOffsetAndFlag up_info up  )  [static]
 

Definition at line 962 of file System.cpp.

References IMemory::fillBuffer(), and MemoryFactory::getFactory().

Referenced by upBootHelper().

void setAssetTagUsingCMOSToken const char *  newTag,
size_t  len
 

Definition at line 597 of file System.cpp.

References ASSET_TAG_CMOS_LEN_MAX, Cmos_Asset_Token, CmosRWFactory::getFactory(), TokenTableFactory::getFactory(), CmosRWFactory::getSingleton(), TokenTableFactory::getSingleton(), ICmosRW::readByte(), u16, u32, u8, and ICmosRW::writeByte().

void setAssetTagUsingSMI const char *  newTag,
size_t  size
 

Definition at line 642 of file System.cpp.

References setTagUsingSMI().

void setServiceTagUsingCMOSToken const char *  newTag,
size_t  len
 

Definition at line 391 of file System.cpp.

References Cmos_Service_Token, dell_encode_service_tag(), CmosRWFactory::getFactory(), TokenTableFactory::getFactory(), CmosRWFactory::getSingleton(), TokenTableFactory::getSingleton(), ICmosRW::readByte(), SVC_TAG_CMOS_LEN_MAX, SVC_TAG_LEN_MAX, u16, u32, u8, and ICmosRW::writeByte().

void setServiceTagUsingSMI const char *  newTag,
size_t  size
 

Definition at line 449 of file System.cpp.

References setTagUsingSMI().

void setTagUsingSMI const char *  newTag,
u16  select
[static]
 

Definition at line 230 of file System.cpp.

References biosPassword, smi::doSimpleCallingInterfaceSmi(), smi::getAuthenticationKey(), u16, and u32.

Referenced by setAssetTagUsingSMI(), and setServiceTagUsingSMI().

void SMBIOSFreeMemory const char *   ) 
 

Free memory allocated by libsmbios.

This function must be called to free memory for any function that allocates memory on behalf of its caller.

Definition at line 207 of file System.cpp.

Referenced by safeConvertToString(), and testPlatform::testSystemInfo().

const char* SMBIOSGetAssetTag  ) 
 

Returns the 10 character Dell Asset Tag.

Allocates a buffer on behalf of the caller. Caller must use the freeMemory() function call to free this memory when finished.

Definition at line 568 of file System.cpp.

References _, stripString(), and SysInfoException.

Referenced by testPlatform::testAssetTag(), and testPlatform::testSystemInfo().

const char* SMBIOSGetBiosVersion  ) 
 

Return a buffer containing the BIOS version string.

Allocates a buffer on behalf of the caller. Caller must use the freeMemory() function call to free this memory when finished.

Definition at line 783 of file System.cpp.

References _, stripString(), and SysInfoException.

Referenced by testPlatform::testBiosVersion(), and testPlatform::testSystemInfo().

int SMBIOSGetBootToUp  ) 
 

Definition at line 1077 of file System.cpp.

References upBootHelper().

Referenced by testPlatform::testUpBoot().

const char* SMBIOSGetLibraryVersionString  ) 
 

Return a string representing the version of the libsmbios library.

Returns the current version of the SMBIOS library as a string

Definition at line 201 of file System.cpp.

References LIBSMBIOS_RELEASE_VERSION.

Referenced by testStandalone::testLibraryVersion().

int SMBIOSGetNvramStateBytes int  user  ) 
 

Definition at line 870 of file System.cpp.

References _, TokenTableFactory::getFactory(), TokenTableFactory::getSingleton(), NvramByte1_Token, NvramByte2_Token, SysInfoException, and u8.

Referenced by testPlatform::testStateBytes().

const char* SMBIOSGetServiceTag  ) 
 

Returns the 5 or 7 character Dell Service Tag.

Allocates a buffer on behalf of the caller. Caller must use the freeMemory() function call to free this memory when finished.

Definition at line 356 of file System.cpp.

References _, DCOUT, stripString(), and SysInfoException.

Referenced by testPlatform::testServiceTag(), testPlatform::testServiceTagWriting(), and testPlatform::testSystemInfo().

int SMBIOSGetSmiPasswordCoding  ) 
 

returns password coding used in SMI calls 0 == unknown 1 == scan code 2 == ascii

Definition at line 1091 of file System.cpp.

References smi::getPasswordFormat().

const char* SMBIOSGetSystemName  ) 
 

Return a buffer containing the System Name.

Allocates a buffer on behalf of the caller. Caller must use the freeMemory() function call to free this memory when finished.

Definition at line 706 of file System.cpp.

References _, stripString(), and SysInfoException.

Referenced by testPlatform::testSystemInfo(), and testPlatform::testSystemName().

const char* SMBIOSGetVendorName  ) 
 

Allocates a buffer on behalf of the caller. Caller must use the freeMemory() function call to free this memory when finished.

Definition at line 812 of file System.cpp.

References _, getStringFromTable(), stripString(), SysInfoException, smbios::System_Information, and System_Information_Manufacturer_Offset.

Referenced by testPlatform::testSystemInfo().

int SMBIOSHasBootToUp  ) 
 

Definition at line 1072 of file System.cpp.

References upBootHelper().

Referenced by testPlatform::testUpBoot().

int SMBIOSHasNvramStateBytes  ) 
 

Definition at line 834 of file System.cpp.

References _, TokenTableFactory::getFactory(), TokenTableFactory::getSingleton(), NvramByte1_Token, NvramByte2_Token, SysInfoException, and u8.

Referenced by testPlatform::testStateBytes().

int SMBIOSSetAssetTag const char *  password,
const char *  newTag,
size_t  len
 

Set the Dell Asset Tag.

The Dell Asset Tag is displayed in BIOS and is also contained in SMBIOS. This tag can generally be up to 10 chars long. There are SMI and CMOS methods to set this tag. At present, only CMOS access method is implemented in libsmbios. This works across all Dell hardware that the author is aware of.

User of the system can use this field to store any user-defined data. Dell BIOS/support/etc does not utilize this value.

Definition at line 660 of file System.cpp.

References _, biosPassword, and SysInfoException.

Referenced by testPlatform::testAssetTag().

void SMBIOSSetBootToUp int  state  ) 
 

Definition at line 1084 of file System.cpp.

References upBootHelper().

Referenced by testPlatform::testUpBoot().

void SMBIOSSetNvramStateBytes int  value,
int  user
 

Definition at line 923 of file System.cpp.

References _, TokenTableFactory::getFactory(), TokenTableFactory::getSingleton(), NvramByte1_Token, NvramByte2_Token, SysInfoException, and u8.

Referenced by testPlatform::testStateBytes().

int SMBIOSSetServiceTag const char *  password,
const char *  newTag,
size_t  len
 

Set the 5 or 7 character Dell Service Tag.

The Dell Asset Tag is displayed in BIOS and is also contained in SMBIOS. This tag can generally be up to 7 chars long. There are SMI and CMOS methods to set this tag. At present, only CMOS access method is implemented in libsmbios. This works across all Dell hardware that the author is aware of.

WARNING! The Dell Service Tag is very closely tied into the Dell support system. This tag should not be changed except under direction from Dell support.

Definition at line 466 of file System.cpp.

References _, biosPassword, and SysInfoException.

Referenced by testPlatform::testServiceTagWriting().

void stripString char *  str  )  [static]
 

Definition at line 57 of file System.cpp.

Referenced by getStringFromTable(), SMBIOSGetAssetTag(), SMBIOSGetBiosVersion(), SMBIOSGetServiceTag(), SMBIOSGetSystemName(), and SMBIOSGetVendorName().

int upBootHelper bool  set = false,
bool  value = false
[static]
 

Definition at line 1003 of file System.cpp.

References _, indexed_io_access_structure::dataPort, CmosRWFactory::getFactory(), TokenTableFactory::getFactory(), CmosRWFactory::getSingleton(), TokenTableFactory::getSingleton(), getUpOffsetAndFlag(), indexed_io_access_structure::indexPort, NvramByte2_Token, ICmosRW::readByte(), SysInfoException, u8, and ICmosRW::writeByte().

Referenced by SMBIOSGetBootToUp(), SMBIOSHasBootToUp(), and SMBIOSSetBootToUp().


Variable Documentation

std::string biosPassword = "" [static]
 

Definition at line 55 of file System.cpp.

Referenced by setTagUsingSMI(), SMBIOSSetAssetTag(), and SMBIOSSetServiceTag().

struct DellAssetTagFunctions DellAssetTagFunctions[]
 

struct DellBiosVersionFunctions DellBiosVersionFunctions[]
 

struct DellGetServiceTagFunctions DellGetServiceTagFunctions[]
 

struct DellSetAssetTagFunctions DellSetAssetTagFunctions[]
 

struct DellSetServiceTagFunctions DellSetServiceTagFunctions[]
 

struct DellSystemNameFunctions DellSystemNameFunctions[]
 

smbios::Exception<smbios::IException> SysInfoException
 

Definition at line 50 of file System.cpp.


Generated on Wed Apr 11 16:25:11 2007 for SMBIOS Library by doxygen 1.3.5