1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
|
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _SYS_FM_FS_ZFS_H
#define _SYS_FM_FS_ZFS_H
#ifdef __cplusplus
extern "C" {
#endif
#define ZFS_ERROR_CLASS "fs.zfs"
#define FM_EREPORT_ZFS_CHECKSUM "checksum"
#define FM_EREPORT_ZFS_AUTHENTICATION "authentication"
#define FM_EREPORT_ZFS_IO "io"
#define FM_EREPORT_ZFS_DATA "data"
#define FM_EREPORT_ZFS_DELAY "delay"
#define FM_EREPORT_ZFS_POOL "zpool"
#define FM_EREPORT_ZFS_DEVICE_UNKNOWN "vdev.unknown"
#define FM_EREPORT_ZFS_DEVICE_OPEN_FAILED "vdev.open_failed"
#define FM_EREPORT_ZFS_DEVICE_CORRUPT_DATA "vdev.corrupt_data"
#define FM_EREPORT_ZFS_DEVICE_NO_REPLICAS "vdev.no_replicas"
#define FM_EREPORT_ZFS_DEVICE_BAD_GUID_SUM "vdev.bad_guid_sum"
#define FM_EREPORT_ZFS_DEVICE_TOO_SMALL "vdev.too_small"
#define FM_EREPORT_ZFS_DEVICE_BAD_LABEL "vdev.bad_label"
#define FM_EREPORT_ZFS_DEVICE_BAD_ASHIFT "vdev.bad_ashift"
#define FM_EREPORT_ZFS_IO_FAILURE "io_failure"
#define FM_EREPORT_ZFS_PROBE_FAILURE "probe_failure"
#define FM_EREPORT_ZFS_LOG_REPLAY "log_replay"
#define FM_EREPORT_ZFS_CONFIG_CACHE_WRITE "config_cache_write"
#define FM_EREPORT_PAYLOAD_ZFS_POOL "pool"
#define FM_EREPORT_PAYLOAD_ZFS_POOL_FAILMODE "pool_failmode"
#define FM_EREPORT_PAYLOAD_ZFS_POOL_GUID "pool_guid"
#define FM_EREPORT_PAYLOAD_ZFS_POOL_CONTEXT "pool_context"
#define FM_EREPORT_PAYLOAD_ZFS_VDEV_GUID "vdev_guid"
#define FM_EREPORT_PAYLOAD_ZFS_VDEV_TYPE "vdev_type"
#define FM_EREPORT_PAYLOAD_ZFS_VDEV_PATH "vdev_path"
#define FM_EREPORT_PAYLOAD_ZFS_VDEV_DEVID "vdev_devid"
#define FM_EREPORT_PAYLOAD_ZFS_VDEV_FRU "vdev_fru"
#define FM_EREPORT_PAYLOAD_ZFS_VDEV_STATE "vdev_state"
#define FM_EREPORT_PAYLOAD_ZFS_VDEV_ASHIFT "vdev_ashift"
#define FM_EREPORT_PAYLOAD_ZFS_VDEV_DELAYS "vdev_delays"
#define FM_EREPORT_PAYLOAD_ZFS_PARENT_GUID "parent_guid"
#define FM_EREPORT_PAYLOAD_ZFS_PARENT_TYPE "parent_type"
#define FM_EREPORT_PAYLOAD_ZFS_PARENT_PATH "parent_path"
#define FM_EREPORT_PAYLOAD_ZFS_PARENT_DEVID "parent_devid"
#define FM_EREPORT_PAYLOAD_ZFS_ZIO_OBJSET "zio_objset"
#define FM_EREPORT_PAYLOAD_ZFS_ZIO_OBJECT "zio_object"
#define FM_EREPORT_PAYLOAD_ZFS_ZIO_LEVEL "zio_level"
#define FM_EREPORT_PAYLOAD_ZFS_ZIO_BLKID "zio_blkid"
#define FM_EREPORT_PAYLOAD_ZFS_ZIO_ERR "zio_err"
#define FM_EREPORT_PAYLOAD_ZFS_ZIO_OFFSET "zio_offset"
#define FM_EREPORT_PAYLOAD_ZFS_ZIO_SIZE "zio_size"
#define FM_EREPORT_PAYLOAD_ZFS_PREV_STATE "prev_state"
#define FM_EREPORT_PAYLOAD_ZFS_CKSUM_EXPECTED "cksum_expected"
#define FM_EREPORT_PAYLOAD_ZFS_CKSUM_ACTUAL "cksum_actual"
#define FM_EREPORT_PAYLOAD_ZFS_CKSUM_ALGO "cksum_algorithm"
#define FM_EREPORT_PAYLOAD_ZFS_CKSUM_BYTESWAP "cksum_byteswap"
#define FM_EREPORT_PAYLOAD_ZFS_BAD_OFFSET_RANGES "bad_ranges"
#define FM_EREPORT_PAYLOAD_ZFS_BAD_RANGE_MIN_GAP "bad_ranges_min_gap"
#define FM_EREPORT_PAYLOAD_ZFS_BAD_RANGE_SETS "bad_range_sets"
#define FM_EREPORT_PAYLOAD_ZFS_BAD_RANGE_CLEARS "bad_range_clears"
#define FM_EREPORT_PAYLOAD_ZFS_BAD_SET_BITS "bad_set_bits"
#define FM_EREPORT_PAYLOAD_ZFS_BAD_CLEARED_BITS "bad_cleared_bits"
#define FM_EREPORT_PAYLOAD_ZFS_BAD_SET_HISTOGRAM "bad_set_histogram"
#define FM_EREPORT_PAYLOAD_ZFS_BAD_CLEARED_HISTOGRAM "bad_cleared_histogram"
#define FM_EREPORT_FAILMODE_WAIT "wait"
#define FM_EREPORT_FAILMODE_CONTINUE "continue"
#define FM_EREPORT_FAILMODE_PANIC "panic"
#define FM_RESOURCE_REMOVED "removed"
#define FM_RESOURCE_AUTOREPLACE "autoreplace"
#define FM_RESOURCE_STATECHANGE "statechange"
#ifdef __cplusplus
}
#endif
#endif /* _SYS_FM_FS_ZFS_H */
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _SYS_FM_IO_DDI_H
#define _SYS_FM_IO_DDI_H
#ifdef __cplusplus
extern "C" {
#endif
#define DDI_DVR_MAX_CLASS 32
/* IO-specific FMA ereport class defintions */
#define DDI_IO_CLASS "io"
/* leaf driver detected ereport definitions */
#define DDI_FM_DEVICE "device"
#define DDI_FM_DEVICE_INVAL_STATE "inval_state"
#define DDI_FM_DEVICE_NO_RESPONSE "no_response"
#define DDI_FM_DEVICE_STALL "stall"
#define DDI_FM_DEVICE_BADINT_LIMIT "badint_limit"
#define DDI_FM_DEVICE_INTERN_CORR "intern_corr"
#define DDI_FM_DEVICE_INTERN_UNCORR "intern_uncorr"
#define DDI_FM_DEVICE_FW_CORRUPT "fw_corrupt"
#define DDI_FM_DEVICE_FW_MISMATCH "fw_mismatch"
/* service impact ereport definitions */
#define DDI_FM_SERVICE_IMPACT "service"
#define DDI_FM_SERVICE_LOST "lost"
#define DDI_FM_SERVICE_DEGRADED "degraded"
#define DDI_FM_SERVICE_RESTORED "restored"
#define DDI_FM_SERVICE_UNAFFECTED "unaffected"
/* Driver defect ereport specifications */
#define DVR_ERPT "ddi."
#define DVR_ECONTEXT "context" /* Invalid calling context */
#define DVR_EINVAL "einval" /* Invalid calling semantic */
#define DVR_EFMCAP "fm-capability" /* Improper FM capability */
#define DVR_EVER "version" /* Invalid structure version */
/* Required payload member names */
#define DVR_NAME "dvr-name"
#define DVR_STACK "dvr-stack"
#define DVR_STACK_DEPTH "dvr-stack-depth"
#define DVR_ERR_SPECIFIC "dvr-error-specific"
/* Generic NIC driver ereports. */
#define DDI_FM_NIC "nic"
#define DDI_FM_TXR_ERROR "txr-err"
/* Valid values of the "error" field in txr-err ereports */
#define DDI_FM_TXR_ERROR_WHITELIST "whitelist"
#define DDI_FM_TXR_ERROR_NOTSUPP "notsupp"
#define DDI_FM_TXR_ERROR_OVERTEMP "overtemp"
#define DDI_FM_TXR_ERROR_HWFAIL "hwfail"
#define DDI_FM_TXR_ERROR_UNKNOWN "unknown"
#ifdef __cplusplus
}
#endif
#endif /* _SYS_FM_IO_DDI_H */
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
* Copyright 2016 Nexenta Systems, Inc. All rights reserved.
*/
#ifndef _SYS_FM_IO_DISK_H
#define _SYS_FM_IO_DISK_H
#ifdef __cplusplus
extern "C" {
#endif
#define DISK_ERROR_CLASS "io.disk"
#define FM_FAULT_DISK_PREDFAIL "predictive-failure"
#define FM_FAULT_DISK_OVERTEMP "over-temperature"
#define FM_FAULT_DISK_TESTFAIL "self-test-failure"
#define FM_FAULT_SSM_WEAROUT "ssm-wearout"
#ifdef __cplusplus
}
#endif
#endif /* _SYS_FM_IO_DISK_H */
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _SYS_FM_IO_OPL_MC_FM_H
#define _SYS_FM_IO_OPL_MC_FM_H
#ifdef __cplusplus
extern "C" {
#endif
/* mc-opl ereport components */
#define MC_OPL_ERROR_CLASS "asic.mac"
#define MC_OPL_PTRL_SUBCLASS "ptrl"
#define MC_OPL_MI_SUBCLASS "mi"
/*
* ereport definition
*/
#define MC_OPL_UE "ue"
#define MC_OPL_CE "ce"
#define MC_OPL_ICE "ice"
#define MC_OPL_CMPE "cmpe"
#define MC_OPL_MUE "mue"
#define MC_OPL_SUE "sue"
/* mc-opl payload name fields */
#define MC_OPL_BOARD "board"
#define MC_OPL_BANK "bank"
#define MC_OPL_STATUS "status"
#define MC_OPL_ERR_ADD "err-add"
#define MC_OPL_ERR_LOG "err-log"
#define MC_OPL_ERR_SYND "syndrome"
#define MC_OPL_ERR_DIMMSLOT "dimm-slot"
#define MC_OPL_ERR_DRAM "dram-place"
#define MC_OPL_PA "pa"
#define MC_OPL_FLT_TYPE "flt-type"
#define MC_OPL_RESOURCE "resource"
#define MC_OPL_NO_UNUM ""
#ifdef __cplusplus
}
#endif
#endif /* _SYS_FM_IO_OPL_MC_FM_H */
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _SYS_FM_IO_PCI_H
#define _SYS_FM_IO_PCI_H
#ifdef __cplusplus
extern "C" {
#endif
#define PCI_ERROR_SUBCLASS "pci"
#define PCI_SEC_ERROR_SUBCLASS "sec"
/* Common PCI ereport classes */
#define PCI_DET_PERR "dpe"
#define PCI_MDPE "mdpe"
#define PCI_REC_SERR "rserr"
#define PCI_SIG_SERR "sserr"
#define PCI_MA "ma"
#define PCI_REC_TA "rta"
#define PCI_SIG_TA "sta"
#define PCI_DTO "dto"
#define PCI_TARG_MDPE "target-mdpe"
#define PCI_TARG_MA "target-ma"
#define PCI_TARG_REC_TA "target-rta"
#define PCI_NR "nr"
/* PCI Error payload name fields */
#define PCI_CONFIG_STATUS "pci-status"
#define PCI_CONFIG_COMMAND "pci-command"
#define PCI_SEC_CONFIG_STATUS "pci-sec-status"
#define PCI_BCNTRL "pci-bdg-ctrl"
#define PCI_PA "pci-pa"
/*
* PCI-X extensions
*/
#define PCIX_ERROR_SUBCLASS "pcix"
#define PCIX_SEC_ERROR_SUBCLASS "sec-"
/* Common PCI-X ereport classes */
#define PCIX_ECC_CE_ADDR "ecc.ce-addr"
#define PCIX_ECC_CE_ATTR "ecc.ce-attr"
#define PCIX_ECC_CE_DATA "ecc.ce-data"
#define PCIX_ECC_UE_ADDR "ecc.ue-addr"
#define PCIX_ECC_UE_ATTR "ecc.ue-attr"
#define PCIX_ECC_UE_DATA "ecc.ue-data"
#define PCIX_RX_SPL_MSG "rx-spl"
#define PCIX_ECC_S_CE "s-ce"
#define PCIX_ECC_S_UE "s-ue"
#define PCIX_SPL_DIS "spl-dis"
#define PCIX_BSS_SPL_DLY "spl-dly"
#define PCIX_BSS_SPL_OR "spl-or"
#define PCIX_UNEX_SPL "unex-spl"
#define PCIX_SEC_STATUS "pcix-sec-status"
#define PCIX_BDG_STAT "pcix-bdg-stat"
#define PCIX_COMMAND "pcix-command"
#define PCIX_STATUS "pcix-status"
#define PCIX_ECC_CTLSTAT "pcix-ecc-ctlstat"
#define PCIX_ECC_ATTR "pcix-ecc-attr"
/*
* PCI Express extensions
*/
#define PCIEX_ERROR_SUBCLASS "pciex"
/* Common PCI Express ereport classes */
#define PCIEX_RE "pl.re"
#define PCIEX_TE "pl.te"
#define PCIEX_SD "dl.sd"
#define PCIEX_BDP "dl.bdllp"
#define PCIEX_BTP "dl.btlp"
#define PCIEX_DLP "dl.dllp"
#define PCIEX_RNR "dl.rnr"
#define PCIEX_RTO "dl.rto"
#define PCIEX_CA "tl.ca"
#define PCIEX_CTO "tl.cto"
#define PCIEX_ECRC "tl.ecrc"
#define PCIEX_FCP "tl.fcp"
#define PCIEX_MFP "tl.mtlp"
#define PCIEX_POIS "tl.ptlp"
#define PCIEX_ROF "tl.rof"
#define PCIEX_UC "tl.uc"
#define PCIEX_UR "tl.ur"
#define PCIEX_INTERR "bdg.sec-interr"
#define PCIEX_S_MA_SC "bdg.sec-ma-sc"
#define PCIEX_S_PERR "bdg.sec-perr"
#define PCIEX_S_RMA "bdg.sec-rma"
#define PCIEX_S_RTA "bdg.sec-rta"
#define PCIEX_S_SERR "bdg.sec-serr"
#define PCIEX_S_TA_SC "bdg.sec-ta-sc"
#define PCIEX_S_TEX "bdg.sec-tex"
#define PCIEX_S_UADR "bdg.sec-uadr"
#define PCIEX_S_UAT "bdg.sec-uat"
#define PCIEX_S_UDE "bdg.sec-ude"
#define PCIEX_S_USC "bdg.usc"
#define PCIEX_S_USCMD "bdg.uscmd"
#define PCIEX_RC_FE_MSG "rc.fe-msg"
#define PCIEX_RC_NFE_MSG "rc.nfe-msg"
#define PCIEX_RC_CE_MSG "rc.ce-msg"
#define PCIEX_RC_MCE_MSG "rc.mce-msg"
#define PCIEX_RC_MUE_MSG "rc.mue-msg"
#define PCIEX_CORR "correctable"
#define PCIEX_FAT "fatal"
#define PCIEX_NONFAT "nonfatal"
#define PCIEX_NADV "noadverr"
#define PCIEX_ANFE "a-nonfatal"
/* PCI Express payload name fields */
#define PCIEX_DEVSTS_REG "dev-status"
#define PCIEX_LINKSTS_REG "link-status"
#define PCIEX_ROOT_ERRSTS_REG "rc-status"
#define PCIEX_CE_STATUS_REG "ce-status"
#define PCIEX_UE_STATUS_REG "ue-status"
#define PCIEX_UE_SEV_REG "ue-severity"
#define PCIEX_SEC_UE_STATUS "sue-status"
#define PCIEX_SRC_ID "source-id"
#define PCIEX_SRC_VALID "source-valid"
#define PCIEX_ADV_CTL "adv-ctl"
#define PCIEX_UE_HDR0 "ue_hdr0"
#define PCIEX_UE_HDR1 "ue_hdr1"
#define PCIEX_UE_HDR2 "ue_hdr2"
#define PCIEX_UE_HDR3 "ue_hdr3"
#define PCIEX_SUE_HDR0 "sue_hdr0"
#define PCIEX_SUE_HDR1 "sue_hdr1"
#define PCIEX_SUE_HDR2 "sue_hdr2"
#define PCIEX_SUE_HDR3 "sue_hdr3"
/* Common fabric class names */
#define PCIEX_FABRIC "fabric"
#ifdef __cplusplus
}
#endif
#endif /* _SYS_FM_IO_PCI_H */
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
* Copyright 2016 Nexenta Systems, Inc. All rights reserved.
*/
#ifndef _SYS_FM_IO_SCSI_H
#define _SYS_FM_IO_SCSI_H
#ifdef __cplusplus
extern "C" {
#endif
/*
* The following ereports are generated by the userland disk-transport module in
* response to errors reported by the disks.
*/
#define SCSI_ERROR_CLASS "io.scsi"
#define SCSI_DISK_CLASS "disk"
#define FM_EREPORT_SCSI_PREDFAIL "predictive-failure"
#define FM_EREPORT_PAYLOAD_SCSI_ASC "additional-sense-code"
#define FM_EREPORT_PAYLOAD_SCSI_ASCQ "additional-sense-code-qualifier"
#define FM_EREPORT_SCSI_OVERTEMP "over-temperature"
#define FM_EREPORT_PAYLOAD_SCSI_CURTEMP "current-temperature"
#define FM_EREPORT_PAYLOAD_SCSI_THRESHTEMP "threshold-temperature"
#define FM_EREPORT_SCSI_SSMWEAROUT "ssm-wearout"
#define FM_EREPORT_PAYLOAD_SCSI_CURSSMWEAROUT "current-ssm-wearout"
#define FM_EREPORT_PAYLOAD_SCSI_THRSHSSMWEAROUT "threshold-ssm-wearout"
#define FM_EREPORT_SCSI_TESTFAIL "self-test-failure"
#define FM_EREPORT_PAYLOAD_SCSI_RESULTCODE "result-code"
#define FM_EREPORT_PAYLOAD_SCSI_ADDRESS "address"
#define FM_EREPORT_PAYLOAD_SCSI_TIMESTAMP "timestamp"
#define FM_EREPORT_PAYLOAD_SCSI_SEGMENT "segment"
#ifdef __cplusplus
}
#endif
#endif /* _SYS_FM_IO_SCSI_H */
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _SYS_FM_IO_SUN4_FIRE_H
#define _SYS_FM_IO_SUN4_FIRE_H
#ifdef __cplusplus
extern "C" {
#endif
/*
* Fire Ereport Classes
*/
#define PCIEX_FIRE "fire"
#define PCIEX_OBERON "oberon"
/* FIRE's JBUS ereport classes */
#define FIRE_JBC_MB_PEA "jbc.mb_pea"
#define FIRE_JBC_CPE "jbc.cpe"
#define FIRE_JBC_APE "jbc.ape"
#define FIRE_JBC_PIO_CPE "jbc.pio_cpe"
#define FIRE_JBC_JTCEEW "jbc.jtceew"
#define FIRE_JBC_JTCEEI "jbc.jtceei"
#define FIRE_JBC_JTCEER "jbc.jtceer"
#define FIRE_JBC_MB_PER "jbc.mb_per"
#define FIRE_JBC_MB_PEW "jbc.mb_pew"
#define FIRE_JBC_UE_ASYN "jbc.ue_asyn"
#define FIRE_JBC_CE_ASYN "jbc.ce_asyn"
#define FIRE_JBC_JTE "jbc.jte"
#define FIRE_JBC_JBE "jbc.jbe"
#define FIRE_JBC_JUE "jbc.jue"
#define FIRE_JBC_ICISE "jbc.icise"
#define FIRE_JBC_WR_DPE "jbc.wr_dpe"
#define FIRE_JBC_RD_DPE "jbc.rd_dpe"
#define FIRE_JBC_ILL_BMW "jbc.ill_bmw"
#define FIRE_JBC_ILL_BMR "jbc.ill_bmr"
#define FIRE_JBC_BJC "jbc.bjc"
#define FIRE_JBC_IJP "jbc.ijp"
#define FIRE_JBC_PIO_UNMAP_RD "jbc.pio_unmap_rd"
#define FIRE_JBC_PIO_UNMAP "jbc.pio_unmap"
#define FIRE_JBC_PIO_DPE "jbc.pio_dpe"
#define FIRE_JBC_ILL_ACC "jbc.ill_acc"
#define FIRE_JBC_ILL_ACC_RD "jbc.ill_acc_rd"
#define FIRE_JBC_UNSOL_RD "jbc.unsol_rd"
#define FIRE_JBC_UNSOL_INTR "jbc.unsol_intr"
#define FIRE_JBC_EBUS_TO "jbc.ebus_to"
/* OBERON's UBC ereport classes */
#define FIRE_UBC_DMARDUEA "ubc.dmarduea"
#define FIRE_UBC_DMAWTUEA "ubc.dmawtuea"
#define FIRE_UBC_MEMRDAXA "ubc.memrdaxa"
#define FIRE_UBC_MEMWTAXA "ubc.memwtaxa"
#define FIRE_UBC_DMARDUEB "ubc.dmardueb"
#define FIRE_UBC_DMAWTUEB "ubc.dmawtueb"
#define FIRE_UBC_MEMRDAXB "ubc.memrdaxb"
#define FIRE_UBC_MEMWTAXB "ubc.memwtaxb"
#define FIRE_UBC_PIOWTUE "ubc.piowtue"
#define FIRE_UBC_PIOWBEUE "ubc.piowbeue"
#define FIRE_UBC_PIORBEUE "ubc.piorbeue"
/* FIRE's DMC ereport classes */
#define FIRE_DMC_MSI_NOT_EN "dmc.msi_not_en"
#define FIRE_DMC_MSI_PAR_ERR "dmc.msi_par_err"
#define FIRE_DMC_MSI_MAL_ERR "dmc.msi_mal_err"
#define FIRE_DMC_COR_MES_NOT_EN "dmc.cor_not_en"
#define FIRE_DMC_NONFATAL_MES_NOT_EN "dmc.nonfatal_not_en"
#define FIRE_DMC_FATAL_MES_NOT_EN "dmc.fatal_not_en"
#define FIRE_DMC_PMPME_MES_NOT_EN "dmc.pmpme_not_en"
#define FIRE_DMC_PMEACK_MES_NOT_EN "dmc.pmeack_not_en"
#define FIRE_DMC_EQ_NOT_EN "dmc.eq_not_en"
#define FIRE_DMC_EQ_OVER "dmc.eq_over"
#define FIRE_DMC_BYP_ERR "dmc.byp_err"
#define FIRE_DMC_BYP_OOR "dmc.byp_oor"
#define FIRE_DMC_TRN_ERR "dmc.trn_err"
#define FIRE_DMC_TRN_OOR "dmc.trn_oor"
#define FIRE_DMC_TTE_INV "dmc.tte_inv"
#define FIRE_DMC_TTE_PRT "dmc.tte_prt"
#define FIRE_DMC_TTC_DPE "dmc.ttc_dpe"
#define FIRE_DMC_TBW_DME "dmc.tbw_dme"
#define FIRE_DMC_TBW_UDE "dmc.tbw_ude"
#define FIRE_DMC_TBW_ERR "dmc.tbw_err"
#define FIRE_DMC_TBW_DPE "dmc.tbw_dpe"
#define FIRE_DMC_TTC_CAE "dmc.ttc_cae"
#define FIRE_DMC_TTC_DUE "dmc.ttc_due"
/* FIRE's PEC ereport classes */
#define FIRE_PEC_IHB_PE "pec.ihb_pe"
#define FIRE_PEC_MRC "pec.mrc"
#define FIRE_PEC_WUC "pec.wuc"
#define FIRE_PEC_RUC "pec.ruc"
#define FIRE_PEC_CRS "pec.crs"
#define FIRE_PEC_IIP "pec.iip"
#define FIRE_PEC_EDP "pec.edp"
#define FIRE_PEC_EHP "pec.ehp"
#define FIRE_PEC_LIN "pec.lin"
#define FIRE_PEC_LRS "pec.lrs"
#define FIRE_PEC_LDN "pec.ldn"
#define FIRE_PEC_LUP "pec.lup"
#define FIRE_PEC_ERU "pec.eru"
#define FIRE_PEC_ERO "pec.ero"
#define FIRE_PEC_EMP "pec.emp"
#define FIRE_PEC_EPE "pec.epe"
#define FIRE_PEC_ERP "pec.erp"
#define FIRE_PEC_EIP "pec.eip"
#define FIRE_PEC_UR "pec.ur"
#define FIRE_PEC_ROF "pec.rof"
#define FIRE_PEC_UC "pec.uc"
#define FIRE_PEC_CTO "pec.cto"
#define FIRE_PEC_MFP "pec.mfp"
#define FIRE_PEC_PP "pec.pois"
#define FIRE_PEC_FCP "pec.fcp"
#define FIRE_PEC_DLP "pec.dlp"
#define FIRE_PEC_TE "pec.te"
#define FIRE_PEC_CA "pec.ca"
#define FIRE_PEC_RTO "pec.rto"
#define FIRE_PEC_RNR "pec.rnr"
#define FIRE_PEC_BDP "pec.bdp"
#define FIRE_PEC_BTP "pec.btp"
#define FIRE_PEC_RE "pec.re"
#define FIRE_PEC_IHB_UE "pec.ihb_ue"
#define FIRE_PEC_ECRC "pec.ecrc"
#define FIRE_PEC_EIUE "pec.eiue"
#define FIRE_PEC_ERBUE "pec.erbue"
#define FIRE_PEC_EHBUE "pec.ehbue"
#define FIRE_PEC_EDBUE "pec.edbue"
#define FIRE_PEC_TLUEITMO "pec.tlueitmo"
/* Primary error */
#define FIRE_PRIMARY "primary"
/* PEC ereport payload */
#define FIRE_ILU_ELE "ilu-ele"
#define FIRE_ILU_ESS "ilu-ess"
#define FIRE_ILU_IE "ilu-ie"
#define FIRE_ILU_IS "ilu-is"
#define FIRE_TLU_CELE "tlu-cele"
#define FIRE_TLU_CESS "tlu-cess"
#define FIRE_TLU_CIE "tlu-cie"
#define FIRE_TLU_CIS "tlu-cis"
#define FIRE_TLU_OEELE "tlu-oeele"
#define FIRE_TLU_OEESS "tlu-oeess"
#define FIRE_TLU_OEIE "tlu-oeie"
#define FIRE_TLU_OEIS "tlu-oeis"
#define FIRE_TLU_ROEEH1L "tlu-roeeh1l"
#define FIRE_TLU_ROEEH2L "tlu-roeeh2l"
#define FIRE_TLU_RUEH1L "tlu-rueh1l"
#define FIRE_TLU_RUEH2L "tlu-rueh2l"
#define FIRE_TLU_TOEEH1L "tlu-toeeh1l"
#define FIRE_TLU_TOEEH2L "tlu-toeeh2l"
#define FIRE_TLU_TUEH1L "tlu-tueh1l"
#define FIRE_TLU_TUEH2L "tlu-tueh2l"
#define FIRE_TLU_UELE "tlu-uele"
#define FIRE_TLU_UESS "tlu-uess"
#define FIRE_TLU_UIE "tlu-uie"
#define FIRE_TLU_UIS "tlu-uis"
/* DMC ereport payload */
#define FIRE_IMU_ELE "imu-ele"
#define FIRE_IMU_ESS "imu-ess"
#define FIRE_IMU_IE "imu-ie"
#define FIRE_IMU_IS "imu-is"
#define FIRE_IMU_RDS "imu-rds"
#define FIRE_IMU_SCS "imu-scs"
#define FIRE_MMU_ELE "mmu-ele"
#define FIRE_MMU_ESS "mmu-ess"
#define FIRE_MMU_IE "mmu-ie"
#define FIRE_MMU_IS "mmu-is"
#define FIRE_MMU_TFAR "mmu-tfar"
#define FIRE_MMU_TFSR "mmu-tfsr"
/* JBC ereport payload */
#define FIRE_JBC_DMC_IDC "jbc-dmc-idc"
#define FIRE_JBC_DMC_ODCD "jbc-dmc-odcd"
#define FIRE_JBC_ELE "jbc-ele"
#define FIRE_JBC_ESS "jbc-ess"
#define FIRE_JBC_FEL1 "jbc-fel1"
#define FIRE_JBC_FEL2 "jbc-fel2"
#define FIRE_JBC_IE "jbc-ie"
#define FIRE_JBC_IS "jbc-is"
#define FIRE_JBC_JITEL1 "jbc-jitel1"
#define FIRE_JBC_JITEL2 "jbc-jitel2"
#define FIRE_JBC_JOTEL1 "jbc-jotel1"
#define FIRE_JBC_JOTEL2 "jbc-jotel2"
#define FIRE_JBC_MTEL "jbc-mtel"
/* UBC ereport payload */
#define OBERON_UBC_ELE "ubc-ele"
#define OBERON_UBC_IE "ubc-ie"
#define OBERON_UBC_IS "ubc-is"
#define OBERON_UBC_ESS "ubc-ess"
#define OBERON_UBC_MUE "ubc-mue"
#define OBERON_UBC_UNUM "ubc-unum"
#define OBERON_UBC_DID "ubc-did"
#define OBERON_UBC_CPUV "ubc-cpuv"
#define OBERON_UBC_RESOURCE "resource"
#ifdef __cplusplus
}
#endif
#endif /* _SYS_FM_IO_SUN4_FIRE_H */
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _SYS_FM_IO_SUN4UPCI_H
#define _SYS_FM_IO_SUN4UPCI_H
#ifdef __cplusplus
extern "C" {
#endif
/* Sun4u PCI FMA Event Protocol definitions */
#define PCI_PSYCHO "psy"
#define PCI_SCHIZO "sch"
#define PCI_TOMATILLO "tom"
#define PCI_XMITS "xmits"
/* PBM ereport classes */
#define PCI_PBM_TTO "pbm.tto"
#define PCI_PBM_RETRY "pbm.rl"
#define PCI_SEC_PBM_TTO "pbm.s-tto"
#define PCI_SEC_PBM_RETRY "pbm.s-rl"
#define PCI_SEC_MA "pbm.s-ma"
#define PCI_SEC_REC_TA "pbm.s-rta"
#define PCI_SEC_MDPE "pbm.s-mdpe"
#define PCI_PBM_TARG_TTO "pbm.target-tto"
#define PCI_PBM_TARG_RETRY "pbm.target-rl"
/* Schizo/Tomatillo ereport classes */
#define PCI_SCH_MMU_ERR "mmu"
#define PCI_SCH_BUS_UNUSABLE_ERR "bu"
#define PCI_SEC_SCH_BUS_UNUSABLE_ERR "s-bu"
#define PCI_SCH_SLOT_LOCK_ERR "sl"
#define PCI_SCH_SBH "sbh"
#define PCI_TOM_MMU_BAD_TSBTBW "mmu.btt"
#define PCI_TOM_MMU_BAD_VA "mmu.bva"
#define PCI_TOM_MMU_PROT_ERR "mmu.prot"
#define PCI_TOM_MMU_INVAL_ERR "mmu.inval"
#define PCI_TOM_MMU_TO_ERR "mmu.to"
#define PCI_TOM_MMU_UE "mmu.ue"
/* Psycho ereport classes */
#define PCI_PSY_SBH "sbh"
/* IO detected memory ereport classes */
#define PCI_ECC_DRD_UE "ecc.drue"
#define PCI_ECC_DRD_CE "ecc.drce"
#define PCI_ECC_DWR_UE "ecc.dwue"
#define PCI_ECC_DWR_CE "ecc.dwce"
#define PCI_ECC_PIO_UE "ecc.pue"
#define PCI_ECC_PIO_CE "ecc.pce"
#define PCI_ECC_SEC_DRD_UE "ecc.s-drue"
#define PCI_ECC_SEC_DRD_CE "ecc.s-drce"
#define PCI_ECC_SEC_DWR_UE "ecc.s-dwue"
#define PCI_ECC_SEC_DWR_CE "ecc.s-dwce"
#define PCI_ECC_SEC_PIO_UE "ecc.s-pue"
#define PCI_ECC_SEC_PIO_CE "ecc.s-pce"
/* Safari ereport classes */
#define SAFARI_APERR "saf.ape"
#define SAFARI_UNMAP_ERR "saf.um"
#define SAFARI_TO_ERR "saf.to"
#define SAFARI_BUS_ERR "saf.bus"
#define SAFARI_DSTAT_ERR "saf.dstat"
#define SAFARI_BAD_CMD "saf.bc"
#define SAFARI_SSM_DIS "saf.smm-dis"
#define SAFARI_BAD_CMD_PCIA "saf.bca"
#define SAFARI_BAD_CMD_PCIB "saf.bcb"
#define SAFARI_PAR_ERR_INT_PCIB "saf.parb"
#define SAFARI_PAR_ERR_INT_PCIA "saf.para"
#define SAFARI_PAR_ERR_INT_SAF "saf.pars"
#define SAFARI_PLL_ERR_PCIB "saf.pllb"
#define SAFARI_PLL_ERR_PCIA "saf.plla"
#define SAFARI_PLL_ERR_SAF "saf.plls"
#define SAFARI_SAF_CIQ_TO "saf.ciq-to"
#define SAFARI_SAF_LPQ_TO "saf.lpq-to"
#define SAFARI_SAF_SFPQ_TO "saf.sfpq-to"
#define SAFARI_SAF_UFPQ_TO "saf.ufpq-to"
#define SAFARI_CPU0_PAR_SINGLE "saf.cpu0-par"
#define SAFARI_CPU0_PAR_BIDI "saf.cpu0-bidi"
#define SAFARI_CPU1_PAR_SINGLE "saf.cpu1-par"
#define SAFARI_CPU1_PAR_BIDI "saf.cpu1-bidi"
/* Jbus ereport classes */
#define JBUS_APERR "jbus.ape"
#define JBUS_PWR_DATA_PERR "jbus.pwpe"
#define JBUS_DRD_DATA_PERR "jbus.drpe"
#define JBUS_DWR_DATA_PERR "jbus.dwpe"
#define JBUS_CTL_PERR "jbus.cpe"
#define JBUS_ILL_BYTE_EN "jbus.ibe"
#define JBUS_ILL_COH_IN "jbus.iis"
#define JBUS_SNOOP_ERR_RD "jbus.srd"
#define JBUS_SNOOP_ERR_RDS "jbus.srds"
#define JBUS_SNOOP_ERR_RDSA "jbus.srdsa"
#define JBUS_SNOOP_ERR_OWN "jbus.sown"
#define JBUS_SNOOP_ERR_RDO "jbus.srdo"
#define JBUS_BAD_CMD "jbus.bc"
#define JBUS_UNMAP_ERR "jbus.um"
#define JBUS_TO_ERR "jbus.to"
#define JBUS_BUS_ERR "jbus.bus"
#define JBUS_TO_EXP_ERR "jbus.to-exp"
#define JBUS_SNOOP_ERR_GR "jbus.sgr"
#define JBUS_SNOOP_ERR_PCI "jbus.spci"
#define JBUS_SNOOP_ERR "jbus.snp"
/* PBM ereport payload */
#define PCI_PBM_CSR "pbm-csr"
#define PCI_PBM_AFSR "pbm-afsr"
#define PCI_PBM_AFAR "pbm-afar"
#define PCI_PBM_SLOT "errant-slot"
#define PCI_PBM_VALOG "pbm-valog"
/* IOMMU ereport payload */
#define PCI_PBM_IOMMU_CTRL "iommu-csr"
#define PCI_PBM_IOMMU_TFAR "iommu-tfar"
/* IO detected memory error payload */
#define PCI_ECC_AFSR "ecc-afsr"
#define PCI_ECC_AFAR "ecc-afar"
#define PCI_ECC_CTRL "ecc-ctrl"
#define PCI_ECC_SYND "ecc-syndrome"
#define PCI_ECC_TYPE "ecc-err-type"
#define PCI_ECC_DISP "ecc-err-disposition"
#define PCI_ECC_UNUM "mem-unum"
#define PCI_ECC_RESOURCE "mem-resource"
/* Safari ereport payload */
#define SAFARI_CSR "safari-csr"
#define SAFARI_ERR "safari-err"
#define SAFARI_INTR "safari-intr"
#define SAFARI_ELOG "safari-elog"
#define SAFARI_PCR "safari-pcr"
#define SAFARI_RESOURCE "safari-resource"
#define PCI_PBM_LOG_1 "pbm-log1"
#define PCI_PBM_LOG_2 "pbm-log2"
/* Jbus ereport payload */
#define JBUS_CSR "jbus-csr"
#define JBUS_ERR "jbus-err"
#define JBUS_INTR "jbus-intr"
#define JBUS_ELOG "jbus-elog"
#define JBUS_PCR "jbus-pcr"
#define JBUS_RESOURCE "jbus-resource"
#ifdef __cplusplus
}
#endif
#endif /* _SYS_FM_IO_SUN4UPCI_H */
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2020 Joyent, Inc.
* Copyright 2023 Oxide Computer Company
*/
#ifndef _SYS_FM_PROTOCOL_H
#define _SYS_FM_PROTOCOL_H
#ifdef __cplusplus
extern "C" {
#endif
#ifdef _KERNEL
#include <sys/varargs.h>
#include <sys/nvpair.h>
#else
#include <libnvpair.h>
#include <stdarg.h>
#endif
#include <sys/processor.h>
/* FM common member names */
#define FM_CLASS "class"
#define FM_VERSION "version"
/* FM protocol category 1 class names */
#define FM_EREPORT_CLASS "ereport"
#define FM_FAULT_CLASS "fault"
#define FM_DEFECT_CLASS "defect"
#define FM_RSRC_CLASS "resource"
#define FM_LIST_EVENT "list"
#define FM_IREPORT_CLASS "ireport"
/* FM list.* event class values */
#define FM_LIST_SUSPECT_CLASS FM_LIST_EVENT ".suspect"
#define FM_LIST_ISOLATED_CLASS FM_LIST_EVENT ".isolated"
#define FM_LIST_REPAIRED_CLASS FM_LIST_EVENT ".repaired"
#define FM_LIST_UPDATED_CLASS FM_LIST_EVENT ".updated"
#define FM_LIST_RESOLVED_CLASS FM_LIST_EVENT ".resolved"
/* ereport class subcategory values */
#define FM_ERROR_CPU "cpu"
#define FM_ERROR_IO "io"
/* ereport version and payload member names */
#define FM_EREPORT_VERS0 0
#define FM_EREPORT_VERSION FM_EREPORT_VERS0
/* ereport payload member names */
#define FM_EREPORT_DETECTOR "detector"
#define FM_EREPORT_ENA "ena"
/* list.* event payload member names */
#define FM_LIST_EVENT_SIZE "list-sz"
/* ireport.* event payload member names */
#define FM_IREPORT_DETECTOR "detector"
#define FM_IREPORT_UUID "uuid"
#define FM_IREPORT_PRIORITY "pri"
#define FM_IREPORT_ATTRIBUTES "attr"
/*
* list.suspect, isolated, updated, repaired and resolved
* versions/payload member names.
*/
#define FM_SUSPECT_UUID "uuid"
#define FM_SUSPECT_DIAG_CODE "code"
#define FM_SUSPECT_DIAG_TIME "diag-time"
#define FM_SUSPECT_DE "de"
#define FM_SUSPECT_FAULT_LIST "fault-list"
#define FM_SUSPECT_FAULT_SZ "fault-list-sz"
#define FM_SUSPECT_FAULT_STATUS "fault-status"
#define FM_SUSPECT_INJECTED "__injected"
#define FM_SUSPECT_MESSAGE "message"
#define FM_SUSPECT_RETIRE "retire"
#define FM_SUSPECT_RESPONSE "response"
#define FM_SUSPECT_SEVERITY "severity"
#define FM_SUSPECT_VERS0 0
#define FM_SUSPECT_VERSION FM_SUSPECT_VERS0
#define FM_SUSPECT_FAULTY 0x1
#define FM_SUSPECT_UNUSABLE 0x2
#define FM_SUSPECT_NOT_PRESENT 0x4
#define FM_SUSPECT_DEGRADED 0x8
#define FM_SUSPECT_REPAIRED 0x10
#define FM_SUSPECT_REPLACED 0x20
#define FM_SUSPECT_ACQUITTED 0x40
/* fault event versions and payload member names */
#define FM_FAULT_VERS0 0
#define FM_FAULT_VERSION FM_FAULT_VERS0
#define FM_FAULT_ASRU "asru"
#define FM_FAULT_FRU "fru"
#define FM_FAULT_FRU_LABEL "fru-label"
#define FM_FAULT_CERTAINTY "certainty"
#define FM_FAULT_RESOURCE "resource"
#define FM_FAULT_LOCATION "location"
/* resource event versions and payload member names */
#define FM_RSRC_VERS0 0
#define FM_RSRC_VERSION FM_RSRC_VERS0
#define FM_RSRC_RESOURCE "resource"
/* resource.fm.asru.* payload member names */
#define FM_RSRC_ASRU_UUID "uuid"
#define FM_RSRC_ASRU_CODE "code"
#define FM_RSRC_ASRU_FAULTY "faulty"
#define FM_RSRC_ASRU_REPAIRED "repaired"
#define FM_RSRC_ASRU_REPLACED "replaced"
#define FM_RSRC_ASRU_ACQUITTED "acquitted"
#define FM_RSRC_ASRU_RESOLVED "resolved"
#define FM_RSRC_ASRU_UNUSABLE "unusable"
#define FM_RSRC_ASRU_EVENT "event"
/* resource.fm.xprt.* versions and payload member names */
#define FM_RSRC_XPRT_VERS0 0
#define FM_RSRC_XPRT_VERSION FM_RSRC_XPRT_VERS0
#define FM_RSRC_XPRT_UUID "uuid"
#define FM_RSRC_XPRT_SUBCLASS "subclass"
#define FM_RSRC_XPRT_FAULT_STATUS "fault-status"
#define FM_RSRC_XPRT_FAULT_HAS_ASRU "fault-has-asru"
/*
* FM ENA Format Macros
*/
#define ENA_FORMAT_MASK 0x3
#define ENA_FORMAT(ena) ((ena) & ENA_FORMAT_MASK)
/* ENA format types */
#define FM_ENA_FMT0 0
#define FM_ENA_FMT1 1
#define FM_ENA_FMT2 2
/* Format 1 */
#define ENA_FMT1_GEN_MASK 0x00000000000003FCull
#define ENA_FMT1_ID_MASK 0xFFFFFFFFFFFFFC00ull
#define ENA_FMT1_CPUID_MASK 0x00000000000FFC00ull
#define ENA_FMT1_TIME_MASK 0xFFFFFFFFFFF00000ull
#define ENA_FMT1_GEN_SHFT 2
#define ENA_FMT1_ID_SHFT 10
#define ENA_FMT1_CPUID_SHFT ENA_FMT1_ID_SHFT
#define ENA_FMT1_TIME_SHFT 20
/* Format 2 */
#define ENA_FMT2_GEN_MASK 0x00000000000003FCull
#define ENA_FMT2_ID_MASK 0xFFFFFFFFFFFFFC00ull
#define ENA_FMT2_TIME_MASK ENA_FMT2_ID_MASK
#define ENA_FMT2_GEN_SHFT 2
#define ENA_FMT2_ID_SHFT 10
#define ENA_FMT2_TIME_SHFT ENA_FMT2_ID_SHFT
/* Common FMRI type names */
#define FM_FMRI_AUTHORITY "authority"
#define FM_FMRI_SCHEME "scheme"
#define FM_FMRI_SVC_AUTHORITY "svc-authority"
#define FM_FMRI_FACILITY "facility"
/* FMRI authority-type member names */
#define FM_FMRI_AUTH_CHASSIS "chassis-id"
#define FM_FMRI_AUTH_PRODUCT_SN "product-sn"
#define FM_FMRI_AUTH_PRODUCT "product-id"
#define FM_FMRI_AUTH_DOMAIN "domain-id"
#define FM_FMRI_AUTH_SERVER "server-id"
#define FM_FMRI_AUTH_HOST "host-id"
#define FM_AUTH_VERS0 0
#define FM_FMRI_AUTH_VERSION FM_AUTH_VERS0
/* scheme name values */
#define FM_FMRI_SCHEME_FMD "fmd"
#define FM_FMRI_SCHEME_DEV "dev"
#define FM_FMRI_SCHEME_HC "hc"
#define FM_FMRI_SCHEME_SVC "svc"
#define FM_FMRI_SCHEME_CPU "cpu"
#define FM_FMRI_SCHEME_MEM "mem"
#define FM_FMRI_SCHEME_MOD "mod"
#define FM_FMRI_SCHEME_PKG "pkg"
#define FM_FMRI_SCHEME_LEGACY "legacy-hc"
#define FM_FMRI_SCHEME_ZFS "zfs"
#define FM_FMRI_SCHEME_SW "sw"
#define FM_FMRI_SCHEME_PATH "path"
#define FM_FMRI_SCHEME_PCIE "pcie"
/* Scheme versions */
#define FMD_SCHEME_VERSION0 0
#define FM_FMD_SCHEME_VERSION FMD_SCHEME_VERSION0
#define DEV_SCHEME_VERSION0 0
#define FM_DEV_SCHEME_VERSION DEV_SCHEME_VERSION0
#define FM_HC_VERS0 0
#define FM_HC_SCHEME_VERSION FM_HC_VERS0
#define CPU_SCHEME_VERSION0 0
#define CPU_SCHEME_VERSION1 1
#define FM_CPU_SCHEME_VERSION CPU_SCHEME_VERSION1
#define MEM_SCHEME_VERSION0 0
#define FM_MEM_SCHEME_VERSION MEM_SCHEME_VERSION0
#define MOD_SCHEME_VERSION0 0
#define FM_MOD_SCHEME_VERSION MOD_SCHEME_VERSION0
#define PKG_SCHEME_VERSION0 0
#define FM_PKG_SCHEME_VERSION PKG_SCHEME_VERSION0
#define LEGACY_SCHEME_VERSION0 0
#define FM_LEGACY_SCHEME_VERSION LEGACY_SCHEME_VERSION0
#define SVC_SCHEME_VERSION0 0
#define FM_SVC_SCHEME_VERSION SVC_SCHEME_VERSION0
#define ZFS_SCHEME_VERSION0 0
#define FM_ZFS_SCHEME_VERSION ZFS_SCHEME_VERSION0
#define SW_SCHEME_VERSION0 0
#define FM_SW_SCHEME_VERSION SW_SCHEME_VERSION0
#define PATH_SCHEME_VERSION0 0
#define FM_PATH_SCHEME_VERSION PATH_SCHEME_VERSION0
#define PCIE_SCHEME_VERSION0 0
#define FM_PCIE_SCHEME_VERSION PCIE_SCHEME_VERSION0
/* hc scheme member names */
#define FM_FMRI_HC_SERIAL_ID "serial"
#define FM_FMRI_HC_PART "part"
#define FM_FMRI_HC_REVISION "revision"
#define FM_FMRI_HC_ROOT "hc-root"
#define FM_FMRI_HC_LIST_SZ "hc-list-sz"
#define FM_FMRI_HC_LIST "hc-list"
#define FM_FMRI_HC_SPECIFIC "hc-specific"
/* facility member names */
#define FM_FMRI_FACILITY_NAME "facility-name"
#define FM_FMRI_FACILITY_TYPE "facility-type"
/* hc-list version and member names */
#define FM_FMRI_HC_NAME "hc-name"
#define FM_FMRI_HC_ID "hc-id"
#define HC_LIST_VERSION0 0
#define FM_HC_LIST_VERSION HC_LIST_VERSION0
/* hc-specific member names */
#define FM_FMRI_HC_SPECIFIC_OFFSET "offset"
#define FM_FMRI_HC_SPECIFIC_PHYSADDR "physaddr"
/* fmd module scheme member names */
#define FM_FMRI_FMD_NAME "mod-name"
#define FM_FMRI_FMD_VERSION "mod-version"
/* dev scheme member names */
#define FM_FMRI_DEV_ID "devid"
#define FM_FMRI_DEV_TGTPTLUN0 "target-port-l0id"
#define FM_FMRI_DEV_PATH "device-path"
/* pkg scheme member names */
#define FM_FMRI_PKG_BASEDIR "pkg-basedir"
#define FM_FMRI_PKG_INST "pkg-inst"
#define FM_FMRI_PKG_VERSION "pkg-version"
/* pcie scheme member names */
#define FM_FMRI_PCIE_LIST "pcie-list"
#define FM_FMRI_PCIE_NAME "pcie-name"
#define FM_FMRI_PCIE_ID "pcie-id"
/* svc scheme member names */
#define FM_FMRI_SVC_NAME "svc-name"
#define FM_FMRI_SVC_INSTANCE "svc-instance"
#define FM_FMRI_SVC_CONTRACT_ID "svc-contract-id"
/* svc-authority member names */
#define FM_FMRI_SVC_AUTH_SCOPE "scope"
#define FM_FMRI_SVC_AUTH_SYSTEM_FQN "system-fqn"
/* cpu scheme member names */
#define FM_FMRI_CPU_ID "cpuid"
#define FM_FMRI_CPU_SERIAL_ID "serial"
#define FM_FMRI_CPU_MASK "cpumask"
#define FM_FMRI_CPU_VID "cpuvid"
#define FM_FMRI_CPU_CPUFRU "cpufru"
#define FM_FMRI_CPU_CACHE_INDEX "cacheindex"
#define FM_FMRI_CPU_CACHE_WAY "cacheway"
#define FM_FMRI_CPU_CACHE_BIT "cachebit"
#define FM_FMRI_CPU_CACHE_TYPE "cachetype"
#define FM_FMRI_CPU_CACHE_TYPE_L2 0
#define FM_FMRI_CPU_CACHE_TYPE_L3 1
/* legacy-hc scheme member names */
#define FM_FMRI_LEGACY_HC "component"
#define FM_FMRI_LEGACY_HC_PREFIX FM_FMRI_SCHEME_HC":///" \
FM_FMRI_LEGACY_HC"="
/* mem scheme member names */
#define FM_FMRI_MEM_UNUM "unum"
#define FM_FMRI_MEM_SERIAL_ID "serial"
#define FM_FMRI_MEM_PHYSADDR "physaddr"
#define FM_FMRI_MEM_MEMCONFIG "memconfig"
#define FM_FMRI_MEM_OFFSET "offset"
/* mod scheme member names */
#define FM_FMRI_MOD_PKG "mod-pkg"
#define FM_FMRI_MOD_NAME "mod-name"
#define FM_FMRI_MOD_ID "mod-id"
#define FM_FMRI_MOD_DESC "mod-desc"
/* zfs scheme member names */
#define FM_FMRI_ZFS_POOL "pool"
#define FM_FMRI_ZFS_VDEV "vdev"
/* sw scheme member names - extra indentation for members of an nvlist */
#define FM_FMRI_SW_OBJ "object"
#define FM_FMRI_SW_OBJ_PATH "path"
#define FM_FMRI_SW_OBJ_ROOT "root"
#define FM_FMRI_SW_OBJ_PKG "pkg"
#define FM_FMRI_SW_SITE "site"
#define FM_FMRI_SW_SITE_TOKEN "token"
#define FM_FMRI_SW_SITE_MODULE "module"
#define FM_FMRI_SW_SITE_FILE "file"
#define FM_FMRI_SW_SITE_LINE "line"
#define FM_FMRI_SW_SITE_FUNC "func"
#define FM_FMRI_SW_CTXT "context"
#define FM_FMRI_SW_CTXT_ORIGIN "origin"
#define FM_FMRI_SW_CTXT_EXECNAME "execname"
#define FM_FMRI_SW_CTXT_PID "pid"
#define FM_FMRI_SW_CTXT_ZONE "zone"
#define FM_FMRI_SW_CTXT_CTID "ctid"
#define FM_FMRI_SW_CTXT_STACK "stack"
/* path scheme member names */
#define FM_FMRI_PATH_VERSION "path-scheme-version"
#define FM_FMRI_PATH "path"
#define FM_FMRI_PATH_NAME "path-name"
#define FM_FMRI_PATH_INST "path-instance"
#define FM_FMRI_PATH_DIGRAPH_SCHEME "path-digraph-scheme"
extern nv_alloc_t *fm_nva_xcreate(char *, size_t);
extern void fm_nva_xdestroy(nv_alloc_t *);
extern nvlist_t *fm_nvlist_create(nv_alloc_t *);
extern void fm_nvlist_destroy(nvlist_t *, int);
#define FM_NVA_FREE 0 /* free allocator on nvlist_destroy */
#define FM_NVA_RETAIN 1 /* keep allocator on nvlist_destroy */
extern void fm_ereport_set(nvlist_t *, int, const char *, uint64_t,
const nvlist_t *, ...);
extern void fm_payload_set(nvlist_t *, ...);
extern int i_fm_payload_set(nvlist_t *, const char *, va_list);
extern void fm_fmri_hc_set(nvlist_t *, int, const nvlist_t *, nvlist_t *,
int, ...);
extern void fm_fmri_dev_set(nvlist_t *, int, const nvlist_t *, const char *,
const char *, const char *);
extern void fm_fmri_de_set(nvlist_t *, int, const nvlist_t *, const char *);
extern void fm_fmri_cpu_set(nvlist_t *, int, const nvlist_t *, uint32_t,
uint8_t *, const char *);
extern void fm_fmri_mem_set(nvlist_t *, int, const nvlist_t *, const char *,
const char *, uint64_t);
extern void fm_authority_set(nvlist_t *, int, const char *, const char *,
const char *, const char *);
extern void fm_fmri_zfs_set(nvlist_t *, int, uint64_t, uint64_t);
extern void fm_fmri_hc_create(nvlist_t *, int, const nvlist_t *, nvlist_t *,
nvlist_t *, int, ...);
extern uint64_t fm_ena_increment(uint64_t);
extern uint64_t fm_ena_generate(uint64_t, uchar_t);
extern uint64_t fm_ena_generate_cpu(uint64_t, processorid_t, uchar_t);
extern uint64_t fm_ena_generation_get(uint64_t);
extern uchar_t fm_ena_format_get(uint64_t);
extern uint64_t fm_ena_id_get(uint64_t);
extern uint64_t fm_ena_time_get(uint64_t);
#ifdef __cplusplus
}
#endif
#endif /* _SYS_FM_PROTOCOL_H */
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2017 RackTop Systems.
*/
#ifndef _SYS_FM_UTIL_H
#define _SYS_FM_UTIL_H
#ifdef __cplusplus
extern "C" {
#endif
#include <sys/nvpair.h>
#include <sys/errorq.h>
/*
* Shared user/kernel definitions for class length, error channel name,
* and kernel event publisher string.
*/
#define FM_MAX_CLASS 100
#define FM_ERROR_CHAN "com.sun:fm:error"
#define FM_PUB "fm"
/*
* ereport dump device transport support
*
* Ereports are written out to the dump device at a proscribed offset from the
* end, similar to in-transit log messages. The ereports are represented as a
* erpt_dump_t header followed by ed_size bytes of packed native nvlist data.
*
* NOTE: All of these constants and the header must be defined so they have the
* same representation for *both* 32-bit and 64-bit producers and consumers.
*/
#define ERPT_MAGIC 0xf00d4eddU
#define ERPT_MAX_ERRS 16
#define ERPT_DATA_SZ (6 * 1024)
#define ERPT_EVCH_MAX 256
#define ERPT_HIWAT 64
typedef struct erpt_dump {
uint32_t ed_magic; /* ERPT_MAGIC or zero to indicate end */
uint32_t ed_chksum; /* checksum32() of packed nvlist data */
uint32_t ed_size; /* ereport (nvl) fixed buf size */
uint32_t ed_pad; /* reserved for future use */
hrtime_t ed_hrt_nsec; /* hrtime of this ereport */
hrtime_t ed_hrt_base; /* hrtime sample corresponding to ed_tod_base */
struct {
uint64_t sec; /* seconds since gettimeofday() Epoch */
uint64_t nsec; /* nanoseconds past ed_tod_base.sec */
} ed_tod_base;
} erpt_dump_t;
#if defined(_KERNEL) || defined(_FAKE_KERNEL)
#include <sys/systm.h>
#define FM_STK_DEPTH 20 /* maximum stack depth */
#define FM_SYM_SZ 64 /* maximum symbol size */
#define FM_ERR_PIL 2 /* PIL for ereport_errorq drain processing */
#define FM_EREPORT_PAYLOAD_NAME_STACK "stack"
extern errorq_t *ereport_errorq;
extern void *ereport_dumpbuf;
extern size_t ereport_dumplen;
extern void fm_init(void);
extern void fm_nvprint(nvlist_t *);
extern void fm_panic(const char *, ...);
extern void fm_banner(void);
extern void fm_ereport_dump(void);
extern void fm_ereport_post(nvlist_t *, int);
extern void fm_payload_stack_add(nvlist_t *, const pc_t *, int);
extern int is_fm_panic();
#endif /* _KERNEL || _FAKE_KERNEL */
#ifdef __cplusplus
}
#endif
#endif /* _SYS_FM_UTIL_H */
|