Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

ddi_fm_error(9s) [opensolaris man page]

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
Solaris DDI specific (Solaris 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(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Committed | +-----------------------------+-----------------------------+ SEE ALSO
attributes(5), ddi_fm_acc_err_get(9F), ddi_fm_dma_err_get(9F), ddi_fm_handler_register(9F), ddi_peek(9F), ddi_poke(9F), pci_ere- port_post(9F) Writing Device Drivers SunOS 5.11 13 May 2007 ddi_fm_error(9S)

Check Out this Related Man Page

ddi_fm_ereport_post(9F) 				   Kernel Functions for Drivers 				   ddi_fm_ereport_post(9F)

NAME
ddi_fm_ereport_post - post an FMA Protocol Error Report Event SYNOPSIS
#include <sys/ddifm.h> void ddi_fm_ereport_post(dev_info_t *dip, char *ereport_class, uint64_t ena, int *sflag, ... /* name-value pair args */); INTERFACE LEVEL
Solaris DDI specific (Solaris DDI) PARAMETERS
dip Pointer to the dev_info structure ereport_class FMA Event Protocol error class ena Error Numeric Association sflag Determines whether caller can sleep for memory or other event resources. DESCRIPTION
The ddi_fm_ereport_post() function causes an encoded fault management error report name-value pair list to be queued for delivery to the Fault Manager daemon, fmd(1M). The sflag parameter indicates whether or not the caller is willing to wait for system memory and event chan- nel resources to become available. The following ereport_class strings are available for use by any leaf device driver: device.inval_state A leaf driver discovers that the device is in an invalid or inconsistent state. For example, the driver might detect that receive or send ring descriptor indices are corrupted. It might also find an invalid value in a regis- ter or a driver-to-device protocol violation. device.no_response A leaf driver times out waiting for a response from the device. For example, timeouts can occur when no confirma- tion is seen after resetting, enabling, or disabling part of the device. device.badint_limit A leaf device sends too many consecutive interrupts with no work to do. device.intern_corr A leaf device reports to the driver that it has itself detected an internal correctable error. device.intern_uncorr A leaf device reports to the driver that it has itself detected an internal uncorrectable error. device.stall A leaf driver determines that data transmission has stalled indefinitely. The ena indicates the Format 1 Error Numeric Association for this error report. It might have already been initialized by another error- detecting software module. For example, if ddi_fm_ereport_post() is called from an error handler callback function, the fme_ena field from the passed-in ddi_fm_error argument should be used. Otherwise it should be set to 0 and will be initialized by ddi_fm_ereport_post(). The name-value pair args variable argument list contains one or more (names, type, value pointer) nvpair tuples for non-array data_type_t types or one or more (name, type, number of elements, value pointer) tuples for data_type_t array types. There is one mandatory tuple to describe the ereport version. This should contain the following values: o name - FM_VERSION o type - DATA_TYPE_UINT8 o value - FM_EREPORT_VERS0 Additional nvpair tuples can describe error conditions for logging purposes, but are not interpreted by the I/O framework or fault manager. The end of the argument list is specified by NULL. CONTEXT
The ddi_fm_ereport_post() function can be called from user, kernel, or high-level interrupt context. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Committed | +-----------------------------+-----------------------------+ SEE ALSO
fmd(1M), attributes(5), ddi_fm_service_impact(9F) SunOS 5.11 14 May 2007 ddi_fm_ereport_post(9F)
Man Page