8322 nl: misleading-indentation
[unleashed/tickless.git] / usr / src / man / man3contract / ct_dev_status_get_dev_state.3contract
blobafaaa497d653d6491b37400305b1279934efa845
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 CT_DEV_STATUS_GET_DEV_STATE 3CONTRACT "Aug 9, 2007"
7 .SH NAME
8 ct_dev_status_get_dev_state, ct_dev_status_get_aset, ct_dev_status_get_minor,
9 ct_dev_status_get_noneg \- read contract status information from a status
10 object
11 .SH SYNOPSIS
12 .LP
13 .nf
14 cc [ \fIflag\fR\&.\|.\|. ] \fIfile\fR\&.\|.\|. \fB-D_LARGEFILE64_SOURCE\fR \fB -lcontract \fR [ \fIlibrary\fR\&.\|.\|. ]
15 #include <libcontract.h>
16 #include <sys/contract/device.h>
18 \fBint\fR \fBct_dev_status_get_dev_state\fR(\fBct_stathdl_t\fR \fIstathdl\fR,
19      \fBuint_t *\fR\fIstatep\fR);
20 .fi
22 .LP
23 .nf
24 \fBint\fR \fBct_dev_status_get_aset\fR(\fBct_stathdl_t\fR \fIstathdl\fR,
25      \fBuint_t *\fR\fIasetp\fR);
26 .fi
28 .LP
29 .nf
30 \fBint\fR \fBct_dev_status_get_minor\fR(\fBct_stathdl_t\fR \fIstathdl\fR, \fBchar *\fR\fIbuf\fR,
31      \fBsize_t *\fR\fIbuflenp\fR);
32 .fi
34 .LP
35 .nf
36 \fBint\fR \fBct_dev_status_get_noneg\fR(\fBct_stathdl_t\fR \fIstathdl\fR,
37      \fBuint_t *\fR\fInonegp\fR);
38 .fi
40 .SH PARAMETERS
41 .sp
42 .ne 2
43 .na
44 \fB\fIasetp\fR\fR
45 .ad
46 .RS 11n
47 a pointer to a \fBuint_t\fR variable for receiving the acceptable state set
48 (such as A-set) for the contract
49 .RE
51 .sp
52 .ne 2
53 .na
54 \fB\fIbuf\fR\fR
55 .ad
56 .RS 11n
57 a buffer for receiving the \fBdevfs\fR path of a minor in a contract
58 .RE
60 .sp
61 .ne 2
62 .na
63 \fB\fIbuflenp\fR\fR
64 .ad
65 .RS 11n
66 a pointer to a variable of type \fBsize_t\fR for passing the size of the buffer
67 \fIbuf\fR. If the buffer is too small (< \fBPATH_MAX\fR), the minimum size of
68 the buffer needed (\fBPATH_MAX\fR) is passed back to the caller with this
69 argument.
70 .RE
72 .sp
73 .ne 2
74 .na
75 \fB\fInonegp\fR\fR
76 .ad
77 .RS 11n
78 a pointer to a \fBuint_t\fR variable for receiving the setting of the "noneg"
79 term
80 .RE
82 .sp
83 .ne 2
84 .na
85 \fB\fIstathdl\fR\fR
86 .ad
87 .RS 11n
88 a status object returned by \fBct_status_read\fR(3CONTRACT)
89 .RE
91 .sp
92 .ne 2
93 .na
94 \fB\fIstatep\fR\fR
95 .ad
96 .RS 11n
97 a pointer to a \fBuint_t\fR variable for receiving the current state of the
98 device which is the subject of the contract
99 .RE
101 .SH DESCRIPTION
104 These functions read contract status information from a status object
105 \fIstathdl\fR returned by \fBct_status_read()\fR. The detail level in the call
106 to \fBct_status_read()\fR needs to be at least \fBCTD_FIXED\fR for the
107 following calls to be successful. The one exception is
108 \fBct_dev_status_get_minor()\fR, which requires a detail level of
109 \fBCTD_ALL\fR.
112 The \fBct_dev_status_get_dev_state()\fR function returns the current state of
113 the device which is the subject of the contract. This can be one of the
114 following:
116 .ne 2
118 \fB\fBCT_DEV_EV_ONLINE\fR\fR
120 .RS 22n
121 The device is online and functioning normally.
125 .ne 2
127 \fB\fBCT_DEV_EV_DEGRADED\fR\fR
129 .RS 22n
130 The device is online but degraded.
134 .ne 2
136 \fB\fBCT_DEV_EV_OFFLINE\fR\fR
138 .RS 22n
139 The device is offline and not configured.
144 The \fBct_dev_status_get_aset()\fR function returns the A-set of the contract.
145 This can be the bitset of one or more of the following states:
146 \fBCT_DEV_EV_ONLINE\fR, \fBCT_DEV_EV_DEGRADED\fR, or \fBCT_DEV_EV_OFFLINE\fR.
149 The \fBct_dev_status_get_minor()\fR function reads the \fBdevfs\fR path of the
150 minor participating in the contract. The \fBdevfs\fR path returned does not
151 include the \fB/devices\fR prefix. If the buffer passed in by the caller is too
152 small (< \fBPATH_MAX\fR), the minimum size of the buffer required (
153 \fBPATH_MAX\fR) is returned to the caller via the \fIbuflenp\fR argument.
156 The \fBct_dev_status_get_noneg()\fR function returns the "noneg" setting for
157 the contract. A value of 1 is returned in the \fInonegp\fR argument if
158 \fBNONEG\fR is set, else 0 is returned.
159 .SH RETURN VALUES
162 Upon successful completion, these functions return 0. Otherwise, they return a
163 non-zero error value.
164 .SH ERRORS
167 The \fBct_dev_status_get_minor()\fR function will fail if:
169 .ne 2
171 \fB\fBEOVERFLOW\fR\fR
173 .RS 13n
174 The buffer size is too small to hold the result.
179 The \fBct_dev_status_get_dev_state()\fR, \fBct_dev_status_get_aset()\fR,
180 \fBct_dev_status_get_minor()\fR and \fBct_dev_status_get_noneg()\fR  functions
181 will fail if:
183 .ne 2
185 \fB\fBEINVAL\fR\fR
187 .RS 10n
188 An invalid argument was specified.
192 .ne 2
194 \fB\fBENOENT\fR\fR
196 .RS 10n
197 The requested data is not present in the status object.
200 .SH ATTRIBUTES
203 See \fBattributes\fR(5) for descriptions of the following attributes:
208 box;
209 c | c
210 l | l .
211 ATTRIBUTE TYPE  ATTRIBUTE VALUE
213 Interface Stability     Committed
215 MT-Level        Safe
218 .SH SEE ALSO
221 \fBct_status_free\fR(3CONTRACT), \fBct_status_read\fR(3CONTRACT),
222 \fBlibcontract\fR(3LIB), \fBcontract\fR(4), \fBdevices\fR(4),
223 \fBattributes\fR(5), \fBlfcompile\fR(5)