SISCI-API
|
Data Structures | |
struct | dis_dma_vec_t |
DMA queue vector interface for function SCIStartDmaTransferVec(). More... | |
struct | sci_smartio_device_info_t |
SmartIO device information. More... | |
Typedefs | |
typedef struct sci_desc * | sci_desc_t |
A variable of type sci_desc_t represents an SISCI virtual device, that is a communication channel with the driver. More... | |
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(). More... | |
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. More... | |
typedef struct sci_map * | sci_map_t |
A variable of type sci_map_t represents a memory segment mapped in the process address space. More... | |
typedef struct sci_sequence * | sci_sequence_t |
A variable of type sci_sequence_t represents a sequence of operations involving communication with remote nodes. More... | |
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 adapter or in the system. More... | |
typedef struct sci_dma_channel * | sci_dma_channel_t |
Handle to a DMA channel. More... | |
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. More... | |
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. More... | |
typedef struct sci_remote_data_interrupt * | sci_remote_data_interrupt_t |
A variable of type sci_remote_data_interrupt_t represents a data interrupt that can be triggered on a remote node. More... | |
typedef struct sci_local_data_interrupt * | sci_local_data_interrupt_t |
A variable of type sci_local_data_interrupt_t represents an instance of a data interrupt that an application has made available to remote nodes. More... | |
typedef struct sci_smartio_device * | sci_smartio_device_t |
A variable of type sci_smartio_device_t represents an instance of a device that an application has borrowed from a remote node. More... | |
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. More... | |
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. More... | |
typedef sci_callback_action_t(* | sci_cb_dma_t) (void IN *arg, sci_dma_queue_t queue, sci_error_t status) |
DMA queue callback. More... | |
typedef sci_callback_action_t(* | sci_cb_interrupt_t) (void *arg, sci_local_interrupt_t interrupt, sci_error_t status) |
Interrupt callback. More... | |
typedef sci_callback_action_t(* | sci_cb_data_interrupt_t) (void *arg, sci_local_data_interrupt_t interrupt, void *data, unsigned int length, sci_error_t status) |
Data Interrupt callback. More... | |
typedef sci_callback_action_t(* | sci_cb_device_segment_t) (void *arg, sci_smartio_device_t device, sci_error_t status) |
Device Memory callback. More... | |
typedef sci_callback_action_t(* | sci_cb_device_mapping_t) (void *arg, sci_smartio_device_t device, sci_error_t status) |
Device Mapping callback. More... | |
Enumerations | |
enum | sci_segment_cb_reason_t { SCI_CB_CONNECT = 1, SCI_CB_DISCONNECT, SCI_CB_NOT_OPERATIONAL, SCI_CB_OPERATIONAL, SCI_CB_LOST, SCI_CB_FATAL } |
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.
typedef struct sci_desc* sci_desc_t |
A variable of type sci_desc_t represents an SISCI 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 the function SCIConnectSegment()
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 adapter or in the system.
The descriptor is initialized when the chain is created by calling the function SCICreateDMAQueue().
typedef struct sci_dma_channel* sci_dma_channel_t |
Handle to a DMA channel.
Initialized by calling the function SCIRequestDMAChannel().
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_remote_data_interrupt* sci_remote_data_interrupt_t |
A variable of type sci_remote_data_interrupt_t represents a data interrupt that can be triggered on a remote node.
It is initialized by calling the function SCIConnectDataInterrupt().
typedef struct sci_local_data_interrupt* sci_local_data_interrupt_t |
A variable of type sci_local_data_interrupt_t represents an instance of a data interrupt that an application has made available to remote nodes.
It is initialized when the interrupt is created by calling the function SCICreateDataInterrupt().
typedef struct sci_smartio_device* sci_smartio_device_t |
A variable of type sci_smartio_device_t represents an instance of a device that an application has borrowed from a remote node.
It is initialized by calling the function SCIBorrowDevice().
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 for a DMA operation 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 for the DMA transfer. |
Status codes:
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. |
interrupt | handle to the triggered interrupt descriptor. |
status | status information |
typedef sci_callback_action_t(* sci_cb_data_interrupt_t) (void *arg, sci_local_data_interrupt_t interrupt, void *data, unsigned int length, sci_error_t status) |
Data Interrupt callback.
A function of type sci_cb_data_interrupt_t can be specified when a data interrupt is created with SCICreateDataInterrupt() and it will be invoked asynchronously when the data interrupt will be triggered from a remote node.
arg | user-defined argument passed to the callback function. |
interrupt | handle to the triggered data interrupt descriptor. |
data | pointer to the interrupt message data |
length | length of the interrupt message |
status | status information |
typedef sci_callback_action_t(* sci_cb_device_segment_t) (void *arg, sci_smartio_device_t device, sci_error_t status) |
Device Memory callback.
NOTE: This callback is not yet implemented and it's signature may change in future releases!
arg | user-defined argument passed to the callback function. |
device | the device this callback relates to. |
status | status information. |
typedef sci_callback_action_t(* sci_cb_device_mapping_t) (void *arg, sci_smartio_device_t device, sci_error_t status) |
Device Mapping callback.
NOTE: This callback is not yet implemented and it's signature may change in future releases!
arg | user-defined argument passed to the callback function. |
device | the device this callback relates to. |
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.
Enumerator | |
---|---|
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.