DDI_FM_EREPORT_POST(9F)                         Kernel Functions for Drivers
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
       illumos DDI specific (illumos 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(8). The 
sflag parameter indicates whether
       or not the caller is willing to wait for system memory and event
       channel 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 register 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 confirmation 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(7) for descriptions of the following attributes:
       +--------------------+-----------------+
       |  ATTRIBUTE TYPE    | ATTRIBUTE VALUE |
       +--------------------+-----------------+
       |Interface Stability | Committed       |
       +--------------------+-----------------+
SEE ALSO
       attributes(7), 
fmd(8), 
ddi_fm_service_impact(9F)                                May 14, 2007         DDI_FM_EREPORT_POST(9F)