rbu Namespace Reference


Classes

class  RbuFactory
 AbstractFactory that produces IRbuHdr objects. More...
class  IRbuHdr
 Interface definition for RBU HDR operations. More...
class  RbuFactoryImpl
class  RbuHdr
struct  rbu_packet
struct  rbu_packet_0
struct  rbu_hdr_file_header

Enumerations

enum  packet_type { pt_any, pt_mono, pt_packet, pt_init }
enum  driver_type { rbu_unsupported, rbu_linux_v0, rbu_linux_v1, rbu_linux_v2 }

Functions

 DECLARE_EXCEPTION (RbuException)
 DECLARE_EXCEPTION_EX (RbuNotSupported, rbu, RbuException)
 DECLARE_EXCEPTION_EX (InvalidHdrFile, rbu, RbuException)
 DECLARE_EXCEPTION_EX (UnsupportedSystemForHdrFile, rbu, RbuException)
 DECLARE_EXCEPTION_EX (HdrFileIOError, rbu, RbuException)
 DECLARE_EXCEPTION_EX (RbuDriverIOError, rbu, RbuException)
std::ostream & operator<< (std::ostream &cout, const IRbuHdr &item)
void cancelDellBiosUpdate ()
 Cancel BIOS Update on Dell systems.
bool checkSystemId (const IRbuHdr &hdr, u16 sysId)
 Check to see if a HDR file supports a specific System ID.
void dellBiosUpdate (const IRbuHdr &hdr, packet_type force_type)
 Update BIOS on Dell systems.
int compareBiosVersion (std::string ver1, std::string ver2)
 Compare BIOS Versions.
driver_type getDriverType ()
static FILE * writePacket (const char *fn, const char *buffer, size_t bufSize, bool openclose)
static void pktUpdateLoop (FILE *hdr_fh, const char *packetFilename, char *buffer, size_t bufSize, bool openclose)
static void monoUpdateLoop (FILE *hdr_fh, FILE *data_fh)
static void setSize (const char *fn, size_t sz)
static void doPacketUpdate_v1 (FILE *hdr_fh)
static void doMonoUpdate_v1 (FILE *hdr_fh)
static void doPacketUpdate_v0 (FILE *hdr_fh)
static void doMonoUpdate_v0 (FILE *hdr_fh)
static void setPacketType (packet_type type, const char *fn=rbu_v2_img_type_file)
static void waitForFile (const char *fn, time_t wait)
static void setLoadValue (char val)
static void doPacketUpdate_v2 (FILE *hdr_fh)
static void doMonoUpdate_v2 (FILE *hdr_fh)
ostream & operator<< (ostream &cout, const IRbuHdr &hdr)
static string stringToLower (string in)
static int compareSamePrefixOldBiosVersion (std::string ver1, std::string ver2)
static int compareOldBiosVersion (std::string ver1, std::string ver2)
void splitNewVersion (std::string ver, unsigned int &maj, unsigned int &min, unsigned int &ext)
static int compareNewBiosVersion (std::string ver1, std::string ver2)
packet_type getSupportedPacketType (void)
void activateRbuToken ()
void cancelRbuToken ()
void checksumPacket (rbu_packet *pkt, size_t size)
void createPacket (char *buffer, size_t bufSize, size_t imageSize)
 DEFINE_EXCEPTION_EX (RbuNotSupportedImpl, rbu, RbuNotSupported)
 DEFINE_EXCEPTION_EX (InvalidHdrFileImpl, rbu, InvalidHdrFile)
 DEFINE_EXCEPTION_EX (UnsupportedSystemForHdrFileImpl, rbu, UnsupportedSystemForHdrFile)
 DEFINE_EXCEPTION_EX (HdrFileIOErrorImpl, rbu, HdrFileIOError)
 DEFINE_EXCEPTION_EX (RbuDriverIOErrorImpl, rbu, RbuDriverIOError)

Variables

