Lines Matching full:of
12 * it under the terms of version 2 of the GNU General Public License as
16 * WITHOUT ANY WARRANTY; without even the implied warranty of
28 * * Redistributions of source code must retain the above copyright
29 * notice, this list of conditions and the following disclaimer.
31 * notice, this list of conditions and the following disclaimer in
34 * * Neither the name of Intel Corporation nor the names of its
40 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
44 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
46 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
47 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
48 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
89 /* End of SCIF Admin Reserved Ports */
92 /* End of SCIF Reserved Ports */
101 * @nr_pages: number of pages of PAGE_SIZE
103 * @phys_addr: Array of bus addresses
104 * @va: Array of kernel virtual addresses backed by the pages in the phys_addr
106 * SCIF connection on MIC. This is required to support the use case of DMA
131 * scif_peer_dev - representation of a peer SCIF device
135 * cards about their peers. Upon notification of a peer a node adds a peer
148 * scif_client - representation of a SCIF client
194 * indicate the error; in kernel mode the negative of one of the following
214 * used as the endpoint of a connection.
218 * The backlog argument defines the maximum length to which the queue of
226 * negative of one of the following errors is returned.
238 * @dst: global id of port to which to connect
240 * The scif_connect() function requests the connection of endpoint epd to remote
247 * A connection is terminated when an endpoint of the connection is closed,
248 * either explicitly by scif_close(), or when a process that owns one of the
249 * endpoints of the connection is terminated.
259 * set to indicate the error; in kernel mode the negative of one of the
279 * @peer: global id of port to which connected
284 * of pending connections for the port on which epd is listening. scif_accept()
292 * local port number) of the port which requested the connection.
294 * A connection is terminated when an endpoint of the connection is closed,
295 * either explicitly by scif_close(), or when a process that owns one of the
296 * endpoints of the connection is terminated.
298 * The number of connections that can (subsequently) be accepted on epd is only
301 * The flags argument is formed by OR'ing together zero or more of the
316 * negative of one of the following errors is returned.
329 * ENOENT - Secondary part of epd registration failed
338 * scif_close() closes an endpoint and performs necessary teardown of
347 * scif_close() returns. Registered windows of the local and peer endpoints are
363 * negative of one of the following errors is returned.
377 * scif_send() sends data to the peer of endpoint epd. Up to len bytes of data
379 * return value of scif_send() is the number of bytes that were sent, and is
384 * can be sent without waiting, up to a maximum of len bytes.
397 * APIs are expected to provide better performance for transfer sizes of
405 * Upon successful completion, scif_send() returns the number of bytes sent;
407 * error; in kernel mode the negative of one of the following errors is
428 * scif_recv() receives data from the peer of endpoint epd. Up to len bytes of
430 * the return value of scif_recv() is the number of bytes that were received,
435 * which can be received without waiting, up to a maximum of len bytes.
440 * of disconnection.
448 * APIs are expected to provide better performance for transfer sizes of
456 * Upon successful completion, scif_recv() returns the number of bytes
458 * indicate the error; in kernel mode the negative of one of the following
477 * @len: length of range
478 * @offset: offset of window
482 * The scif_register() function opens a window, a range of whole pages of the
483 * registered address space of the endpoint epd, starting at offset po and
484 * continuing for len bytes. The value of po, further described below, is a
485 * function of the parameters offset and len, and the value of map_flags. Each
486 * page of the window represents the physical memory page which backs the
487 * corresponding page of the range of virtual address pages starting at addr
489 * of the page size. A successful scif_register() call returns po.
492 * exactly, and offset is constrained to be a multiple of the page size. The
499 * be an area of the registered address space that the implementation deems
500 * suitable for a mapping of len bytes. An offset value of 0 is interpreted as
502 * constraints described below. A non-zero value of offset is taken to be a
503 * suggestion of an offset near which the mapping should be placed. When the
505 * window. In all cases, po will be a multiple of the page size.
522 * The prot_flags argument is formed by OR'ing together one or more of the
531 * kernel mode the negative of one of the following errors is returned.
536 * EAGAIN - The mapping could not be performed due to lack of resources
540 * set in flags, and offset is not a multiple of the page size, or addr is not a
541 * multiple of the page size, or len is not a multiple of the page size, or is
554 * @offset: start of range to unregister
555 * @len: length of range to unregister
559 * error to specify a range which intersects only a subrange of a window.
568 * also referenced while an RMA, in which some range of the window is a source
577 * registered address space pages of the window become available for
583 * the negative of one of the following errors is returned. In the event of an
589 * EINVAL - the range [offset, offset + len - 1] intersects a subrange of a
595 * registered address space of epd
604 * @len: length of range to copy
609 * scif_readfrom() copies len bytes from the remote registered address space of
610 * the peer of endpoint epd, starting at the offset roffset to the local
611 * registered address space of epd, starting at the offset loffset.
613 * Each of the specified ranges [loffset, loffset + len - 1] and [roffset,
614 * roffset + len - 1] must be within some registered window or windows of the
625 * the completion of asynchronous RMA operations on the same endpoint.
627 * The DMA transfer of individual bytes is not guaranteed to complete in
629 * cacheline or partial cacheline of the source range will become visible on
634 * loffset and roffset are cacheline aligned (are a multiple of 64). Lower
636 * cacheline aligned but are separated by some multiple of 64. The lowest level
637 * of performance is likely if loffset and roffset are not separated by a
638 * multiple of 64.
640 * The rma_flags argument is formed by ORing together zero or more of the
649 * SCIF_RMA_ORDERED - ensure that the last cacheline or partial cacheline of
657 * the negative of one of the following errors is returned.
668 * address space of epd, or, The range [roffset, roffset + len - 1] is invalid
669 * for the registered address space of the peer of epd, or loffset or roffset
680 * @len: length of range to copy
685 * scif_writeto() copies len bytes from the local registered address space of
687 * of the peer of endpoint epd, starting at the offset roffset.
689 * Each of the specified ranges [loffset, loffset + len - 1] and [roffset,
690 * roffset + len - 1] must be within some registered window or windows of the
701 * the completion of asynchronous RMA operations on the same endpoint.
703 * The DMA transfer of individual bytes is not guaranteed to complete in
705 * cacheline or partial cacheline of the source range will become visible on
710 * loffset and roffset are cacheline aligned (are a multiple of 64). Lower
712 * aligned but are separated by some multiple of 64. The lowest level of
714 * of 64.
716 * The rma_flags argument is formed by ORing together zero or more of the
725 * SCIF_RMA_ORDERED - ensure that the last cacheline or partial cacheline of
733 * the negative of one of the following errors is returned.
744 * address space of epd, or, The range [roffset , roffset + len -1] is invalid
745 * for the registered address space of the peer of epd, or loffset or roffset
755 * @len: length of range to copy
761 * space of the peer of endpoint epd, starting at the offset roffset, to local
765 * registered window or windows of the remote nodes. The range may
776 * the completion of asynchronous RMA operations on the same endpoint.
778 * The DMA transfer of individual bytes is not guaranteed to complete in
780 * cacheline or partial cacheline of the source range will become visible on
786 * the specified transfer completes. This may reduce overhead if some or all of
787 * the same virtual address range is referenced in a subsequent call of
791 * addr and roffset are cacheline aligned (are a multiple of 64). Lower
793 * cacheline aligned but are separated by some multiple of 64. The lowest level
794 * of performance is likely if addr and roffset are not separated by a
795 * multiple of 64.
797 * The rma_flags argument is formed by ORing together zero or more of the
807 * SCIF_RMA_ORDERED - ensure that the last cacheline or partial cacheline of
815 * the negative of one of the following errors is returned.
826 * registered address space of epd
835 * @len: length of range to copy
841 * the remote registered address space of the peer of endpoint epd, starting at
845 * registered window or windows of the remote nodes. The range may intersect
856 * the completion of asynchronous RMA operations on the same endpoint.
858 * The DMA transfer of individual bytes is not guaranteed to complete in
860 * cacheline or partial cacheline of the source range will become visible on
866 * the specified transfer completes. This may reduce overhead if some or all of
867 * the same virtual address range is referenced in a subsequent call of
871 * addr and offset are cacheline aligned (are a multiple of 64). Lower
873 * aligned but are separated by some multiple of 64. The lowest level of
874 * performance is likely if addr and offset are not separated by a multiple of
877 * The rma_flags argument is formed by ORing together zero or more of the
887 * SCIF_RMA_ORDERED - ensure that the last cacheline or partial cacheline of
895 * the negative of one of the following errors is returned.
906 * registered address space of epd
917 * scif_fence_mark() returns after marking the current set of all uncompleted
918 * RMAs initiated through the endpoint epd or the current set of all
919 * uncompleted RMAs initiated through the peer of endpoint epd. The RMAs are
922 * of all RMAs so marked.
924 * The flags argument has exactly one of the following values.
928 * of endpoint epd are marked
933 * the negative of one of the following errors is returned.
947 * scif_fence_wait() - Wait for completion of marked RMAs
958 * the negative of one of the following errors is returned.
971 * scif_fence_signal() - Request a memory update on completion of RMAs
979 * scif_fence_signal() returns after marking the current set of all uncompleted
980 * RMAs initiated through the endpoint epd or marking the current set of all
981 * uncompleted RMAs initiated through the peer of endpoint epd.
983 * If flags includes SCIF_SIGNAL_LOCAL, then on completion of the RMAs in the
985 * loff in the local registered address space of epd. loff must be within a
987 * of the RMAs in the marked set, rval is written to memory at the address
988 * corresponding to offset roff in the remote registered address space of epd.
989 * roff must be within a remote registered window of the peer of epd. Note
993 * Exactly one of the following values.
997 * of endpoint epd are marked
998 * One or more of the following values.
999 * SCIF_SIGNAL_LOCAL - On completion of the marked set of RMAs, write lval to
1001 * registered address space of epd.
1002 * SCIF_SIGNAL_REMOTE - On completion of the marked set of RMAs, write rval to
1004 * registered address space of epd.
1009 * mode the negative of one of the following errors is returned.
1018 * ENXIO - loff is invalid for the registered address of epd, or roff is invalid
1019 * for the registered address space, of the peer of epd
1027 * @len: number of entries in the nodes array
1028 * @self: address to place the node ID of the local node
1030 * scif_get_node_ids() fills in the nodes array with up to len node IDs of the
1033 * return value of scif_get_node_ids() is the total number of nodes currently in
1037 * The node ID of the local node is returned at self.
1040 * Upon successful completion, scif_get_node_ids() returns the actual number of
1048 * scif_pin_pages() - Pin a set of pages
1049 * @addr: Virtual address of range to pin
1050 * @len: Length of range to pin
1056 * back the range of virtual address pages starting at addr and continuing for
1057 * len bytes. addr and len are constrained to be multiples of the page size. A
1077 * The prot_flags argument is formed by OR'ing together one or more of the
1087 * negative of one of the following errors is returned.
1097 * scif_unpin_pages() - Unpin a set of pages
1112 * negative of one of the following errors is returned.
1126 * The scif_register_pinned_pages() function opens a window, a range of whole
1127 * pages of the registered address space of the endpoint epd, starting at
1128 * offset po. The value of po, further described below, is a function of the
1129 * parameters offset and pinned_pages, and the value of map_flags. Each page of
1130 * the window represents a corresponding physical memory page of the range
1131 * represented by pinned_pages; the length of the window is the same as the
1132 * length of range represented by pinned_pages. A successful
1136 * exactly, and offset is constrained to be a multiple of the page size. The
1138 * existing registration; an error is returned if any page of the new window
1143 * area of the registered address space that the implementation deems suitable
1144 * for a mapping of the required size. An offset value of 0 is interpreted as
1146 * constraints described below. A non-zero value of offset is taken to be a
1147 * suggestion of an offset near which the mapping should be placed. When the
1149 * window. In all cases, po will be a multiple of the page size.
1166 * at which the mapping was placed (po); otherwise the negative of one of the
1172 * EAGAIN - The mapping could not be performed due to lack of resources
1175 * offset is not a multiple of the page size, or offset is negative
1189 * @len: length of range of pages
1192 * scif_get_pages() returns the addresses of the physical pages represented by
1193 * those pages of the registered address space of the peer of epd, starting at
1195 * multiples of the page size.
1197 * All of the pages in the specified range [offset, offset + len - 1] must be
1198 * within a single window of the registered address space of the peer of epd.
1201 * phys_addr component of the scif_range structure whose address is returned in
1202 * pages. The nr_pages component of scif_range is the length of the array. The
1203 * prot_flags component of scif_range holds the protection flag value passed
1212 * structure of that endpoint has not been returned to scif_put_pages().
1216 * negative of one of the following errors is returned.
1219 * EINVAL - offset is not a multiple of the page size, or offset is negative, or
1220 * len is not a multiple of the page size
1225 * for the registered address space of the peer epd
1241 * negative of one of the following errors is returned.
1253 * @epds: Array of endpoint descriptors
1254 * @nepds: Length of epds
1257 * scif_poll() waits for one of a set of endpoints to become ready to perform
1261 * events of interest for each endpoint descriptor. epds is a pointer to an
1262 * array with one member for each open endpoint descriptor of interest.
1264 * The number of items in the epds array is specified in nepds. The epd field
1265 * of scif_pollepd is an endpoint descriptor of an open endpoint. The field
1269 * can include any of those specified in events, or one of the values EPOLLERR,
1274 * If none of the events requested (and no error) has occurred for any of the
1275 * endpoint descriptors, then scif_poll() blocks until one of the events occurs.
1299 * positive value indicates the total number of endpoint descriptors that have
1301 * non-zero). A value of 0 indicates that the call timed out and no endpoint
1303 * errno is set to indicate the error; in kernel mode the negative of one of
1318 * of the client is called when SCIF peer devices come online and the