'\" te .\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved. .\" 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. .\" 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. .\" 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] .TH DDI_FM_ERROR 9S "May 13, 2007" .SH NAME ddi_fm_error \- I/O error status structure .SH SYNOPSIS .nf #include .fi .SH INTERFACE LEVEL illumos DDI specific (illumos DDI) .SH DESCRIPTION A \fBddi_fm_error_t\fR structure contains common data necessary for \fBI/O\fR error handling. A pointer to a \fBddi_fm_error_t\fR structure is passed to error handling callbacks where it can then be used in a call to \fBpci_ereport_post()\fR. The same structure is also returned to callers of \fBddi_fm_acc_err_get()\fR and \fBddi_fm_dma_err_get()\fR. .SH STRUCTURE MEMBERS .in +2 .nf int fme_version; uint64_t fme_ena; int fme_status; int fme_flag; ddi_acc_handle_t fme_acc_handle; ddi_dma_handle_t fme_dma_handle; .fi .in -2 .sp .LP The \fBfme_version\fR is the current version of \fBddi_fm_error_t\fR. Valid values for the version are: \fBDDI_FME_VER0\fR and \fBDDI_FME_VER1\fR. .sp .LP The \fBfme_ena\fR is the \fBFMA\fR event protocol Format 1 Error Numeric Association (\fBENA\fR) for this error condition. .sp .LP The \fBfme_flag\fR field is set to \fBDDI_FM_ERR_EXPECTED\fR if the error is the result of a \fBDDI_ACC_CAUTIOUS\fR protected operation. In this case, \fBfme_acc_handle\fR is valid and the driver should check for and report only errors not associated with the \fBDDI_ACC_CAUTIOUS\fR protected access operation. This field can also be set to \fBDDI_FM_ERR_POKE\fR or \fBDDI_FM_ERR_PEEK\fR if the error is the result of a \fBddi_peek\fR(9F) or \fBddi_poke\fR(9F) operation. The driver should handle these in a similar way to \fBDDI_FM_ERR_EXPECTED\fR. Otherwise, \fBddi_flag\fR is set to \fBDDI_FM_ERR_UNEXPECTED\fR and the driver must perform the full range of error handling tasks. .sp .LP The \fBfme_status\fR indicates current status of an error handler callback or resource handle: .sp .ne 2 .na \fB\fBDDI_FM_OK\fR\fR .ad .RS 19n No errors were detected. .RE .sp .ne 2 .na \fB\fBDDI_FM_FATAL\fR\fR .ad .RS 19n An error which is considered fatal to the operational state of the system was detected. .RE .sp .ne 2 .na \fB\fBDDI_FM_NONFATAL\fR\fR .ad .RS 19n An error which is not considered fatal to the operational state of the system was detected. .RE .sp .ne 2 .na \fB\fBDDI_FM_UNKNOWN\fR\fR .ad .RS 19n An error was detected, but the driver was unable to determine the impact of the error on the operational state of the system. .RE .sp .LP The \fBfme_acc_handle\fR is the valid access handle associated with the error that can be returned from \fBpci_ereport_post()\fR .sp .LP The \fBfme_dma_handle\fR is the valid \fBDMA\fR handle associated with the error that can be returned from \fBpci_ereport_post()\fR .SH ATTRIBUTES See \fBattributes\fR(7) for descriptions of the following attributes: .sp .sp .TS box; c | c l | l . ATTRIBUTE TYPE ATTRIBUTE VALUE _ Interface Stability Committed .TE .SH SEE ALSO .BR attributes (7), .BR ddi_fm_acc_err_get (9F), .BR ddi_fm_dma_err_get (9F), .BR ddi_fm_handler_register (9F), .BR ddi_peek (9F), .BR ddi_poke (9F), .BR pci_ereport_post (9F) .sp .LP \fIWriting Device Drivers\fR