const int SYSID_OVERRIDE = 1
const int BIOSVER_OVERRIDE = 2
const char * rbu_v0_type_file = "/proc/dell/rbu/image_type"
const char * rbu_v0_data_file = "/proc/dell/rbu/rbudata"
const char * rbu_v0_size_file = "/proc/dell/rbu/rbudatasize"
const char * rbu_v1_mono_data_file = "/sys/firmware/rbu/rbudata"
const char * rbu_v1_mono_size_file = "/sys/firmware/rbu/rbudatasize"
const char * rbu_v1_pkt_data_file = "/sys/firmware/rbu/packetdata"
const char * rbu_v1_pkt_size_file = "/sys/firmware/rbu/packetdatasize"
const char * rbu_v2_fw_data_file = "/sys/class/firmware/dell_rbu/data"
const char * rbu_v2_fw_load_file = "/sys/class/firmware/dell_rbu/loading"
const char * rbu_v2_img_type_file = "/sys/devices/platform/dell_rbu/image_type"
const char * rbu_v2_pkt_size_file = "/sys/devices/platform/dell_rbu/packet_size"
const int RBU_PACKET_SIZE = 4096
rbu::rbu_packet LIBSMBIOS_PACKED_ATTR
rbu::rbu_packet_0 LIBSMBIOS_PACKED_ATTR
const int NUM_SYS_ID_IN_HDR = 12
rbu::rbu_hdr_file_header LIBSMBIOS_PACKED_ATTR


Enumeration Type Documentation

enum driver_type

Enumerator:
rbu_unsupported 
rbu_linux_v0 
rbu_linux_v1 
rbu_linux_v2 

Definition at line 49 of file DellRbu.h.

enum packet_type

Enumerator:
pt_any 
pt_mono 
pt_packet 
pt_init 

Definition at line 45 of file DellRbu.h.


Function Documentation

void activateRbuToken (  ) 

Definition at line 364 of file RbuHdr.cpp.

References TokenTableFactory::getFactory(), TokenTableFactory::getSingleton(), and RBU_ACTIVATE.

Referenced by dellBiosUpdate().

void cancelDellBiosUpdate (  ) 

Cancel BIOS Update on Dell systems.

Definition at line 463 of file Rbu_Linux.cpp.

References cancelRbuToken(), getDriverType(), pt_init, rbu_linux_v0, rbu_linux_v1, rbu_linux_v2, rbu_v0_size_file, rbu_v0_type_file, rbu_v1_mono_size_file, rbu_v1_pkt_size_file, rbu_v2_img_type_file, setLoadValue(), setPacketType(), and setSize().

void cancelRbuToken (  ) 

Definition at line 371 of file RbuHdr.cpp.

References TokenTableFactory::getFactory(), TokenTableFactory::getSingleton(), and RBU_CANCEL.

Referenced by cancelDellBiosUpdate().

void checksumPacket ( rbu_packet *  pkt,
size_t  size 
)

Definition at line 378 of file RbuHdr.cpp.

References rbu_packet::pktChksum.

Referenced by createPacket(), and pktUpdateLoop().

bool checkSystemId ( const IRbuHdr &  hdr,
u16  sysId 
)

Check to see if a HDR file supports a specific System ID.

Definition at line 146 of file RbuHdr.cpp.

References IRbuHdr::getSystemIdList().

int compareBiosVersion ( std::string  ver1,
std::string  ver2 
)

Compare BIOS Versions.

Definition at line 312 of file RbuHdr.cpp.

References compareNewBiosVersion(), compareOldBiosVersion(), and stringToLower().

Referenced by testRbu::testRbuNewVerCompare(), and testRbu::testRbuOldVerCompare().

static int rbu::compareNewBiosVersion ( std::string  ver1,
std::string  ver2 
) [static]

Definition at line 278 of file RbuHdr.cpp.

References splitNewVersion().

Referenced by compareBiosVersion().

static int rbu::compareOldBiosVersion ( std::string  ver1,
std::string  ver2 
) [static]

Definition at line 218 of file RbuHdr.cpp.

References compareSamePrefixOldBiosVersion().

Referenced by compareBiosVersion().

