88 lines
1.7 KiB
C++
88 lines
1.7 KiB
C++
/*
|
|
* File: Operation.cpp
|
|
*
|
|
* Copyright (c) Freescale Semiconductor, Inc. All rights reserved.
|
|
* See included license file for license details.
|
|
*/
|
|
|
|
#include "Operation.h"
|
|
|
|
using namespace elftosb;
|
|
|
|
//! The operation object takes ownership of \a source.
|
|
//!
|
|
//! Cross references between the target and source are updated.
|
|
void LoadOperation::setSource(DataSource *source)
|
|
{
|
|
m_source = source;
|
|
|
|
if (m_target)
|
|
{
|
|
m_target->setSource(m_source);
|
|
}
|
|
if (m_source)
|
|
{
|
|
m_source->setTarget(m_target);
|
|
}
|
|
}
|
|
|
|
//! The operation object takes ownership of \a target.
|
|
//!
|
|
//! Cross references between the target and source are updated.
|
|
void LoadOperation::setTarget(DataTarget *target)
|
|
{
|
|
m_target = target;
|
|
|
|
if (m_target)
|
|
{
|
|
m_target->setSource(m_source);
|
|
}
|
|
if (m_source)
|
|
{
|
|
m_source->setTarget(m_target);
|
|
}
|
|
}
|
|
|
|
void FlashEraseOperation::getRange(uint32_t *start, uint32_t *count) const
|
|
{
|
|
if (start)
|
|
{
|
|
*start = m_startAddress;
|
|
}
|
|
if (count)
|
|
{
|
|
*count = m_byteCount;
|
|
}
|
|
}
|
|
|
|
void MemEnableOperation::getRange(uint32_t *start, uint32_t *count) const
|
|
{
|
|
if (start)
|
|
{
|
|
*start = m_startAddress;
|
|
}
|
|
if (count)
|
|
{
|
|
*count = m_byteCount;
|
|
}
|
|
}
|
|
|
|
//! Disposes of operations objects in the sequence.
|
|
OperationSequence::~OperationSequence()
|
|
{
|
|
// iterator_t it = begin();
|
|
// for (; it != end(); ++it)
|
|
// {
|
|
// delete it->second;
|
|
// }
|
|
}
|
|
|
|
void OperationSequence::append(const OperationSequence *other)
|
|
{
|
|
const_iterator_t it = other->begin();
|
|
for (; it != other->end(); ++it)
|
|
{
|
|
m_operations.push_back(*it);
|
|
}
|
|
}
|