Home | History | Annotate | Line # | Download | only in elftosb2
BootImageGenerator.cpp revision 1.1.4.2
      1 /*
      2  *  BootImageGenerator.cpp
      3  *  elftosb
      4  *
      5  * Copyright (c) Freescale Semiconductor, Inc. All rights reserved.
      6  * See included license file for license details.
      7  */
      8 
      9 #include "BootImageGenerator.h"
     10 #include "Logging.h"
     11 
     12 //! Name of product version option.
     13 #define kProductVersionOption "productVersion"
     14 
     15 //! Name of component version option.
     16 #define kComponentVersionOption "componentVersion"
     17 
     18 //! Name of option that specifies the drive tag for this .sb file.
     19 #define kDriveTagOption "driveTag"
     20 
     21 using namespace elftosb;
     22 
     23 void BootImageGenerator::processVersionOptions(BootImage * image)
     24 {
     25 	// bail if no option context was set
     26 	if (!m_options)
     27 	{
     28 		return;
     29 	}
     30 
     31 	const StringValue * stringValue;
     32 	version_t version;
     33 
     34     // productVersion
     35 	if (m_options->hasOption(kProductVersionOption))
     36 	{
     37 		stringValue = dynamic_cast<const StringValue *>(m_options->getOption(kProductVersionOption));
     38 		if (stringValue)
     39 		{
     40 			version.set(*stringValue);
     41 			image->setProductVersion(version);
     42 		}
     43         else
     44         {
     45             Log::log(Logger::WARNING, "warning: productVersion option is an unexpected type\n");
     46         }
     47 	}
     48 
     49     // componentVersion
     50 	if (m_options->hasOption(kComponentVersionOption))
     51 	{
     52 		stringValue = dynamic_cast<const StringValue *>(m_options->getOption(kComponentVersionOption));
     53 		if (stringValue)
     54 		{
     55 			version.set(*stringValue);
     56 			image->setComponentVersion(version);
     57 		}
     58         else
     59         {
     60             Log::log(Logger::WARNING, "warning: componentVersion option is an unexpected type\n");
     61         }
     62 	}
     63 }
     64 
     65 void BootImageGenerator::processDriveTagOption(BootImage * image)
     66 {
     67 	if (m_options->hasOption(kDriveTagOption))
     68 	{
     69 		const IntegerValue * intValue = dynamic_cast<const IntegerValue *>(m_options->getOption(kDriveTagOption));
     70 		if (intValue)
     71 		{
     72 			image->setDriveTag(intValue->getValue());
     73 		}
     74         else
     75         {
     76             Log::log(Logger::WARNING, "warning: driveTag option is an unexpected type\n");
     77         }
     78 	}
     79 }
     80 
     81