static int rbu::compareSamePrefixOldBiosVersion ( std::string  ver1,
std::string  ver2 
) [static]

Definition at line 206 of file RbuHdr.cpp.

Referenced by compareOldBiosVersion().

void createPacket ( char *  buffer,
size_t  bufSize,
size_t  imageSize 
)

Definition at line 390 of file RbuHdr.cpp.

References checksumPacket(), rbu_packet::hdrSize, rbu_packet::pktChksum, rbu_packet::pktId, rbu_packet::pktNum, rbu_packet::pktSetId, rbu_packet::pktSize, rbu_packet::pktVer, rbu_packet::reserved1, rbu_packet::reserved2, and rbu_packet::totPkts.

Referenced by pktUpdateLoop().

rbu::DECLARE_EXCEPTION ( RbuException   ) 

rbu::DECLARE_EXCEPTION_EX ( RbuDriverIOError  ,
rbu  ,
RbuException   
)

rbu::DECLARE_EXCEPTION_EX ( HdrFileIOError  ,
rbu  ,
RbuException   
)

rbu::DECLARE_EXCEPTION_EX ( UnsupportedSystemForHdrFile  ,
rbu  ,
RbuException   
)

rbu::DECLARE_EXCEPTION_EX ( InvalidHdrFile  ,
rbu  ,
RbuException   
)

rbu::DECLARE_EXCEPTION_EX ( RbuNotSupported  ,
rbu  ,
RbuException   
)

rbu::DEFINE_EXCEPTION_EX ( RbuDriverIOErrorImpl  ,
rbu  ,
RbuDriverIOError   
)

rbu::DEFINE_EXCEPTION_EX ( HdrFileIOErrorImpl  ,
rbu  ,
HdrFileIOError   
)

rbu::DEFINE_EXCEPTION_EX ( UnsupportedSystemForHdrFileImpl  ,
rbu  ,
UnsupportedSystemForHdrFile   
)

rbu::DEFINE_EXCEPTION_EX ( InvalidHdrFileImpl  ,
rbu  ,
InvalidHdrFile   
)

rbu::DEFINE_EXCEPTION_EX ( RbuNotSupportedImpl  ,
rbu  ,
RbuNotSupported   
)

void dellBiosUpdate ( const IRbuHdr &  hdr,
packet_type  force_type 
)

Update BIOS on Dell systems.

Definition at line 358 of file Rbu_Linux.cpp.

References activateRbuToken(), doMonoUpdate_v0(), doMonoUpdate_v1(), doMonoUpdate_v2(), doPacketUpdate_v0(), doPacketUpdate_v1(), doPacketUpdate_v2(), getDriverType(), IRbuHdr::getFh(), getSupportedPacketType(), pt_any, pt_init, pt_mono, pt_packet, rbu_linux_v0, rbu_linux_v1, rbu_linux_v2, rbu_v0_type_file, rbu_v2_img_type_file, and setPacketType().

static void rbu::doMonoUpdate_v0 ( FILE *  hdr_fh  )  [static]

Definition at line 234 of file Rbu_Linux.cpp.

References monoUpdateLoop(), rbu_v0_data_file, rbu_v0_size_file, and setSize().

Referenced by dellBiosUpdate().

static void rbu::doMonoUpdate_v1 ( FILE *  hdr_fh  )  [static]

Definition at line 194 of file Rbu_Linux.cpp.

References monoUpdateLoop(), rbu_v1_mono_data_file, rbu_v1_mono_size_file, rbu_v1_pkt_size_file, and setSize().

Referenced by dellBiosUpdate().

static void rbu::doMonoUpdate_v2 ( FILE *  hdr_fh  )  [static]

Definition at line 329 of file Rbu_Linux.cpp.

References monoUpdateLoop(), rbu_v2_fw_data_file, and setLoadValue().

Referenced by dellBiosUpdate().

static void rbu::doPacketUpdate_v0 ( FILE *  hdr_fh  )  [static]

Definition at line 222 of file Rbu_Linux.cpp.

