Add KBOOT.
This commit is contained in:
88
apps/elftosb/common/OutputSection.h
Normal file
88
apps/elftosb/common/OutputSection.h
Normal file
@@ -0,0 +1,88 @@
|
||||
/*
|
||||
* File: OutputSection.h
|
||||
*
|
||||
* Copyright (c) Freescale Semiconductor, Inc. All rights reserved.
|
||||
* See included license file for license details.
|
||||
*/
|
||||
#if !defined(_OutputSection_h_)
|
||||
#define _OutputSection_h_
|
||||
|
||||
#include "Operation.h"
|
||||
#include "smart_ptr.h"
|
||||
#include "Blob.h"
|
||||
#include "OptionContext.h"
|
||||
|
||||
namespace elftosb
|
||||
{
|
||||
/*!
|
||||
* @brief Base class for data model of sections of the output file.
|
||||
*/
|
||||
class OutputSection
|
||||
{
|
||||
public:
|
||||
OutputSection()
|
||||
: m_id(0)
|
||||
, m_options(0)
|
||||
{
|
||||
}
|
||||
OutputSection(uint32_t identifier)
|
||||
: m_id(identifier)
|
||||
, m_options(0)
|
||||
{
|
||||
}
|
||||
virtual ~OutputSection() {}
|
||||
void setIdentifier(uint32_t identifier) { m_id = identifier; }
|
||||
uint32_t getIdentifier() const { return m_id; }
|
||||
//! \brief Set the option context.
|
||||
//!
|
||||
//! The output section object will assume ownership of the option context
|
||||
//! and delete it when the section is deleted.
|
||||
inline void setOptions(OptionContext *context) { m_options = context; }
|
||||
//! \brief Return the option context.
|
||||
inline const OptionContext *getOptions() const { return m_options; }
|
||||
protected:
|
||||
uint32_t m_id; //!< Unique identifier.
|
||||
smart_ptr<OptionContext> m_options; //!< Options associated with just this section.
|
||||
};
|
||||
|
||||
/*!
|
||||
* @brief A section of the output that contains boot operations.
|
||||
*/
|
||||
class OperationSequenceSection : public OutputSection
|
||||
{
|
||||
public:
|
||||
OperationSequenceSection()
|
||||
: OutputSection()
|
||||
{
|
||||
}
|
||||
OperationSequenceSection(uint32_t identifier)
|
||||
: OutputSection(identifier)
|
||||
{
|
||||
}
|
||||
|
||||
OperationSequence &getSequence() { return m_sequence; }
|
||||
protected:
|
||||
OperationSequence m_sequence;
|
||||
};
|
||||
|
||||
/*!
|
||||
* @brief A section of the output file that contains arbitrary binary data.
|
||||
*/
|
||||
class BinaryDataSection : public OutputSection, public Blob
|
||||
{
|
||||
public:
|
||||
BinaryDataSection()
|
||||
: OutputSection()
|
||||
, Blob()
|
||||
{
|
||||
}
|
||||
BinaryDataSection(uint32_t identifier)
|
||||
: OutputSection(identifier)
|
||||
, Blob()
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
}; // namespace elftosb
|
||||
|
||||
#endif // _OutputSection_h_
|
||||
Reference in New Issue
Block a user