19 #define LIBSMBIOS_SOURCE
36 #define _X( expr ) do{ try { expr } catch( const std::exception & ){} }while(0)
40 SmbiosWorkaroundTable *SmbiosWorkaroundFactory::_tableInstance = 0;
50 SmbiosWorkaroundFactory::~SmbiosWorkaroundFactory() throw()
54 delete _tableInstance;
65 if( 0xFE == systemId )
68 const char * chBiosVersion = 0;
70 std::string biosVersion =
"";
74 if ( 0 != chBiosVersion )
75 biosVersion = chBiosVersion;
91 : systemId(0), biosVersion(
""), workaroundsForThisSystem(initWorkarounds)
100 u8 *cmpPtr =
new u8[size];
104 item->
getData(offset, cmpPtr, size);
105 if(0 == memcmp(cmpPtr, data.
data, size))
123 InternalErrorImpl internalError;
126 internalError.setMessageString(
_(
"Data overflow. Offset requested is larger than data size. offset: %(offset)i, data size: %(size)i"));
127 internalError.setParameter(
"offset",offset);
128 internalError.setParameter(
"size",static_cast<int>(size));
132 memcpy(&(buf[offset]), data.
data, len);