References pktUpdateLoop(), RBU_PACKET_SIZE, rbu_v0_data_file, rbu_v0_size_file, and setSize().

Referenced by dellBiosUpdate().

static void rbu::doPacketUpdate_v1 ( FILE *  hdr_fh  )  [static]

Definition at line 182 of file Rbu_Linux.cpp.

References pktUpdateLoop(), RBU_PACKET_SIZE, rbu_v1_mono_size_file, rbu_v1_pkt_data_file, rbu_v1_pkt_size_file, and setSize().

Referenced by dellBiosUpdate().

static void rbu::doPacketUpdate_v2 ( FILE *  hdr_fh  )  [static]

Definition at line 318 of file Rbu_Linux.cpp.

References pktUpdateLoop(), RBU_PACKET_SIZE, rbu_v2_fw_data_file, rbu_v2_pkt_size_file, setLoadValue(), and setSize().

Referenced by dellBiosUpdate().

driver_type rbu::getDriverType (  ) 

Definition at line 58 of file Rbu_Linux.cpp.

References rbu_linux_v0, rbu_linux_v1, rbu_linux_v2, rbu_unsupported, rbu_v0_data_file, rbu_v1_mono_data_file, and rbu_v2_img_type_file.

Referenced by cancelDellBiosUpdate(), and dellBiosUpdate().

packet_type getSupportedPacketType ( void   ) 

Definition at line 343 of file RbuHdr.cpp.

References SmbiosFactory::getFactory(), SmbiosFactory::getSingleton(), smbios::getU8_FromItem(), pt_mono, pt_packet, and RBU_SMBIOS_STRUCT.

Referenced by dellBiosUpdate().

static void rbu::monoUpdateLoop ( FILE *  hdr_fh,
FILE *  data_fh 
) [static]

Definition at line 141 of file Rbu_Linux.cpp.

Referenced by doMonoUpdate_v0(), doMonoUpdate_v1(), and doMonoUpdate_v2().

ostream& rbu::operator<< ( ostream &  cout,
const IRbuHdr &  hdr 
)

Definition at line 161 of file RbuHdr.cpp.

References IRbuHdr::streamify().

std::ostream& rbu::operator<< ( std::ostream &  cout,
const IRbuHdr &  item 
)

static void rbu::pktUpdateLoop ( FILE *  hdr_fh,
const char *  packetFilename,
char *  buffer,
size_t  bufSize,
bool  openclose 
) [static]

Definition at line 101 of file Rbu_Linux.cpp.

References checksumPacket(), createPacket(), rbu_packet::pktData, rbu_packet::pktNum, and writePacket().

Referenced by doPacketUpdate_v0(), doPacketUpdate_v1(), and doPacketUpdate_v2().

static void rbu::setLoadValue ( char  val  )  [static]

Definition at line 301 of file Rbu_Linux.cpp.

References rbu_v2_fw_load_file, and waitForFile().

Referenced by cancelDellBiosUpdate(), doMonoUpdate_v2(), and doPacketUpdate_v2().

static void rbu::setPacketType ( packet_type  type,
const char *  fn = rbu_v2_img_type_file 
) [static]

Definition at line 264 of file Rbu_Linux.cpp.

References pt_any, pt_init, pt_mono, and pt_packet.

Referenced by cancelDellBiosUpdate(), and dellBiosUpdate().

static void rbu::setSize ( const char *  fn,
size_t  sz 
) [static]

Definition at line 166 of file Rbu_Linux.cpp.

Referenced by cancelDellBiosUpdate(), doMonoUpdate_v0(), doMonoUpdate_v1(), doPacketUpdate_v0(), doPacketUpdate_v1(), and doPacketUpdate_v2().

void splitNewVersion ( std::string  ver,
unsigned int &  maj,
unsigned int &  min,
unsigned int &  ext 
)

Definition at line 248 of file RbuHdr.cpp.

References DCOUT.

Referenced by compareNewBiosVersion(), and testRbu::testRbuNewVerSplit().

static string rbu::stringToLower ( string  in  )  [static]

