Enumerated Types
SEFDefectManagementMethod
Members of SEFDefectManagementMethod
Member | Description |
---|---|
kPacked | Offset address in a super block is consecutive. Size of super block is reduced with defected block(s). This results in slower reads due to the extra level of indirection incurred. |
kFragmented | Defective blocks are left in place, and are simply marked as non-addressable. Over time, this can result in a device with a gradually decreasing usable size. This scheme has the fastest read performance, but comes at the cost of additional management complexity that the host will be responsible for. |
kPerfect | Offset address is consecutive. Size of super block is fixed. Number of super blocks is reduced with defected block(s). This has the slowest read performance because this remapping has the potential to cross block boundaries |
SEFAPIIdentifier
Members of SEFAPIIdentifier
Member | Description |
---|---|
kSuperBlock | Currently the only mode supported by the API |
kInDriveGC | Reserved for future use |
kVirtualSSD | Reserved for future use |
SEFErrorRecoveryMode
Members of SEFErrorRecoveryMode
Member | Description |
---|---|
kAutomatic | Automatic recovery mode |
kHostControlled | Host is responsible for recovery |
SEFDeadlineType
Members of SEFDeadlineType
Member | Description |
---|---|
kFastest | Does not attempt a corrective action, but instead sends a notification to allow higher layer to read from a separate redundant store. |
kTypical | Attempts to perform basic error recovery in the event of a read error condition |
kLong | Attempts to perform more advanced error recovery in the event of a read error condition |
kHeroic | Attempts to perform full recovery in the event of a read error condition |
SEFNotificationType
Asynchronous notifications from SEF.
Members of SEFNotificationType
Member | Description |
---|---|
kAddressUpdate | The flash address has changed |
kUnflushedData | The super block data was flushed to the Flash Memory |
kRequirePatrol | The super block requires to be patrolled; A list of super blocks requiring patrol can be retrieved using SEFGetCheckList |
kRequireMaintenance | The super block requires maintenance; In other words, the data should be copied off and the super block should be freed |
kReducedCapacity | The Virtual Device's capacity has been reduced |
kUnreadableData | The data stored at the flash address cannot be read |
kSuperBlockStateChanged | The super block's state has changed |
kOutOfCapacity | The Virtual Device is full |
kOutOfPSLCCapacity | The Virtual Device is out of pSLC |
kBufferRelease | The buffer pointed to by iov can be freed |
SEFSuperBlockType
Members of SEFSuperBlockType
Member | Description |
---|---|
kForWrite | Super block is for writes |
kForPSLCWrite | Super block is for pSLC writes |
SEFSuperBlockState
Members of SEFSuperBlockState
Member | Description |
---|---|
kSuperBlockClosed | This is the state of super blocks which retain effective data after all super pages have been programmed |
kSuperBlockOpenedByErase | This is the state of super blocks in the middle of being programmed and were allocated by SEFAllocateSuperBlock() |
kSuperBlockOpenedByPlacementId | This is the state of super blocks in the middle of being programmed and were allocated automatically by placement id |
SEFDataIntegrity
Integrity of a super block.
Members of SEFDataIntegrity
Member | Description |
---|---|
kSefIntegretyUnknown | The block needs to be patrolled |
kSefIntegretyGood | Reading the block requires little to no error correction |
kSefIntegretyAllowable | Reading the block requires an acceptable amount of error correction |
kSefIntegretyMarginal | The data in the block needs to be relocated |
SEFPropertyID
Members of SEFPropertyID
Member | Description |
---|---|
kSefPropertyQoSDomainID | Get QoS Domain ID in qosID |
kSefPropertyVirtualDeviceID | Get Virtual Device ID as vdID |
kSefPropertyUnitNumber | Get Unit number as intVal |
kSefPropertyQoSNotify | Get QoS notification fnc as qosNotify |
kSefPropertyPrivateData | Get/Set private data |
kSefPropertyNumActiveRequests | Get Number of active requests as intVal |
SEFPropertyType
Members of SEFPropertyType
Member | Description |
---|---|
kSefPropertyTypeInvalid | The SEFPropertyID is not supported |
kSefPropertyTypeNull | The Property has no value (not set) |
kSefPropertyTypeInt | The intVal member is valid |
kSefPropertyTypePtr | The ptr member is valid |
kSefPropertyTypeQoSDomainID | The qosID member is valid |
kSefPropertyTypeVirtualDeviceID | The vdID member is valid |
kSefPropertyTypeQoSNotify | The qosNotify member is valid |
SEFCopySourceType
The source format to be used when copying a super block.
Members of SEFCopySourceType
Member | Description |
---|---|
kBitmap | Use validBitmap as the copy source |
kList | Use flashAddressList as the copy source |
SEFIOCBFlags
Members of SEFIOCBFlags
Member | Description |
---|---|
kSefIoFlagDone | Flag for polled I/O - library sets this bit to a 1 value once the command completes |
kSefIoFlagNotifyBufferRelease | Flag set to indicate caller is managing buffer lifetime. See Also: SEFWriteWithoutPhysicalAddress() |
kSefIoFlagCommit | Flag set to force data to flash before completing, potentially adding padding |
kSefIoFlagOverride | Flag set to apply weight override to i/o |