1rsm_memseg_import_putRve(m3oRtSeM)Shared Memory Library Furnscmt_imoenmsseg_import_putv(3RSM)
2
3
4

NAME

6       rsm_memseg_import_putv,  rsm_memseg_import_getv  -  write  to a segment
7       using a list of I/O requests
8

SYNOPSIS

10       cc [ flag... ] file... -lrsm [ library... ]
11       #include <rsmapi.h>
12
13       int rsm_memseg_import_putv(rsm_scat_gath_t *sg_io);
14
15
16       int rsm_memseg_import_getv(rsm_scat_gath_t *sg_io);
17
18

DESCRIPTION

20       The  rsm_memseg_import_putv()  and  rsm_memseg_import_getv()  functions
21       provide  for  using  a list of I/O requests rather than a single source
22       and destination address as is done  for  thersm_memseg_import_put(3RSM)
23       and rsm_memseg_import_get(3RSM) functions.
24
25
26       The  I/O  vector  component  of the scatter-gather list (sg_io), allows
27       specifying local virtual  addresses  or  local_memory_handles.  When  a
28       local address range is used repeatedly, it is efficient to use a handle
29       because allocated system resources (that is, locked down local  memory)
30       are  maintained until the handle is freed. The supporting functions for
31       handles are rsm_create_localmemory_handle(3RSM) and  rsm_free_localmem‐
32       ory_handle(3RSM).
33
34
35       Virtual  addresses or handles may be gathered into the vector for writ‐
36       ing to a single remote segment, or a read from a single remote  segment
37       may be scattered to the vector of virtual addresses or handles.
38
39
40       Implicit  mapping  is  supported for the scatter-gather type of access.
41       The  attributes of the extension library for the specific  interconnect
42       are  used to determine whether mapping is necessary before any scatter-
43       gather access. If mapping of the imported segment is a prerequisite for
44       scatter-gather  access  and the mapping has not already been performed,
45       an implicit mapping is performed for the imported segment. The I/O  for
46       the vector is then initiated.
47
48
49       I/O  for  the  entire vector is initiated before returning. The barrier
50       mode attribute of the import segment determines if  the  I/O  has  com‐
51       pleted  before  the function returns.  A barrier mode attribute setting
52       of IMPLICIT guarantees that the transfer of data is  completed  in  the
53       order  as entered in the I/O vector. An implicit barrier open and close
54       surrounds each list entry. If an error is detected, I/O for the  vector
55       is  terminated and the function returns immediately. The residual count
56       indicates the number of entries for which the I/O either did  not  com‐
57       plete or was not initiated.
58
59
60       The number of entries in the I/O vector component of the scatter-gather
61       list is specified in the io_request_count field of the  rsm_scat_gath_t
62       pointed  to  by  sg_io. The io_request_count is valid if greater than 0
63       and less than or equal to RSM_MAX_SGIOREQS.  If io_request_count is not
64       in    the    valid   range,   rsm_memseg_import_putv()   and   rsm_mem‐
65       seg_import_getv() returns RSMERR_BAD_SGIO.
66
67
68       Optionally, the scatter-gather list allows support for an implicit sig‐
69       nal  post after the I/O for the entire vector has completed. This alle‐
70       viates the need to do an explicit signal post after ever  I/O  transfer
71       operation. The means of enabling the implicit signal post involves set‐
72       ting   the   flags   field   within   the   scatter-gather   list    to
73       RSM_IMPLICIT_SIGPOST.   The   flags   field   may   also   be   set  to
74       RSM_SIG_POST_NO_ACCUMULATE, which will be passed on to the signal  post
75       operation when RSM_IMPLICIT_SIGPOST is set.
76

RETURN VALUES

78       Upon  successful  completion,  these  functions return 0. Otherwise, an
79       error value is returned to indicate the error.
80

ERRORS

82       The rsm_memseg_import_putv() and rsm_memseg_import_getv() functions can
83       return the following errors:
84
85       RSMERR_BAD_SGIO
86
87           Invalid scatter-gather structure pointer.
88
89
90       RSMERR_BAD_SEG_HNDL
91
92           Invalid segment handle.
93
94
95       RSMERR_BAD_CTLR_HNDL
96
97           Invalid controller handle.
98
99
100       RSMERR_BAD_OFFSET
101
102           Invalid offset.
103
104
105       RSMERR_BAD_LENGTH
106
107           Invalid length.
108
109
110       RSMERR_BAD_ADDR
111
112           Bad address.
113
114
115       RSMERR_INSUFFICIENT_RESOURCES
116
117           Insufficient resources.
118
119
120       RSMERR_INTERRUPTED
121
122           The operation was interrupted by a signal.
123
124
125       RSMERR_PERM_DENIED
126
127           Permission denied.
128
129
130       RSMERR_BARRIER_FAILURE
131
132           I/O completion error.
133
134
135       RSMERR_REMOTE_NODE_UNREACHABLE
136
137           Remote node not reachable.
138
139

ATTRIBUTES

141       See attributes(5) for descriptions of the following attributes:
142
143
144
145
146       ┌─────────────────────────────┬─────────────────────────────┐
147ATTRIBUTE TYPE               ATTRIBUTE VALUE              
148       ├─────────────────────────────┼─────────────────────────────┤
149       │Interface Stability          │Evolving                     │
150       ├─────────────────────────────┼─────────────────────────────┤
151       │MT-Level                     │MT-Safe                      │
152       └─────────────────────────────┴─────────────────────────────┘
153

SEE ALSO

155       rsm_create_localmemory_handle(3RSM), rsm_free_localmemory_handle(3RSM),
156       attributes(5)
157
158
159
160SunOS 5.11                        12 Nov 2001     rsm_memseg_import_putv(3RSM)
Impressum