Callback Structures
SEFCommonIOCB
Members of SEFCommonIOCB
| Type | Name | Direction | Description |
|---|---|---|---|
| struct SEFStatus | status | Out | Library sets error field to a non-zero value to indicate any error when a command completes |
| int16_t | opcode | In | Should never be accessed - for internal use by library |
| int16_t | flags | In/Out | SEFIOCBFlags |
| int32_t | reserved | In | Reserved, must be initialized to zero |
| void * | param1 | In | Ignored by the library; the caller can store context information that may be accessed from the completion function |
| void()(struct SEFCommonIOCB ) | complete_func | In | If non-zero, treated as the address of a function to be called when a command completes |
SEFWriteWithoutPhysicalAddressIOCB
Members of SEFWriteWithoutPhysicalAddressIOCB
| Type | Name | Direction | Description |
|---|---|---|---|
| struct SEFCommonIOCB | common | In/Out | Common fields for all IOCBs |
| struct SEFFlashAddress | flashAddress | In | Address of the super block for this write; -1 for auto-allocate, or can use value from previous super block allocation call |
| struct SEFUserAddress | userAddress | In | Contains LBA information |
| struct SEFFlashAddress* | tentativeAddresses | Out | List of tentative physical addresses return |
| const void * | metadata | In | Metadata to write with data; The number of bytes per ADU required is SEFQoSDomainInfo::ADUsize.meta. May be NULL |
| const struct iovec* | iov | In | A pointer to the scatter gather list |
| uint16_t | iovcnt | In | The number of elements in the scatter gather list |
| struct SEFPlacementID | placementID | In | Only 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_t | numADU | In | Length in QoS Domain ADUs |
| uint32_t | distanceToEndOfSuperBlock | Out | Return value in units of ADUs |
| struct SEFWriteOverrides | overrides | In | Override parameters for scheduling purposes. Must set kSefIoFlagOverride in flags to apply |
SEFReadWithPhysicalAddressIOCB
Members of SEFReadWithPhysicalAddressIOCB
| Type | Name | Direction | Description |
|---|---|---|---|
| struct SEFCommonIOCB | common | In/Out | Common fields for all IOCBs |
| struct SEFFlashAddress | flashAddress | In | Physical 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 SEFUserAddress | userAddress | In | Contains LBA information |
| const struct iovec* | iov | In | A pointer to the scatter gather list |
| void * | metadata | In | Receives ADU metadata; The number of bytes per ADU required is SEFQoSDomainInfo::ADUsize.meta. May be NULL |
| uint32_t | iovOffset | In | Starting byte offset into iov array |
| uint32_t | numADU | In | Number of ADUs to be read, maximum is superBlockCapacity |
| uint16_t | iovcnt | In | The number of elements in the scatter gather list |
| struct SEFReadOverrides | overrides | In | Override parameters for scheduling purposes. Must set kSefIoFlagOverride in flags to apply |
SEFReleaseSuperBlockIOCB
Members of SEFReleaseSuperBlockIOCB
| Type | Name | Direction | Description |
|---|---|---|---|
| struct SEFCommonIOCB | common | In/Out | Common fields for all IOCBs |
| struct SEFFlashAddress | flashAddress | In | Address of super block |
SEFAllocateSuperBlockIOCB
IOCB for SEFAllocateSuperBlockAsync()
Members of SEFAllocateSuperBlockIOCB
| Type | Name | Direction | Description |
|---|---|---|---|
| struct SEFCommonIOCB | common | In/Out | Common fields for all IOCBs |
| struct SEFFlashAddress | flashAddress | Out | Address of super block |
| struct SEFAllocateOverrides | overrides | In | Override parameters for scheduling purposes. Must set kSefIoFlagOverride in flags to apply |
| enum SEFSuperBlockType | type | In | kForWrite or kForPSLCWrite |
SEFCloseSuperBlockIOCB
IOCB for SEFCloseSuperBlockAsync()
Members of SEFCloseSuperBlockIOCB
| Type | Name | Direction | Description |
|---|---|---|---|
| struct SEFCommonIOCB | common | In/Out | Common fields for all IOCBs |
| struct SEFFlashAddress | flashAddress | In | Address of the super block |
SEFNamelessCopyIOCB
Members of SEFNamelessCopyIOCB
| Type | Name | Direction | Description |
|---|---|---|---|
| struct SEFCommonIOCB | common | In/Out | Common fields for all IOCBs |
| SEFQoSHandle | dstQosHandle | In | Handle to the destination QoS Domain |
| struct SEFFlashAddress | copyDestination | In | Flash address of destination super block |
| uint32_t | reserved_0 | In | Reserved, must be initialized to zero |
| uint32_t | numAddressChangeRecords | In | Maximum number of ADUs to copy (size of addressChangeRequest userAddress array) |
| struct SEFAddressChangeRequest* | addressChangeInfo | Out | Output of changed addresses |
| struct SEFCopySource | copySource | In | Physical addresses to copy |
| const struct SEFUserAddressFilter* | filter | In | Pointer to user address filter parameters, null for no filtering |
| struct SEFCopyOverrides | overrides | In | Override parameters for scheduling purposes. Must set kSefIoFlagOverride in flags to apply |