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