Skip to main content
Version: 1.14

Enumerated Types

SEFDefectManagementMethod

Members of SEFDefectManagementMethod

MemberDescription
kPackedOffset 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.
kFragmentedDefective 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.
kPerfectOffset 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

MemberDescription
kSuperBlockCurrently the only mode supported by the API
kInDriveGCReserved for future use
kVirtualSSDReserved for future use

SEFErrorRecoveryMode

Members of SEFErrorRecoveryMode

MemberDescription
kAutomaticAutomatic recovery mode
kHostControlledHost is responsible for recovery

SEFDeadlineType

Members of SEFDeadlineType

MemberDescription
kFastestDoes not attempt a corrective action, but instead sends a notification to allow higher layer to read from a separate redundant store.
kTypicalAttempts to perform basic error recovery in the event of a read error condition
kLongAttempts to perform more advanced error recovery in the event of a read error condition
kHeroicAttempts to perform full recovery in the event of a read error condition

SEFNotificationType

Asynchronous notifications from SEF.

Members of SEFNotificationType

MemberDescription
kAddressUpdateThe flash address has changed
kUnflushedDataThe super block data was flushed to the Flash Memory
kRequirePatrolThe super block requires to be patrolled; A list of super blocks requiring patrol can be retrieved using SEFGetCheckList
kRequireMaintenanceThe super block requires maintenance; In other words, the data should be copied off and the super block should be freed
kReducedCapacityThe Virtual Device's capacity has been reduced
kUnreadableDataThe data stored at the flash address cannot be read
kSuperBlockStateChangedThe super block's state has changed
kOutOfCapacityThe Virtual Device is full
kOutOfPSLCCapacityThe Virtual Device is out of pSLC
kBufferReleaseThe buffer pointed to by iov can be freed

SEFSuperBlockType

Members of SEFSuperBlockType

MemberDescription
kForWriteSuper block is for writes
kForPSLCWriteSuper block is for pSLC writes

SEFSuperBlockState

Members of SEFSuperBlockState

MemberDescription
kSuperBlockClosedThis is the state of super blocks which retain effective data after all super pages have been programmed
kSuperBlockOpenedByEraseThis is the state of super blocks in the middle of being programmed and were allocated by SEFAllocateSuperBlock()
kSuperBlockOpenedByPlacementIdThis 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

MemberDescription
kSefIntegretyUnknownThe block needs to be patrolled
kSefIntegretyGoodReading the block requires little to no error correction
kSefIntegretyAllowableReading the block requires an acceptable amount of error correction
kSefIntegretyMarginalThe data in the block needs to be relocated

SEFPropertyID

Members of SEFPropertyID

MemberDescription
kSefPropertyQoSDomainIDGet QoS Domain ID in qosID
kSefPropertyVirtualDeviceIDGet Virtual Device ID as vdID
kSefPropertyUnitNumberGet Unit number as intVal
kSefPropertyQoSNotifyGet QoS notification fnc as qosNotify
kSefPropertyPrivateDataGet/Set private data
kSefPropertyNumActiveRequestsGet Number of active requests as intVal

SEFPropertyType

Members of SEFPropertyType

MemberDescription
kSefPropertyTypeInvalidThe SEFPropertyID is not supported
kSefPropertyTypeNullThe Property has no value (not set)
kSefPropertyTypeIntThe intVal member is valid
kSefPropertyTypePtrThe ptr member is valid
kSefPropertyTypeQoSDomainIDThe qosID member is valid
kSefPropertyTypeVirtualDeviceIDThe vdID member is valid
kSefPropertyTypeQoSNotifyThe qosNotify member is valid

SEFCopySourceType

The source format to be used when copying a super block.

Members of SEFCopySourceType

MemberDescription
kBitmapUse validBitmap as the copy source
kListUse flashAddressList as the copy source

SEFIOCBFlags

Members of SEFIOCBFlags

MemberDescription
kSefIoFlagDoneFlag for polled I/O - library sets this bit to a 1 value once the command completes
kSefIoFlagNotifyBufferReleaseFlag set to indicate caller is managing buffer lifetime. See Also: SEFWriteWithoutPhysicalAddress()
kSefIoFlagCommitFlag set to force data to flash before completing, potentially adding padding
kSefIoFlagOverrideFlag set to apply weight override to i/o