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 May 13, 2007 DDI_FM_ERROR(9S)