Merge remote-tracking branch 'origin/master'
[unleashed/lotheac.git] / share / man / man3dlpi / dlpi_info.3dlpi
blobf2ad35eee587e9af64445313a65293a3c294e05e
1 '\" te
2 .\"  Copyright (c) 2007, Sun Microsystems, Inc.  All Rights Reserved
3 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
4 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
5 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
6 .TH DLPI_INFO 3DLPI "Aug 22, 2007"
7 .SH NAME
8 dlpi_info \- get DLPI information
9 .SH SYNOPSIS
10 .LP
11 .nf
12 \fBcc\fR [ \fIflag\fR ... ] \fIfile\fR ... \fB-ldlpi\fR [ \fIlibrary\fR ... ]
13 #include <libdlpi.h>
15 \fBint\fR \fIdlpi_info\fR(\fBdlpi_handle_t\fR \fIdh\fR, \fBdlpi_info_t *\fR\fIinfop\fR,
16      \fBuint_t\fR \fIopt\fR);
17 .fi
19 .SH DESCRIPTION
20 .sp
21 .LP
22 The \fBdlpi_info()\fR function provides \fBDLPI\fR information about the open
23 \fBDLPI\fR link instance associated with \fBDLPI\fR handle \fIdh\fR. \fBDLPI\fR
24 information can be retrieved in any state of \fIdh\fR, but some of the
25 information might not be available if \fIdh\fR is in the \fBDL_UNBOUND\fR
26 \fBDLPI\fR state. The \fBDLPI\fR information received is copied into
27 \fIinfop\fR, which must point to a \fBdlpi_info_t\fR allocated by the caller.
28 The \fIopt\fR argument is reserved for future use and must be set to 0.
29 .sp
30 .LP
31 The \fBdlpi_info_t\fR is a structure defined in \fB<libdlpi.h>\fR as follows:
32 .sp
33 .in +2
34 .nf
35 typedef struct {
36      uint_t                  di_opts;
37      uint_t                  di_max_sdu;
38      uint_t                  di_min_sdu;
39      uint_t                  di_state;
40      uchar_t                 di_mactype;
41      char                    di_linkname[DLPI_LINKNAME_MAX];
42      uchar_t                 di_physaddr[DLPI_PHYSADDR_MAX];
43      uchar_t                 di_physaddrlen;
44      uchar_t                 di_bcastaddr[DLPI_PHYSADDR_MAX];
45      uchar_t                 di_bcastaddrlen;
46      uint_t                  di_sap;
47      int                     di_timeout;
48      dl_qos_cl_sel1_t        di_qos_sel;
49      dl_qos_cl_range1_t      di_qos_range;
50 } dlpi_info_t;
51 .fi
52 .in -2
54 .sp
55 .ne 2
56 .na
57 \fB\fIdi_opts\fR\fR
58 .ad
59 .RS 19n
60 Reserved for future \fBdlpi_info_t\fR expansion.
61 .RE
63 .sp
64 .ne 2
65 .na
66 \fB\fIdi_max_sdu\fR\fR
67 .ad
68 .RS 19n
69 Maximum message size, in bytes, that the \fBDLPI\fR link is able to accept for
70 transmission. The value is guaranteed to be greater than or equal to
71 \fIdi_min_sdu\fR.
72 .RE
74 .sp
75 .ne 2
76 .na
77 \fB\fIdi_min_sdu\fR\fR
78 .ad
79 .RS 19n
80 Minimum message size, in bytes, that the \fBDLPI\fR link is able to accept for
81 transmission. The value is guaranteed to be greater than or equal to one.
82 .RE
84 .sp
85 .ne 2
86 .na
87 \fB\fIdi_state\fR\fR
88 .ad
89 .RS 19n
90 Current \fBDLPI\fR state of \fIdh\fR; either \fBDL_UNBOUND\fR or \fBDL_IDLE\fR.
91 .RE
93 .sp
94 .ne 2
95 .na
96 \fB\fIdi_mactype\fR\fR
97 .ad
98 .RS 19n
99 \fBMAC\fR type supported by the \fBDLPI\fR link associated with \fIdh\fR. See
100 \fB<sys/dlpi.h>\fR for the list of possible \fBMAC\fR types.
104 .ne 2
106 \fB\fIdi_linkname\fR\fR
108 .RS 19n
109 Link name associated with \fBDLPI\fR handle \fIdh\fR.
113 .ne 2
115 \fB\fIdi_physaddr\fR\fR
117 .RS 19n
118 Link-layer physical address of bound \fIdh\fR. If \fIdh\fR is in the
119 \fBDL_UNBOUND\fR \fBDLPI\fR state, the contents of \fIdi_physaddr\fR are
120 unspecified.
124 .ne 2
126 \fB\fIdi_physaddrlen\fR\fR
128 .RS 19n
129 Physical address length, in bytes. If \fIdh\fR is in the \fBDL_UNBOUND\fR
130 \fBDLPI\fR state, \fIdi_physaddrlen\fR is set to zero.
134 .ne 2
136 \fB\fIdi_bcastaddr\fR\fR
138 .RS 19n
139 Link-layer broadcast address. If the \fIdi_mactype\fR of the \fBDLPI\fR link
140 does not support broadcast, the contents of \fIdi_bcastaddr\fR are unspecified.
144 .ne 2
146 \fB\fIdi_bcastaddrlen\fR\fR
148 .RS 19n
149 Link-layer broadcast address length, in bytes. If the \fIdi_mactype\fR of the
150 \fBDLPI\fR link does not support broadcast, \fIdi_bcastaddrlen\fR is set to
151 zero.
155 .ne 2
157 \fB\fIdi_sap\fR\fR
159 .RS 19n
160 \fBSAP\fR currently bound to handle. If \fIdh\fR is in the \fBDL_UNBOUND\fR
161 \fBDLPI\fR state, \fIdi_sap\fR is set to zero.
165 .ne 2
167 \fB\fIdi_timeout\fR\fR
169 .RS 19n
170 Current timeout value, in seconds, set on the \fBdlpi\fR handle.
174 .ne 2
176 \fB\fIdi_qos_sel\fR\fR
178 .RS 19n
179 Current \fBQOS\fR parameters supported by the \fBDLPI\fR link instance
180 associated with \fIdh\fR. Unsupported \fBQOS\fR parameters are set to
181 \fBDL_UNKNOWN\fR.
185 .ne 2
187 \fB\fIdi_qos_range\fR\fR
189 .RS 19n
190 Available range of \fBQOS\fR parameters supported by a \fBDLPI\fR link instance
191 associated with the \fBDLPI\fR handle \fIdh\fR. Unsupported \fBQOS\fR range
192 values are set to \fBDL_UNKNOWN\fR.
195 .SH RETURN VALUES
198 Upon success, \fBDLPI_SUCCESS\fR is returned. If \fBDL_SYSERR\fR is returned,
199 \fBerrno\fR contains the specific UNIX system error value. Otherwise, a
200 \fBDLPI\fR error value defined in \fB<sys/dlpi.h>\fR or an error value listed
201 in the following section is returned.
202 .SH ERRORS
204 .ne 2
206 \fB\fBDLPI_EBADMSG\fR\fR
208 .RS 20n
209 Bad DLPI message
213 .ne 2
215 \fB\fBDLPI_EINHANDLE\fR\fR
217 .RS 20n
218 Invalid \fBDLPI\fR handle
222 .ne 2
224 \fB\fBDLPI_EINVAL\fR\fR
226 .RS 20n
227 Invalid argument
231 .ne 2
233 \fB\fBDLPI_EMODENOTSUP\fR\fR
235 .RS 20n
236 Unsupported \fBDLPI\fR connection mode
240 .ne 2
242 \fB\fBDLPI_ETIMEDOUT\fR\fR
244 .RS 20n
245 \fBDLPI\fR operation timed out
249 .ne 2
251 \fB\fBDLPI_EVERNOTSUP\fR\fR
253 .RS 20n
254 Unsupported \fBDLPI\fR Version
258 .ne 2
260 \fB\fBDLPI_FAILURE\fR\fR
262 .RS 20n
263 \fBDLPI\fR operation failed
266 .SH EXAMPLES
268 \fBExample 1 \fRGet link-layer broadcast address
271 The following example shows how \fBdlpi_info()\fR can be used.
274 .in +2
276 #include <libdlpi.h>
278 uchar_t *
279 get_bcastaddr(const char *linkname, uchar_t *baddrlenp)
281         dlpi_handle_t   dh;
282         dlpi_info_t     dlinfo;
283         uchar_t         *baddr;
285         if (dlpi_open(linkname, &dh, 0) != DLPI_SUCCESS)
286                 return (NULL);
288         if (dlpi_info(dh, &dlinfo, 0) != DLPI_SUCCESS) {
289                 dlpi_close(dh);
290                 return (NULL);
291         }
292         dlpi_close(dh);
294         *baddrlenp = dlinfo.di_bcastaddrlen;
295         if ((baddr = malloc(*baddrlenp)) == NULL)
296                 return (NULL);
298         return (memcpy(baddr, dlinfo.di_bcastaddr, *baddrlenp));
301 .in -2
303 .SH ATTRIBUTES
306 See \fBattributes\fR(5) for description of the following attributes:
311 box;
312 c | c
313 l | l .
314 ATTRIBUTE TYPE  ATTRIBUTE VALUE
316 Interface Stability     Committed
318 MT-Level        Safe
321 .SH SEE ALSO
324 \fBdlpi_bind\fR(3DLPI), \fBlibdlpi\fR(3LIB), \fBattributes\fR(5)