Files
bootloader/apps/elftosb/common/BootImage.h
László Monda e6c1fce5b4 Add KBOOT.
2016-08-10 01:45:15 +02:00

51 lines
1.4 KiB
C++

/*
* File: BootImage.h
*
* Copyright (c) Freescale Semiconductor, Inc. All rights reserved.
* See included license file for license details.
*/
#if !defined(_BootImage_h_)
#define _BootImage_h_
#include <iostream>
#include "Version.h"
namespace elftosb
{
/*!
* \brief Abstract base class for all boot image format classes.
*
* Provides virtual methods for all of the common features between different
* boot image formats. These are the product and component version numbers
* and the drive tag.
*
* Also provided is the virtual method writeToStream() that lets the caller
* stream out the boot image without knowing the underlying format type.
*/
class BootImage
{
public:
//! \brief Constructor.
BootImage() {}
//! \brief Destructor.
virtual ~BootImage() {}
//! \name Versions
//@{
virtual void setProductVersion(const version_t &version) = 0;
virtual void setComponentVersion(const version_t &version) = 0;
//@}
//! \brief Specify the drive tag to be set in the output file header.
virtual void setDriveTag(uint16_t tag) = 0;
//! \brief Returns a string containing the preferred file extension for image format.
virtual std::string getFileExtension() const = 0;
//! \brief Write the boot image to an output stream.
virtual void writeToStream(std::ostream &stream) = 0;
};
}; // namespace elftosb
#endif // _BootImage_h_