Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

/*
 * File:	DataSourceImager.h
 *
 * Copyright (c) Freescale Semiconductor, Inc. All rights reserved.
 * See included license file for license details.
 */
#if !defined(_DataSourceImager_h_)
#define _DataSourceImager_h_

#include "Blob.h"
#include "DataSource.h"

namespace elftosb {

/*!
 * \brief Converts a DataSource into a single binary buffer.
 */
class DataSourceImager : public Blob
{
public:
	//! \brief Constructor.
	DataSourceImager();
	
	//! \name Setup
	//@{
	void setBaseAddress(uint32_t address);
	void setFillPattern(uint8_t pattern);
	//@}
	
	void reset();
	
	//! \name Accessors
	//@{
	uint32_t getBaseAddress() { return m_baseAddress; }
	//@}
	
	//! \name Operations
	//@{
	//! \brief Adds all of the segments of which \a dataSource is composed.
	void addDataSource(DataSource * source);
	
	//! \brief Adds the data from one data segment.
	void addDataSegment(DataSource::Segment * segment);
	//@}

protected:
	uint8_t m_fill;
	uint32_t m_baseAddress;
	bool m_isBaseAddressSet;
};

};

#endif // _DataSourceImager_h_