Data types. More...
Defines | |
| #define | DIS_DMA_MAX_VECLEN 16 |
| DMA queue vector interface for function DISStartDmaTransferVec(). | |
Typedefs | |
| typedef struct sci_desc * | sci_desc_t |
| A variable of type sci_desc_t represents an SCI virtual device, that is a communication channel with the driver. | |
| typedef struct sci_local_segment * | sci_local_segment_t |
| A variable of type sci_local_segment_t represents a local memory segment and it is initialized when the segment is allocated by calling the function SCICreateSegment. | |
| typedef struct sci_remote_segment * | sci_remote_segment_t |
| A variable of type sci_local_segment_t represents a segment residing on a remote node. | |
| typedef struct sci_map * | sci_map_t |
| A variable of type sci_map_t represents a memory segment mapped in the process address space. | |
| typedef struct sci_sequence * | sci_sequence_t |
| A variable of type sci_sequence_t represents a sequence of operations involving communication with remote nodes. | |
| typedef struct sci_dma_queue * | sci_dma_queue_t |
| A variable of type sci_dma_queue_t represents a chain of specifications of data transfers to be performed using the DMA engine available on the SCI adapter. | |
| typedef struct sci_remote_interrupt * | sci_remote_interrupt_t |
| A variable of type sci_remote_interrupt_t represents an interrupt that can be triggered on a remote node. | |
| typedef struct sci_local_interrupt * | sci_local_interrupt_t |
| A variable of type sci_local_interrupt_t represents an instance of an interrupt that an application has made available to remote nodes. | |
| typedef struct sci_block_transfer * | sci_block_transfer_t |
| A variable of type sci_block_transfer_t represents an asynchronous transfer of a block of data. | |
| typedef sci_callback_action_t(* | sci_cb_local_segment_t )(void *arg, sci_local_segment_t segment, sci_segment_cb_reason_t reason, unsigned int nodeId, unsigned int localAdapterNo, sci_error_t error) |
| Local segment callback. | |
| typedef sci_callback_action_t(* | sci_cb_remote_segment_t )(void *arg, sci_remote_segment_t segment, sci_segment_cb_reason_t reason, sci_error_t status) |
| Remote segment callback. | |
| typedef sci_callback_action_t(* | sci_cb_dma_t )(void IN *arg, sci_dma_queue_t queue, sci_error_t status) |
| DMA queue callback. | |
| typedef int(* | sci_cb_block_transfer_t )(void *arg, sci_block_transfer_t block, sci_error_t status) |
| Block transfer callback. | |
| typedef sci_callback_action_t(* | sci_cb_interrupt_t )(void *arg, sci_local_interrupt_t interrupt, sci_error_t status) |
| Interrupt callback. | |
Enumerations | |
| enum | sci_segment_cb_reason_t { SCI_CB_CONNECT = 1, SCI_CB_DISCONNECT, SCI_CB_NOT_OPERATIONAL, SCI_CB_OPERATIONAL, SCI_CB_LOST } |
Reasons for segment callbacks. More... | |
| enum | sci_dma_queue_state_t |
DMA queue status. More... | |
| enum | sci_sequence_status_t { SCI_SEQ_OK, SCI_SEQ_RETRIABLE, SCI_SEQ_NOT_RETRIABLE, SCI_SEQ_PENDING } |
Sequence status. More... | |
| enum | sci_callback_action_t { SCI_CALLBACK_CANCEL = 1, SCI_CALLBACK_CONTINUE } |
Callback return values. More... | |
Data types.
| #define DIS_DMA_MAX_VECLEN 16 |
DMA queue vector interface for function DISStartDmaTransferVec().
| typedef struct sci_desc* sci_desc_t |
A variable of type sci_desc_t represents an SCI virtual device, that is a communication channel with the driver.
Many virtual devices can be opened by the same application. It is initialized by calling the function SCIOpen.
| typedef struct sci_local_segment* sci_local_segment_t |
A variable of type sci_local_segment_t represents a local memory segment and it is initialized when the segment is allocated by calling the function SCICreateSegment.
| typedef struct sci_remote_segment* sci_remote_segment_t |
A variable of type sci_local_segment_t represents a segment residing on a remote node.
It is initialized by calling either the function SCIConnectSegment or the function SCIConnectSCISpace.
| typedef struct sci_map* sci_map_t |
A variable of type sci_map_t represents a memory segment mapped in the process address space.
It is initialized by calling either the function SCIMapRemoteSegment or the function SCIMapLocalSegment.
| typedef struct sci_sequence* sci_sequence_t |
A variable of type sci_sequence_t represents a sequence of operations involving communication with remote nodes.
It is used to check if errors have occurred during a data transfer. The descriptor is initialized when the sequence is created by calling the function SCICreateMapSequence.
| typedef struct sci_dma_queue* sci_dma_queue_t |
A variable of type sci_dma_queue_t represents a chain of specifications of data transfers to be performed using the DMA engine available on the SCI adapter.
The descriptor is initialized when the chain is created by calling the function SCICreateDMAQueue.
| typedef struct sci_remote_interrupt* sci_remote_interrupt_t |
A variable of type sci_remote_interrupt_t represents an interrupt that can be triggered on a remote node.
It is initialized by calling the function SCIConnectInterrupt.
| typedef struct sci_local_interrupt* sci_local_interrupt_t |
A variable of type sci_local_interrupt_t represents an instance of an interrupt that an application has made available to remote nodes.
It is initialized when the interrupt is created by calling the function SCICreateInterrupt.
| typedef struct sci_block_transfer* sci_block_transfer_t |
A variable of type sci_block_transfer_t represents an asynchronous transfer of a block of data.
It is initialized when the function SCITransferBlockAsync is invoked.
| typedef sci_callback_action_t(* sci_cb_local_segment_t)(void *arg, sci_local_segment_t segment, sci_segment_cb_reason_t reason, unsigned int nodeId, unsigned int localAdapterNo, sci_error_t error) |
Local segment callback.
A function of type sci_cb_local_segment_t can be specified when a segment is created with SCICreateSegment() and will be invoked asynchronously when a remote node connects to or disconnects from the segment using respectively SCIConnectSegment() and SCIDisconnectSegment(). The same callback function is also invoked whenever a problem affects the connection.
| arg | user-defined argument passed to the callback function. | |
| segment | handle to the local segment descriptor affected by the asynchronous event. | |
| reason | reason why the callback function has been invoked. | |
| nodeId | identifier of the remote node that has provoked, directly or indirectly, the asynchronous event. | |
| localAdapterNo | number of the local adapter that received the asynchronous event. |
| typedef sci_callback_action_t(* sci_cb_remote_segment_t)(void *arg, sci_remote_segment_t segment, sci_segment_cb_reason_t reason, sci_error_t status) |
Remote segment callback.
A function of type sci_cb_remote_segment_t can be specified when the connection to a memory segment is requested calling SCIConnectSegment and will be invoked asynchronously when the connection completes (if SCIConnectSegment is asynchronous), when the local node asks for disconnecting (calling SCISetSegmentUnavailable with the SCI_FLAG_NOTIFY flag) or when a problem affects the connection.
| arg | user-defined argument passed to the callback function. | |
| segment | handle to the remote segment descriptor. | |
| reason | reason why the callback function has been invoked. | |
| status | status of the remote segment. |
| typedef sci_callback_action_t(* sci_cb_dma_t)(void IN *arg, sci_dma_queue_t queue, sci_error_t status) |
DMA queue callback.
A function of type sci_cb_dma_t can be specified when a DMA queue is posted using SCIPostDMAQueue and will be invoked when the transfer has completed, either successfully or with an error.
| arg | user-defined argument passed to the callback function. | |
| queue | handle to the DMA queue descriptor. | |
| status | status information. |
| typedef int(* sci_cb_block_transfer_t)(void *arg, sci_block_transfer_t block, sci_error_t status) |
Block transfer callback.
A function of type sci_cb_block_transfer_t can be specified when a remote memory block is transferred asynchronously with SCITransferBlockAsync and will be invoked when the operation completes or when an error occurs.
| arg | user-defined argument passed to the callback function. | |
| queue | handle to the block transfer descriptor. | |
| status | status information |
| typedef sci_callback_action_t(* sci_cb_interrupt_t)(void *arg, sci_local_interrupt_t interrupt, sci_error_t status) |
Interrupt callback.
A function of type sci_cb_interrupt_t can be specified when an interrupt is created with SCICreateInterrupt and it will be invoked asynchronously when the interrupt will be triggered from a remote node.
| arg | user-defined argument passed to the callback function. | |
| queue | handle to the triggered interrupt descriptor. | |
| status | status information |
Reasons for segment callbacks.
It can either be used in local segment callback function or remote segment callback function to indicate the reasons for the segment callback.
DMA queue status.
Precise description needed.
Sequence status.
The type sci_sequence_status_t enumerates the values returned by SCIStartSequence() and SCICheckSequence(). SCIStartSequence() can only return SCI_SEQ_OK or SCI_SEQ_PENDING.
| SCI_SEQ_OK |
no errors: the sequence of reads and writes can continue. |
| SCI_SEQ_RETRIABLE |
non-fatal error: the failed operation can be immediately retried. |
| SCI_SEQ_NOT_RETRIABLE |
fatal error (probably notified also via a callback to the segment): need to wait until the situation is normal again. |
| SCI_SEQ_PENDING |
an error is pending, SCIStartSequence() should be called until it returns SCI_SEQ_OK. |
Callback return values.
1.6.3