|
XLIO
The NVIDIA® Accelerated IO
|
High-performance data transmission functions. More...
Classes | |
| struct | xlio_socket_send_attr |
| Send operation attributes. More... | |
Macros | |
| #define | XLIO_SOCKET_SEND_FLAG_FLUSH 0x1 |
| #define | XLIO_SOCKET_SEND_FLAG_INLINE 0x2 |
Functions | |
| int | xlio_socket_send (xlio_socket_t sock, const void *data, size_t len, const struct xlio_socket_send_attr *attr) |
| Send data on a socket. More... | |
| int | xlio_socket_sendv (xlio_socket_t sock, const struct iovec *iov, unsigned iovcnt, const struct xlio_socket_send_attr *attr) |
| Send vectored data on a socket. More... | |
| void | xlio_poll_group_flush (xlio_poll_group_t group) |
| Flush all dirty sockets in a polling group. More... | |
| void | xlio_socket_flush (xlio_socket_t sock) |
| Flush pending data on a socket. More... | |
High-performance data transmission functions.
The XLIO Ultra API provides efficient transmission capabilities with zero-copy support and flexible batching options.
| #define XLIO_SOCKET_SEND_FLAG_FLUSH 0x1 |
Flush socket after queueing the data.
| #define XLIO_SOCKET_SEND_FLAG_INLINE 0x2 |
Copy user data to the internal buffers instead of taking ownership.
| void xlio_poll_group_flush | ( | xlio_poll_group_t | group | ) |
Flush all dirty sockets in a polling group.
For polling groups created with XLIO_GROUP_FLAG_DIRTY, this function flushes all sockets that have pending data to send. This provides batch flushing capabilities for improved performance.
| group | The polling group to flush |
| void xlio_socket_flush | ( | xlio_socket_t | sock | ) |
Flush pending data on a socket.
Forces transmission of any data queued on the socket. XLIO aggregates data by default for efficiency and user logic simplification.
This function doesn't guarantee immediate transmission, because TCP algorithms and congestion/flow control may affect transmission.
| sock | The socket to flush |
| int xlio_socket_send | ( | xlio_socket_t | sock, |
| const void * | data, | ||
| size_t | len, | ||
| const struct xlio_socket_send_attr * | attr | ||
| ) |
Send data on a socket.
Sends data on the specified socket using zero-copy by default. The operation is non-blocking and accepts all data unless memory allocation fails.
| sock | The socket to send data on |
| data | Pointer to the data to send |
| len | Length of the data |
| attr | Send attributes controlling the operation |
| int xlio_socket_sendv | ( | xlio_socket_t | sock, |
| const struct iovec * | iov, | ||
| unsigned | iovcnt, | ||
| const struct xlio_socket_send_attr * | attr | ||
| ) |
Send vectored data on a socket.
Sends data from multiple buffers (scatter-gather) on the specified socket.
| sock | The socket to send data on |
| iov | Array of iovec structures describing the data buffers |
| iovcnt | Number of iovec structures |
| attr | Send attributes controlling the operation |