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 |
size_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 |
uint16_t[3] | reserved | In | reserved, must be initialized to 0 |
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 |
uint8_t * | defectMap | In | Optional 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 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 |