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 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 /** |
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__ |