Kernel Functions for Drivers ddi_fm_ereport_post(9F)
NAME
ddi_fm_ereport_post - post an FMA Protocol Error Report
EventSYNOPSIS
#include
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 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 incon-
sistent 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 adriver-to-device protocol violation.
device.no_response A leaf driver times out waiting for
a response from the device. ForSunOS 5.11 Last change: 14 May 2007 1
Kernel Functions for Drivers ddi_fm_ereport_post(9F)
example, timeouts can occur when noconfirmation is seen after reset-
ting, enabling, or disabling part of the device.device.badint_limit A leaf device sends too many con-
secutive 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 datatransmission has stalled indefin-
itely. The ena indicates the Format 1 Error Numeric Association for this error report. It might have already been initialized byanother error-detecting software module. For example, if
ddi_fm_ereport_post() is called from an error handler call-
back 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 forlogging purposes, but are not interpreted by the I/O
SunOS 5.11 Last change: 14 May 2007 2
Kernel Functions for Drivers ddi_fm_ereport_post(9F)
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 attri-
butes:____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Interface Stability | Committed ||_____________________________|_____________________________|
SEE ALSO
fmd(1M), attributes(5), ddi_fm_service_impact(9F)
SunOS 5.11 Last change: 14 May 2007 3