Skip to main content
Version: 1.14

Callback Structures

SEFCommonIOCB

Members of SEFCommonIOCB

TypeNameDirectionDescription
struct SEFStatusstatusOutLibrary sets error field to a non-zero value to indicate any error when a command completes
int16_topcodeInShould never be accessed - for internal use by library
int16_tflagsIn/OutSEFIOCBFlags
int32_treservedInReserved, must be initialized to zero
void *param1InIgnored by the library; the caller can store context information that may be accessed from the completion function
void(*)(struct SEFCommonIOCB *)complete_funcInIf non-zero, treated as the address of a function to be called when a command completes

SEFWriteWithoutPhysicalAddressIOCB

Members of SEFWriteWithoutPhysicalAddressIOCB

TypeNameDirectionDescription
struct SEFCommonIOCBcommonIn/OutCommon fields for all IOCBs
struct SEFFlashAddressflashAddressInAddress of the super block for this write; -1 for auto-allocate, or can use value from previous super block allocation call
struct SEFUserAddressuserAddressInContains LBA information
struct SEFFlashAddress*tentativeAddressesOutList of tentative physical addresses return
const void *metadataInMetadata to write with data; The number of bytes per ADU required is SEFQoSDomainInfo::ADUsize.meta. May be NULL
const struct iovec*iovInA pointer to the scatter gather list
uint16_tiovcntInThe number of elements in the scatter gather list
struct SEFPlacementIDplacementIDInOnly valid if the flashAddress is auto allocated. A value from 0 to numPlacementIds – 1 indicating what logical data group to place this data in
uint32_tnumADUInLength in QoS Domain ADUs
uint32_tdistanceToEndOfSuperBlockOutReturn value in units of ADUs
struct SEFWriteOverridesoverridesInOverride parameters for scheduling purposes. Must set kSefIoFlagOverride in flags to apply

SEFReadWithPhysicalAddressIOCB

Members of SEFReadWithPhysicalAddressIOCB

TypeNameDirectionDescription
struct SEFCommonIOCBcommonIn/OutCommon fields for all IOCBs
struct SEFFlashAddressflashAddressInPhysical address for the read command; When the QoS Domain ID and block number are 0, the ADU offset is the root pointer index for the flash address to read.
struct SEFUserAddressuserAddressInContains LBA information
const struct iovec*iovInA pointer to the scatter gather list
void *metadataInReceives ADU metadata; The number of bytes per ADU required is SEFQoSDomainInfo::ADUsize.meta. May be NULL
size_tiovOffsetInStarting byte offset into iov array
uint32_tnumADUInNumber of ADUs to be read, maximum is superBlockCapacity
uint16_tiovcntInThe number of elements in the scatter gather list
struct SEFReadOverridesoverridesInOverride parameters for scheduling purposes. Must set kSefIoFlagOverride in flags to apply
uint16_t[3]reservedInreserved, must be initialized to 0

SEFReleaseSuperBlockIOCB

Members of SEFReleaseSuperBlockIOCB

TypeNameDirectionDescription
struct SEFCommonIOCBcommonIn/OutCommon fields for all IOCBs
struct SEFFlashAddressflashAddressInAddress of super block

SEFAllocateSuperBlockIOCB

IOCB for SEFAllocateSuperBlockAsync()

Members of SEFAllocateSuperBlockIOCB

TypeNameDirectionDescription
struct SEFCommonIOCBcommonIn/OutCommon fields for all IOCBs
struct SEFFlashAddressflashAddressOutAddress of super block
uint8_t *defectMapInOptional buffer to receive the block's defect map. Used for kFragmented QoS Domains. When supplied, the buffer must be at least as large as SEFQoSDomainInfo::defectMapSize.
struct SEFAllocateOverridesoverridesInOverride parameters for scheduling purposes. Must set kSefIoFlagOverride in flags to apply
enum SEFSuperBlockTypetypeInkForWrite or kForPSLCWrite

SEFCloseSuperBlockIOCB

IOCB for SEFCloseSuperBlockAsync()

Members of SEFCloseSuperBlockIOCB

TypeNameDirectionDescription
struct SEFCommonIOCBcommonIn/OutCommon fields for all IOCBs
struct SEFFlashAddressflashAddressInAddress of the super block

SEFNamelessCopyIOCB

Members of SEFNamelessCopyIOCB

TypeNameDirectionDescription
struct SEFCommonIOCBcommonIn/OutCommon fields for all IOCBs
SEFQoSHandledstQosHandleInHandle to the destination QoS Domain
struct SEFFlashAddresscopyDestinationInFlash address of destination super block
uint32_treserved_0InReserved, must be initialized to zero
uint32_tnumAddressChangeRecordsInMaximum number of ADUs to copy (size of addressChangeRequest userAddress array)
struct SEFAddressChangeRequest*addressChangeInfoOutOutput of changed addresses
struct SEFCopySourcecopySourceInPhysical addresses to copy
const struct SEFUserAddressFilter*filterInPointer to user address filter parameters, null for no filtering
struct SEFCopyOverridesoverridesInOverride parameters for scheduling purposes. Must set kSefIoFlagOverride in flags to apply