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 |
enum driver_type |
enum packet_type |
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] |
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 | |||
) |
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] |
static void rbu::waitForFile | ( | const char * | fn, | |
time_t | wait | |||
) | [static] |
static FILE* rbu::writePacket | ( | const char * | fn, | |
const char * | buffer, | |||
size_t | bufSize, | |||
bool | openclose | |||
) | [static] |
const int BIOSVER_OVERRIDE = 2 |
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" |
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" |
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" |
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" |
const int SYSID_OVERRIDE = 1 |