Deleted Added
sdiff udiff text old ( 10905:a6ca6831e775 ) new ( 10913:38dbdeea7f1f )
full compact
1/*
2 * Copyright (c) 2013-2015 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 48 unchanged lines hidden (view full) ---

57{
58 public:
59
60 /** Initialize functions*/
61 FlashDevice(const FlashDeviceParams*);
62 ~FlashDevice();
63
64 /** Checkpoint functions*/
65 unsigned int drain(DrainManager *dm);
66 void checkDrain();
67
68 void serialize(CheckpointOut &cp) const M5_ATTR_OVERRIDE;
69 void unserialize(CheckpointIn &cp) M5_ATTR_OVERRIDE;
70
71 private:
72 /** Defines the possible actions to the flash*/
73 enum Actions {

--- 97 unchanged lines hidden (view full) ---

171 /** Disk dimensions in pages and blocks */
172 uint32_t pagesPerBlock;
173 uint32_t pagesPerDisk;
174 uint32_t blocksPerDisk;
175
176 uint32_t planeMask;
177
178 /**
179 * drain manager
180 * Needed to be able to implement checkpoint functionality
181 */
182
183 DrainManager *drainManager;
184
185 /**
186 * when the disk is first started we are unsure of the number of
187 * used pages, this variable will help determining what we do know.
188 */
189 std::vector<uint32_t> unknownPages;
190 /** address to logic place has a block and a page field*/
191 std::vector<struct PageMapEntry> locationTable;
192 /** number of valid entries per block*/
193 std::vector<uint32_t> blockValidEntries;
194 /** number of empty entries*/
195 std::vector<uint32_t> blockEmptyEntries;
196
197 /**This vector of queues keeps track of all the callbacks per plane*/
198 std::vector<std::deque<struct CallBackEntry> > planeEventQueue;
199
200 /** Completion event */
201 EventWrapper<FlashDevice, &FlashDevice::actionComplete> planeEvent;
202};
203#endif //__DEV_ARM_FLASH_DEVICE_HH__