Definition at line 198 of file RbuHdr.cpp.

Referenced by compareBiosVersion().

static void rbu::waitForFile ( const char *  fn,
time_t  wait 
) [static]

Definition at line 294 of file Rbu_Linux.cpp.

Referenced by setLoadValue().

static FILE* rbu::writePacket ( const char *  fn,
const char *  buffer,
size_t  bufSize,
bool  openclose 
) [static]

Definition at line 70 of file Rbu_Linux.cpp.

Referenced by pktUpdateLoop().


Variable Documentation

const int BIOSVER_OVERRIDE = 2

Definition at line 52 of file DellRbu.h.

struct rbu::rbu_hdr_file_header LIBSMBIOS_PACKED_ATTR

struct rbu::rbu_packet_0 LIBSMBIOS_PACKED_ATTR

struct rbu::rbu_packet LIBSMBIOS_PACKED_ATTR

const int NUM_SYS_ID_IN_HDR = 12

Definition at line 102 of file RbuLowLevel.h.

const int RBU_PACKET_SIZE = 4096

Definition at line 56 of file Rbu_Linux.cpp.

Referenced by doPacketUpdate_v0(), doPacketUpdate_v1(), and doPacketUpdate_v2().

const char* rbu_v0_data_file = "/proc/dell/rbu/rbudata"

Definition at line 43 of file Rbu_Linux.cpp.

Referenced by doMonoUpdate_v0(), doPacketUpdate_v0(), and getDriverType().

const char* rbu_v0_size_file = "/proc/dell/rbu/rbudatasize"

Definition at line 44 of file Rbu_Linux.cpp.

Referenced by cancelDellBiosUpdate(), doMonoUpdate_v0(), and doPacketUpdate_v0().

const char* rbu_v0_type_file = "/proc/dell/rbu/image_type"

Definition at line 42 of file Rbu_Linux.cpp.

Referenced by cancelDellBiosUpdate(), and dellBiosUpdate().

const char* rbu_v1_mono_data_file = "/sys/firmware/rbu/rbudata"

Definition at line 46 of file Rbu_Linux.cpp.

Referenced by doMonoUpdate_v1(), and getDriverType().

const char* rbu_v1_mono_size_file = "/sys/firmware/rbu/rbudatasize"

Definition at line 47 of file Rbu_Linux.cpp.

Referenced by cancelDellBiosUpdate(), doMonoUpdate_v1(), and doPacketUpdate_v1().

const char* rbu_v1_pkt_data_file = "/sys/firmware/rbu/packetdata"

Definition at line 48 of file Rbu_Linux.cpp.

Referenced by doPacketUpdate_v1().

const char* rbu_v1_pkt_size_file = "/sys/firmware/rbu/packetdatasize"

Definition at line 49 of file Rbu_Linux.cpp.

Referenced by cancelDellBiosUpdate(), doMonoUpdate_v1(), and doPacketUpdate_v1().

const char* rbu_v2_fw_data_file = "/sys/class/firmware/dell_rbu/data"

Definition at line 51 of file Rbu_Linux.cpp.

Referenced by doMonoUpdate_v2(), and doPacketUpdate_v2().

const char* rbu_v2_fw_load_file = "/sys/class/firmware/dell_rbu/loading"

Definition at line 52 of file Rbu_Linux.cpp.

Referenced by setLoadValue().

const char* rbu_v2_img_type_file = "/sys/devices/platform/dell_rbu/image_type"

Definition at line 53 of file Rbu_Linux.cpp.

Referenced by cancelDellBiosUpdate(), dellBiosUpdate(), and getDriverType().

const char* rbu_v2_pkt_size_file = "/sys/devices/platform/dell_rbu/packet_size"

Definition at line 54 of file Rbu_Linux.cpp.

Referenced by doPacketUpdate_v2().

const int SYSID_OVERRIDE = 1

Definition at line 51 of file DellRbu.h.


Generated on Sat Apr 21 11:36:10 2007 for SMBIOS Library by  doxygen 1.5.2