flash_device.hh (10905:a6ca6831e775) flash_device.hh (10913:38dbdeea7f1f)
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*/
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);
65 DrainState drain() M5_ATTR_OVERRIDE;
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 /**
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__
179 * when the disk is first started we are unsure of the number of
180 * used pages, this variable will help determining what we do know.
181 */
182 std::vector<uint32_t> unknownPages;
183 /** address to logic place has a block and a page field*/
184 std::vector<struct PageMapEntry> locationTable;
185 /** number of valid entries per block*/
186 std::vector<uint32_t> blockValidEntries;
187 /** number of empty entries*/
188 std::vector<uint32_t> blockEmptyEntries;
189
190 /**This vector of queues keeps track of all the callbacks per plane*/
191 std::vector<std::deque<struct CallBackEntry> > planeEventQueue;
192
193 /** Completion event */
194 EventWrapper<FlashDevice, &FlashDevice::actionComplete> planeEvent;
195};
196#endif //__DEV_ARM_FLASH_DEVICE_HH__