Add KBOOT.
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
/*
|
||||
* File: BootImageGenerator.h
|
||||
*
|
||||
* Copyright (c) Freescale Semiconductor, Inc. All rights reserved.
|
||||
* See included license file for license details.
|
||||
*/
|
||||
#if !defined(_BootImageGenerator_h_)
|
||||
#define _BootImageGenerator_h_
|
||||
|
||||
#include "OutputSection.h"
|
||||
#include "BootImage.h"
|
||||
#include "OptionContext.h"
|
||||
|
||||
namespace elftosb
|
||||
{
|
||||
/*!
|
||||
* \brief Abstract base class for generators of specific boot image formats.
|
||||
*
|
||||
* Subclasses implement a concrete generator for a certain boot image format, but
|
||||
* they all have the same interface.
|
||||
*
|
||||
* After creating an instance of a subclass the user adds OutputSection objects
|
||||
* to the generator. These objects describe discrete sections within the resulting
|
||||
* boot image file. If the format does not support multiple sections then only
|
||||
* the first will be used.
|
||||
*
|
||||
* Options that are common to all boot image formats are handled by methods
|
||||
* defined in this class. These are the current common options:
|
||||
* - productVersion
|
||||
* - componentVersion
|
||||
* - driveTag
|
||||
*/
|
||||
class BootImageGenerator
|
||||
{
|
||||
public:
|
||||
//! \brief Constructor.
|
||||
BootImageGenerator() {}
|
||||
//! \brief Destructor.
|
||||
virtual ~BootImageGenerator() {}
|
||||
//! \brief Add another section to the output.
|
||||
void addOutputSection(OutputSection *section) { m_sections.push_back(section); }
|
||||
//! \brief Set the global option context.
|
||||
void setOptionContext(OptionContext *context) { m_options = context; }
|
||||
//! \brief Pure virtual method to generate the output BootImage from input sections.
|
||||
virtual BootImage *generate() = 0;
|
||||
|
||||
protected:
|
||||
//! Type for a list of model output sections.
|
||||
typedef std::vector<OutputSection *> section_vector_t;
|
||||
|
||||
section_vector_t m_sections; //!< Requested output sections.
|
||||
OptionContext *m_options; //!< Global option context.
|
||||
|
||||
//! \brief Handle common product and component version options.
|
||||
void processVersionOptions(BootImage *image);
|
||||
|
||||
//! \brief Handle the common option which sets the system drive tag.
|
||||
void processDriveTagOption(BootImage *image);
|
||||
};
|
||||
|
||||
}; // namespace elftosb
|
||||
|
||||
#endif // _BootImageGenerator_h_
|
||||
Reference in New Issue
Block a user