DDI_FM_ERROR(9S) Data Structures for Drivers DDI_FM_ERROR(9S)

NAME


ddi_fm_error - I/O error status structure

SYNOPSIS


#include <sys/ddifm.h>


INTERFACE LEVEL


illumos DDI specific (illumos DDI)

DESCRIPTION


A ddi_fm_error_t structure contains common data necessary for I/O error
handling. A pointer to a ddi_fm_error_t structure is passed to error
handling callbacks where it can then be used in a call to
pci_ereport_post(). The same structure is also returned to callers of
ddi_fm_acc_err_get() and ddi_fm_dma_err_get().

STRUCTURE MEMBERS


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;


The fme_version is the current version of ddi_fm_error_t. Valid values
for the version are: DDI_FME_VER0 and DDI_FME_VER1.


The fme_ena is the FMA event protocol Format 1 Error Numeric Association
(ENA) for this error condition.


The fme_flag field is set to DDI_FM_ERR_EXPECTED if the error is the
result of a DDI_ACC_CAUTIOUS protected operation. In this case,
fme_acc_handle is valid and the driver should check for and report only
errors not associated with the DDI_ACC_CAUTIOUS protected access
operation. This field can also be set to DDI_FM_ERR_POKE or
DDI_FM_ERR_PEEK if the error is the result of a ddi_peek(9F) or
ddi_poke(9F) operation. The driver should handle these in a similar way
to DDI_FM_ERR_EXPECTED. Otherwise, ddi_flag is set to
DDI_FM_ERR_UNEXPECTED and the driver must perform the full range of error
handling tasks.


The fme_status indicates current status of an error handler callback or
resource handle:

DDI_FM_OK
No errors were detected.


DDI_FM_FATAL
An error which is considered fatal to the operational
state of the system was detected.


DDI_FM_NONFATAL
An error which is not considered fatal to the
operational state of the system was detected.


DDI_FM_UNKNOWN
An error was detected, but the driver was unable to
determine the impact of the error on the operational
state of the system.


The fme_acc_handle is the valid access handle associated with the error
that can be returned from pci_ereport_post()


The fme_dma_handle is the valid DMA handle associated with the error that
can be returned from pci_ereport_post()

ATTRIBUTES


See attributes(7) for descriptions of the following attributes:


+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Committed |
+--------------------+-----------------+

SEE ALSO


attributes(7), ddi_fm_acc_err_get(9F), ddi_fm_dma_err_get(9F),
ddi_fm_handler_register(9F), ddi_peek(9F), ddi_poke(9F),
pci_ereport_post(9F)


Writing Device Drivers

illumos May 13, 2007 DDI_FM_ERROR(9S)