Merge commit '9276b3991ba20d5a5660887ba81b0bc7bed25a0c'
[unleashed.git] / share / man / man9f / ddi_fm_ereport_post.9f
blob9373636d00e2aae36e4d82c0dbff9c6db867b72b
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 DDI_FM_EREPORT_POST 9F "May 14, 2007"
7 .SH NAME
8 ddi_fm_ereport_post \- post an FMA Protocol Error Report Event
9 .SH SYNOPSIS
10 .LP
11 .nf
12 #include <sys/ddifm.h>
14 \fBvoid\fR \fBddi_fm_ereport_post\fR(\fBdev_info_t\fR *\fIdip\fR, \fBchar\fR *\fIereport_class\fR,
15      \fBuint64_t\fR \fIena\fR, \fBint\fR *\fIsflag\fR, ... /* name-value pair args */);
16 .fi
18 .SH INTERFACE LEVEL
19 .sp
20 .LP
21 Solaris DDI specific (Solaris DDI)
22 .SH PARAMETERS
23 .sp
24 .ne 2
25 .na
26 \fB\fIdip\fR\fR
27 .ad
28 .RS 17n
29 Pointer to the \fBdev_info\fR structure
30 .RE
32 .sp
33 .ne 2
34 .na
35 \fB\fIereport_class\fR\fR
36 .ad
37 .RS 17n
38 \fBFMA\fR Event Protocol error class
39 .RE
41 .sp
42 .ne 2
43 .na
44 \fB\fIena\fR\fR
45 .ad
46 .RS 17n
47 Error Numeric Association
48 .RE
50 .sp
51 .ne 2
52 .na
53 \fB\fIsflag\fR\fR
54 .ad
55 .RS 17n
56 Determines whether caller can sleep for memory or other event resources.
57 .RE
59 .SH DESCRIPTION
60 .sp
61 .LP
62 The \fBddi_fm_ereport_post()\fR function causes an encoded fault management
63 error report name-value pair list to be queued for delivery to the Fault
64 Manager daemon, \fBfmd\fR(8). The \fIsflag\fR parameter indicates whether or
65 not the caller is willing to wait for system memory and event channel resources
66 to become available.
67 .sp
68 .LP
69 The following \fIereport_class\fR strings are available for use by any leaf
70 device driver:
71 .sp
72 .ne 2
73 .na
74 \fB\fBdevice.inval_state\fR\fR
75 .ad
76 .RS 24n
77 A leaf driver discovers that the device is in an invalid or inconsistent state.
78 For example, the driver might detect that receive or send ring descriptor
79 indices are corrupted. It might also find an invalid value in a register or a
80 driver-to-device protocol violation.
81 .RE
83 .sp
84 .ne 2
85 .na
86 \fB\fBdevice.no_response\fR\fR
87 .ad
88 .RS 24n
89 A leaf driver times out waiting for a response from the device. For example,
90 timeouts can occur when no confirmation is seen after resetting, enabling, or
91 disabling part of the device.
92 .RE
94 .sp
95 .ne 2
96 .na
97 \fB\fBdevice.badint_limit\fR\fR
98 .ad
99 .RS 24n
100 A leaf device sends too many consecutive interrupts with no work to do.
104 .ne 2
106 \fB\fBdevice.intern_corr\fR\fR
108 .RS 24n
109 A leaf device reports to the driver that it has itself detected an internal
110 correctable error.
114 .ne 2
116 \fB\fBdevice.intern_uncorr\fR\fR
118 .RS 24n
119 A leaf device reports to the driver that it has itself detected an internal
120 uncorrectable error.
124 .ne 2
126 \fB\fBdevice.stall\fR\fR
128 .RS 24n
129 A leaf driver determines that data transmission has stalled indefinitely.
134 The \fIena\fR indicates the Format 1 Error Numeric Association for this error
135 report. It might have already been initialized by another error-detecting
136 software module. For example, if \fBddi_fm_ereport_post()\fR is called from an
137 error handler callback function, the \fIfme_ena\fR field from the passed-in
138 \fBddi_fm_error\fR argument should be used. Otherwise it should be set to
139 \fB0\fR and will be initialized by \fBddi_fm_ereport_post()\fR.
142 The name-value pair \fIargs\fR variable argument list contains one or more
143 (names, type, value pointer) nvpair tuples for non-array \fBdata_type_t\fR
144 types or one or more (name, type, number of elements, value pointer) tuples for
145 \fBdata_type_t\fR array types. There is one mandatory tuple to describe the
146 \fBereport\fR version. This should contain the following values:
147 .RS +4
149 .ie t \(bu
150 .el o
151 name - \fBFM_VERSION\fR
153 .RS +4
155 .ie t \(bu
156 .el o
157 type - \fBDATA_TYPE_UINT8\fR
159 .RS +4
161 .ie t \(bu
162 .el o
163 value - \fBFM_EREPORT_VERS0\fR
167 Additional nvpair tuples can describe error conditions for logging purposes,
168 but are not interpreted by the \fBI/O\fR framework or fault manager. The end of
169 the argument list is specified by \fINULL\fR.
170 .SH CONTEXT
173 The \fBddi_fm_ereport_post()\fR function can be called from user, kernel, or
174 high-level interrupt context.
175 .SH ATTRIBUTES
178 See \fBattributes\fR(5) for descriptions of the following attributes:
183 box;
184 c | c
185 l | l .
186 ATTRIBUTE TYPE  ATTRIBUTE VALUE
188 Interface Stability     Committed
191 .SH SEE ALSO
194 \fBfmd\fR(8), \fBattributes\fR(5), \fBddi_fm_service_impact\fR(9F)