System.cpp File Reference

#include "smbios/compat.h"
#include <string.h>
#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  DellGetServiceTagFunctions
struct  DellSetServiceTagFunctions
struct  DellAssetTagFunctions
struct  DellSetAssetTagFunctions
struct  DellSystemNameFunctions
struct  DellBiosVersionFunctions

Defines

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

Functions

static void stripString (char *str)
static unsigned char dell_decode_digit (char tagval)
static void dell_decode_service_tag (char *tag, int len)
static unsigned char dell_encode_digit (char ch)
static 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.
static char * getTagFromSMI (u16 select)
static void setTagUsingSMI (const char *newTag, u16 select)
static char * getStringFromTable (unsigned int structure, unsigned int stringNumber)
static char * getServiceTagFromSysInfo ()
static 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.
static 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.
static char * getSystemNameFromSysInfo ()
const char * SMBIOSGetSystemName ()
 Return a buffer containing the System Name.
static char * getBiosVersionFromOneByteStructForDiamond ()
static 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)
static bool getUpOffsetAndFlag (up_info *up)
static int upBootHelper (bool set=false, bool value=false)
int SMBIOSHasBootToUp ()
int SMBIOSGetBootToUp ()
void SMBIOSSetBootToUp (int state)
int SMBIOSGetSmiPasswordCoding ()

Variables

smbios::Exception
< smbios::IException
SysInfoException
static std::string biosPassword = ""


Define Documentation

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

Definition at line 50 of file System.cpp.

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

Definition at line 49 of file System.cpp.

#define LIBSMBIOS_SOURCE

Definition at line 19 of file System.cpp.


Function Documentation

static unsigned char dell_decode_digit ( char  tagval  )  [static]

Definition at line 87 of file System.cpp.

Referenced by dell_decode_service_tag().

static void dell_decode_service_tag ( char *  tag,
int  len 
) [static]

Definition at line 109 of file System.cpp.

References dell_decode_digit(), and SVC_TAG_LEN_MAX.

Referenced by getServiceTagFromCMOSToken().

static unsigned char dell_encode_digit ( char  ch  )  [static]

Definition at line 131 of file System.cpp.

Referenced by dell_encode_service_tag().

static void dell_encode_service_tag ( char *  tag,
size_t  len 
) [static]

Definition at line 155 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 554 of file System.cpp.

References getTagFromSMI().

static char* getAssetTagFromSysEncl (  )  [static]

char* getAssetTagFromToken (  ) 

static char* getBiosVersionFromOneByteStructForDiamond (  )  [static]

static char* getBiosVersionFromSmbios (  )  [static]

char* getServiceTagFromCMOSToken (  ) 

char* getServiceTagFromSMI (  ) 

Definition at line 340 of file System.cpp.

References DCOUT, and getTagFromSMI().

static char* getServiceTagFromSysEncl (  )  [static]

static char* getServiceTagFromSysInfo (  )  [static]

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

static char* getSystemNameFromSysInfo (  )  [static]

static char* getTagFromSMI ( u16  select  )  [static]

Definition at line 217 of file System.cpp.

References smi::doSimpleCallingInterfaceSmi().

Referenced by getAssetTagFromSMI(), and getServiceTagFromSMI().

static bool getUpOffsetAndFlag ( up_info up  )  [static]

Definition at line 966 of file System.cpp.

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

Referenced by upBootHelper().

void setAssetTagUsingCMOSToken ( const char *  newTag,
size_t  len 
)

void setAssetTagUsingSMI ( const char *  newTag,
size_t  size 
)

Definition at line 646 of file System.cpp.

References setTagUsingSMI().

void setServiceTagUsingCMOSToken ( const char *  newTag,
size_t  len 
)

void setServiceTagUsingSMI ( const char *  newTag,
size_t  size 
)

Definition at line 453 of file System.cpp.

References setTagUsingSMI().

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

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 211 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 572 of file System.cpp.

References _, Exception::setMessageString(), and stripString().

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 787 of file System.cpp.

References _, Exception::setMessageString(), and stripString().

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

int SMBIOSGetBootToUp (  ) 

Definition at line 1081 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 205 of file System.cpp.

References LIBSMBIOS_RELEASE_VERSION.

Referenced by testStandalone::testLibraryVersion().

int SMBIOSGetNvramStateBytes ( int  user  ) 

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 360 of file System.cpp.

References _, DCOUT, Exception::setMessageString(), and stripString().

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 1095 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 710 of file System.cpp.

References _, Exception::setMessageString(), and stripString().

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 816 of file System.cpp.

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

Referenced by testPlatform::testSystemInfo().

int SMBIOSHasBootToUp (  ) 

Definition at line 1076 of file System.cpp.

References upBootHelper().

Referenced by testPlatform::testUpBoot().

int SMBIOSHasNvramStateBytes (  ) 

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 664 of file System.cpp.

References _, biosPassword, and Exception::setMessageString().

Referenced by testPlatform::testAssetTag().

void SMBIOSSetBootToUp ( int  state  ) 

Definition at line 1088 of file System.cpp.

References upBootHelper().

Referenced by testPlatform::testUpBoot().

void SMBIOSSetNvramStateBytes ( int  value,
int  user 
)

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 470 of file System.cpp.

References _, biosPassword, and Exception::setMessageString().

Referenced by testPlatform::testServiceTagWriting().

static void stripString ( char *  str  )  [static]

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


Variable Documentation

std::string biosPassword = "" [static]

Definition at line 59 of file System.cpp.

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

Definition at line 23 of file SysInfoError.cpp.


Generated on Tue Apr 22 12:59:21 2008 for SMBIOS Library by  doxygen 1.5.5