1ddi_fm_ereport_post(9F) Kernel Functions for Drivers ddi_fm_ereport_post(9F)
2
3
4
6 ddi_fm_ereport_post - post an FMA Protocol Error Report Event
7
9 #include <sys/ddifm.h>
10
11 void ddi_fm_ereport_post(dev_info_t *dip, char *ereport_class,
12 uint64_t ena, int *sflag, ... /* name-value pair args */);
13
14
16 Solaris DDI specific (Solaris DDI)
17
19 dip Pointer to the dev_info structure
20
21
22 ereport_class FMA Event Protocol error class
23
24
25 ena Error Numeric Association
26
27
28 sflag Determines whether caller can sleep for memory or
29 other event resources.
30
31
33 The ddi_fm_ereport_post() function causes an encoded fault management
34 error report name-value pair list to be queued for delivery to the
35 Fault Manager daemon, fmd(1M). The sflag parameter indicates whether or
36 not the caller is willing to wait for system memory and event channel
37 resources to become available.
38
39
40 The following ereport_class strings are available for use by any leaf
41 device driver:
42
43 device.inval_state A leaf driver discovers that the device is in
44 an invalid or inconsistent state. For example,
45 the driver might detect that receive or send
46 ring descriptor indices are corrupted. It might
47 also find an invalid value in a register or a
48 driver-to-device protocol violation.
49
50
51 device.no_response A leaf driver times out waiting for a response
52 from the device. For example, timeouts can
53 occur when no confirmation is seen after reset‐
54 ting, enabling, or disabling part of the
55 device.
56
57
58 device.badint_limit A leaf device sends too many consecutive inter‐
59 rupts with no work to do.
60
61
62 device.intern_corr A leaf device reports to the driver that it has
63 itself detected an internal correctable error.
64
65
66 device.intern_uncorr A leaf device reports to the driver that it has
67 itself detected an internal uncorrectable
68 error.
69
70
71 device.stall A leaf driver determines that data transmission
72 has stalled indefinitely.
73
74
75
76 The ena indicates the Format 1 Error Numeric Association for this error
77 report. It might have already been initialized by another error-detect‐
78 ing software module. For example, if ddi_fm_ereport_post() is called
79 from an error handler callback function, the fme_ena field from the
80 passed-in ddi_fm_error argument should be used. Otherwise it should be
81 set to 0 and will be initialized by ddi_fm_ereport_post().
82
83
84 The name-value pair args variable argument list contains one or more
85 (names, type, value pointer) nvpair tuples for non-array data_type_t
86 types or one or more (name, type, number of elements, value pointer)
87 tuples for data_type_t array types. There is one mandatory tuple to
88 describe the ereport version. This should contain the following values:
89
90 o name - FM_VERSION
91
92 o type - DATA_TYPE_UINT8
93
94 o value - FM_EREPORT_VERS0
95
96
97 Additional nvpair tuples can describe error conditions for logging pur‐
98 poses, but are not interpreted by the I/O framework or fault manager.
99 The end of the argument list is specified by NULL.
100
102 The ddi_fm_ereport_post() function can be called from user, kernel, or
103 high-level interrupt context.
104
106 See attributes(5) for descriptions of the following attributes:
107
108
109
110
111 ┌─────────────────────────────┬─────────────────────────────┐
112 │ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
113 ├─────────────────────────────┼─────────────────────────────┤
114 │Interface Stability │Committed │
115 └─────────────────────────────┴─────────────────────────────┘
116
118 fmd(1M), attributes(5), ddi_fm_service_impact(9F)
119
120
121
122SunOS 5.11 14 May 2007 ddi_fm_ereport_post(9F)