diff options
Diffstat (limited to 'riff/ProcessRawImage.cpp')
-rwxr-xr-x | riff/ProcessRawImage.cpp | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/riff/ProcessRawImage.cpp b/riff/ProcessRawImage.cpp new file mode 100755 index 0000000..a46337b --- /dev/null +++ b/riff/ProcessRawImage.cpp @@ -0,0 +1,79 @@ +/* + * ProcessRawImage.cpp + * + * Copyright (C) ST-Ericsson SA 2011 + * Authors: Srimanta Panda <srimanta.panda@stericsson.com>, + * Ola Borgelin <ola.borgelin@stericsson.com>, + * Karin Hedlund <karin.hedlund@stericsson.com>, + * Markus Andersson <markus.m.andersson@stericsson.com> for ST-Ericsson. + * License terms: 3-clause BSD license + * + */ + +/* + * @addtogroup Commands + * @{ + */ + +/******************************************************************************* + * Includes + ******************************************************************************/ +#include "ProcessRawImage.h" +#include <stdlib.h> +#include <sys/stat.h> +#include "LCDriver.h" +using namespace flash; + +ProcessRawImage::ProcessRawImage(const char* path, uint64 start, int useBulk, int deleteBuffers): + logger_("ProcessRawImage") +{ + pchPath = path; + uiStart = start; + uiDevice = 0; // Flashing the flash0 device + iUseBulk = useBulk; + iDeleteBuffers = deleteBuffers; +} + +int ProcessRawImage::run(DUT* dut) +{ + logger_.log(Logger::PROGRESS, "Flashing raw image..."); + uint64 length = filesize(pchPath); + int error = 0; + + if (length != 0) { + error = Flash_FlashRaw(dut->getLCDContext(), pchPath, uiStart, length, uiDevice, iUseBulk, iDeleteBuffers); + if (0 != error) + { + logger_.log(Logger::ERROR,"LCD ERROR: Process raw image failed %d", error); + return error; + } + + // Need a new line braek after the progress bar + logger_.logRaw("\n"); + logger_.log(Logger::PROGRESS, "Flashing finished successfully"); + } else { + error = -1; + logger_.log(Logger::ERROR,"LCD ERROR: Flash image is empty or doesn't exist %d", error); + return error; + } + + return error; +} + +size_t ProcessRawImage::filesize(const char* filename) +{ + struct stat st; + + if (stat(filename, &st) == 0) + return st.st_size; + + return 0; +} + +const char * ProcessRawImage::get_command_name() +{ + return (char *)"PROCESSRAWIMAGE"; +} + + +/* @} */ |