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