]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - tools/elftosb/common/DataSourceImager.h
Unified codebase for TX28, TX48, TX51, TX53
[karo-tx-uboot.git] / tools / elftosb / common / DataSourceImager.h
1 /*
2  * File:        DataSourceImager.h
3  *
4  * Copyright (c) Freescale Semiconductor, Inc. All rights reserved.
5  * See included license file for license details.
6  */
7 #if !defined(_DataSourceImager_h_)
8 #define _DataSourceImager_h_
9
10 #include "Blob.h"
11 #include "DataSource.h"
12
13 namespace elftosb {
14
15 /*!
16  * \brief Converts a DataSource into a single binary buffer.
17  */
18 class DataSourceImager : public Blob
19 {
20 public:
21         //! \brief Constructor.
22         DataSourceImager();
23         
24         //! \name Setup
25         //@{
26         void setBaseAddress(uint32_t address);
27         void setFillPattern(uint8_t pattern);
28         //@}
29         
30         void reset();
31         
32         //! \name Accessors
33         //@{
34         uint32_t getBaseAddress() { return m_baseAddress; }
35         //@}
36         
37         //! \name Operations
38         //@{
39         //! \brief Adds all of the segments of which \a dataSource is composed.
40         void addDataSource(DataSource * source);
41         
42         //! \brief Adds the data from one data segment.
43         void addDataSegment(DataSource::Segment * segment);
44         //@}
45
46 protected:
47         uint8_t m_fill;
48         uint32_t m_baseAddress;
49         bool m_isBaseAddressSet;
50 };
51
52 };
53
54 #endif // _DataSourceImager_h_