1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License (the "License").
6  * You may not use this file except in compliance with the License.
7  *
8  * You can obtain a copy of the license at
9  * http://www.opensource.org/licenses/cddl1.txt.
10  * See the License for the specific language governing permissions
11  * and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL HEADER in each
14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15  * If applicable, add the following below this CDDL HEADER, with the
16  * fields enclosed by brackets "[]" replaced with your own identifying
17  * information: Portions Copyright [yyyy] [name of copyright owner]
18  *
19  * CDDL HEADER END
20  */
21 
22 /*
23  * Copyright (c) 2004-2011 Emulex. All rights reserved.
24  * Use is subject to license terms.
25  */
26 
27 #ifndef _EMLXS_MESSAGES_H
28 #define	_EMLXS_MESSAGES_H
29 
30 #ifdef	__cplusplus
31 extern "C" {
32 #endif
33 
34 
35 #ifdef DEF_MSG_REPORT
36 
37 #define	DEFINE_MSG(_id, _name, _msg, _level, _mask, _desc, _action, \
38 	_ereport, _impact)	{_msg, _id, _level, _mask, _desc, \
39 	_action, 0, 0, 0},
40 
41 #else	/* DEF_MSG_REPORT */
42 
43 #ifdef DEF_MSG_STRUCT
44 
45 #define	DEFINE_MSG(_id, _name, _msg, _level, _mask, _desc, _action, \
46 	_ereport, _impact)	emlxs_msg_t _name = {_msg, _id, _level, \
47 	_mask, _ereport, _impact};
48 
49 #else
50 
51 #define	DEFINE_MSG(_id, _name, _msg, _level, _mask, _desc, _action, \
52 	_ereport, _impact)	extern emlxs_msg_t _name;
53 
54 #endif	/* DEF_MSG_STRUCT */
55 
56 #endif	/* DEF_MSG_REPORT */
57 
58 
59 /*
60  *
61  * LOG Message Types Numbering Sequence
62  *
63  * Message Group            From
64  *
65  * MISC			000
66  * DRIVER		100    -Driver Attach and Detach events
67  * INIT			200    -HBA initialization events
68  * MEM			300
69  * SLI			400
70  * MBOX			500
71  * NODE			600
72  * LINK			700
73  * ELS			800
74  * PKT			900
75  * FCP			1000
76  * FCT (FCP Target)	1100
77  * IP			1200
78  * SFS			1300
79  * IOCTL		1400
80  * FIRMWARE		1500
81  * CT			1600
82  * FCSP			1700
83  * FCF			1800
84  *
85  */
86 
87 #ifdef DEF_MSG_REPORT
88 typedef struct emlxs_msg_group
89 {
90 	uint32_t	min;
91 	uint32_t	max;
92 	char		desc[80];
93 }  emlxs_msg_group_t;
94 
95 emlxs_msg_group_t msg_group[] =
96 {
97 	{0,	99,	"Miscellaneous Events"},
98 	{100,	199,	"Driver Events"},
99 	{200,	299,	"HBA Initialization Events"},
100 	{300,	399,	"Memory Management Events"},
101 	{400,	499,	"Service level Interface (SLI) Events"},
102 	{500,	599,	"Mailbox Events"},
103 	{600,	699,	"Node Events"},
104 	{700,	799,	"Link Events"},
105 	{800,	899,	"ELS Events"},
106 	{900,	999,	"General I/O Packet Events"},
107 	{1000,	1099,	"FCP Traffic Events"},
108 	{1100,	1199,	"FCT Traffic Events"},
109 	{1200,	1299,	"IP Traffic Events"},
110 	{1300,	1399,	"Solaris SFS Events"},
111 	{1400,	1499,	"IOCTL Events"},
112 	{1500,	1599,	"Firmware Download Events"},
113 	{1600,	1699,	"Common Transport Events"},
114 	{1700,	1799,	"Fibre Channel Security Protocol (FCSP) Events"},
115 	{1800,	1899,	"Fibre Channel Fabric (FCF) Events"},
116 };
117 
118 #define	MAX_MSG_GROUPS	(sizeof (msg_group) / sizeof (emlxs_msg_group_t))
119 #endif	/* DEF_MSG_REPORT */
120 
121 
122 /* Verbose flags */
123 #define	MSG_DISABLED		0x00000000	/* Always off */
124 #define	MSG_MISC		0x00000001	/* Misc events */
125 #define	MSG_DRIVER		0x00000002	/* Driver attach and detach */
126 						/* events */
127 #define	MSG_INIT		0x00000004	/* Initialization events */
128 #define	MSG_MEM			0x00000008	/* Memory management events */
129 #define	MSG_SLI			0x00000010	/* SLI events */
130 #define	MSG_MBOX		0x00000020	/* Mailbox events */
131 #define	MSG_NODE		0x00000040	/* Node table events */
132 #define	MSG_LINK		0x00000080	/* Link events */
133 #define	MSG_ELS			0x00000100	/* ELS events */
134 #define	MSG_PKT			0x00000200	/* General I/O packet events */
135 #define	MSG_FCP			0x00000400	/* FCP traffic events */
136 #define	MSG_FCT			0x00000800	/* FCP Target Mode events */
137 #define	MSG_IP			0x00001000	/* IP traffic events */
138 #define	MSG_SFS			0x00002000	/* ULP interface events */
139 #define	MSG_IOCTL		0x00004000	/* IOCtl events */
140 #define	MSG_FIRMWARE		0x00008000	/* Firmware download events */
141 #define	MSG_CT			0x00010000	/* CT events */
142 #define	MSG_FCSP		0x00020000	/* FCSP events */
143 #define	MSG_FCF			0x00040000	/* FCF events */
144 #define	MSG_RESV19		0x00080000
145 #define	MSG_RESV20		0x00100000
146 #define	MSG_RESV21		0x00200000
147 #define	MSG_FCT_API		0x00400000	/* FCP Target Mode API trace */
148 #define	MSG_FCT_DETAIL		0x00800000	/* Detailed Target Mode */
149 						/* events */
150 #define	MSG_FCSP_DETAIL		0x01000000	/* Detailed FCSP events */
151 #define	MSG_NODE_DETAIL		0x02000000	/* Detailed node events */
152 #define	MSG_IOCTL_DETAIL	0x04000000	/* Detailed IOCTL events */
153 #define	MSG_IP_DETAIL		0x08000000	/* Detailed ip events */
154 						/* (very verbose) */
155 #define	MSG_FIRMWARE_DETAIL	0x10000000	/* Detailed firmware download */
156 						/* events (very verbose) */
157 #define	MSG_SFS_DETAIL		0x20000000	/* Detailed SFS interface */
158 						/* events (very verbose) */
159 #define	MSG_MBOX_DETAIL		0x40000000	/* Detailed Mailbox events */
160 						/* (very verbose) */
161 #define	MSG_SLI_DETAIL		0x80000000	/* Detailed SLI events */
162 						/* (very verbose) */
163 #define	MSG_ALWAYS		0xffffffff	/* Always on */
164 
165 /* Msg Levels */
166 #define	EMLXS_DEBUG	1
167 #define	EMLXS_NOTICE	2
168 #define	EMLXS_WARNING	3
169 #define	EMLXS_ERROR	4
170 #define	EMLXS_PANIC	5
171 
172 
173 typedef struct emlxs_msg
174 {
175 	char		buffer[64];	/* Msg buffer */
176 	uint32_t	id;		/* Msg number */
177 	uint32_t	level;		/* Msg level  */
178 	uint32_t	mask;		/* Msg mask (bit field) Message */
179 					/* will be logged only */
180 
181 #ifdef DEF_MSG_REPORT
182 	char		desc[512];
183 	char		action[512];
184 	uint32_t	flags;
185 #endif	/* DEF_MSG_REPORT */
186 
187 	char		*fm_ereport_code;
188 	int		fm_impact_code;
189 } emlxs_msg_t;
190 
191 
192 /* ACTION defines (common) */
193 #define	ACTION_NONE		"No action needed, informational."
194 #define	ACTION_NONE_REP		"No action needed, informational. " \
195 				"However, if the problem persists, " \
196 				"report these errors to your customer " \
197 				"service representative."
198 #define	ACTION_NONE_ADM		"No action needed, informational. " \
199 				"However, if the problem persists, " \
200 				"report these errors to your system "\
201 				"administrator."
202 #define	ACTION_CHK_HSCFG	"Check your hardware and software " \
203 				"configuration. If the problem persists, " \
204 				"report these errors to your customer " \
205 				"service representative."
206 #define	ACTION_CHK_HCFG		"Check your hardware configuration. " \
207 				"If the problem persists, report these " \
208 				"errors to your customer service " \
209 				"representative."
210 #define	ACTION_CHK_CONN		"Check your network connections. " \
211 				"If the problem persists, report these " \
212 				"errors to your system administrator."
213 #define	ACTION_REP		"Contact your customer service " \
214 				"representative."
215 #define	ACTION_IMG_REP		"Obtain the proper image file. If the " \
216 				"problem persists, report these errors " \
217 				"to your customer service representative."
218 
219 
220 /* MESSAGE defines */
221 #ifdef DEF_MSG_REPORT
222 emlxs_msg_t emlxs_message[] =
223 {
224 #endif /* DEF_MSG_REPORT */
225 
226 	/* GROUP:  MISC	000 - 099 */
227 
228 	DEFINE_MSG(1, \
229 		emlxs_debug_msg, \
230 		"", \
231 		EMLXS_DEBUG, \
232 		MSG_MISC, \
233 		"This is a general purpose informational message.", \
234 		ACTION_NONE, \
235 		NULL, \
236 		0)
237 
238 	DEFINE_MSG(2, \
239 		emlxs_notice_msg, \
240 		"", \
241 		EMLXS_NOTICE, \
242 		MSG_MISC, \
243 		"This is a general purpose informational message.", \
244 		ACTION_NONE, \
245 		NULL, \
246 		0)
247 
248 	DEFINE_MSG(3, \
249 		emlxs_warning_msg, \
250 		"", \
251 		EMLXS_WARNING, \
252 		MSG_MISC, \
253 		"This is a general purpose warning message.", \
254 		ACTION_NONE, \
255 		NULL, \
256 		0)
257 
258 	DEFINE_MSG(4, \
259 		emlxs_error_msg, \
260 		"", \
261 		EMLXS_ERROR, \
262 		MSG_MISC, \
263 		"This is a general purpose error message.", \
264 		ACTION_NONE, \
265 		NULL, \
266 		0)
267 
268 	DEFINE_MSG(5, \
269 		emlxs_panic_msg, \
270 		"", \
271 		EMLXS_PANIC, \
272 		MSG_MISC, \
273 		"This is a general purpose panic message.", \
274 		ACTION_REP, \
275 		NULL, \
276 		0)
277 
278 	DEFINE_MSG(10, \
279 		emlxs_event_debug_msg, \
280 		"Event.", \
281 		EMLXS_DEBUG, \
282 		MSG_MISC, \
283 		"This is debug information about a driver event.", \
284 		ACTION_NONE, \
285 		NULL, \
286 		0)
287 
288 	DEFINE_MSG(11, \
289 		emlxs_event_queued_msg, \
290 		"Event queued.", \
291 		EMLXS_DEBUG, \
292 		MSG_MISC, \
293 		"This indicates a driver event is being queued.", \
294 		ACTION_NONE, \
295 		NULL, \
296 		0)
297 
298 	DEFINE_MSG(12, \
299 		emlxs_event_dequeued_msg, \
300 		"Event dequeued.", \
301 		EMLXS_DEBUG, \
302 		MSG_MISC, \
303 		"This indicates a driver event is being dequeued.", \
304 		ACTION_NONE, \
305 		NULL, \
306 		0)
307 
308 	/* GROUP:  DRIVER	100 - 199 */
309 
310 	DEFINE_MSG(100, \
311 		emlxs_attach_msg, \
312 		"Driver attach.", \
313 		EMLXS_NOTICE, \
314 		MSG_DRIVER, \
315 		"This indicates that the driver is performing an attach " \
316 		"operation.", \
317 		ACTION_NONE, \
318 		NULL, \
319 		0)
320 
321 	DEFINE_MSG(101, \
322 		emlxs_attach_failed_msg, \
323 		"Driver attach failed.", \
324 		EMLXS_ERROR, \
325 		MSG_DRIVER, \
326 		"This indicates that the driver was unable to attach due to " \
327 		"some issue.", \
328 		ACTION_CHK_HSCFG, \
329 		NULL, \
330 		0)
331 
332 	DEFINE_MSG(102, \
333 		emlxs_attach_debug_msg, \
334 		"Driver attach.", \
335 		EMLXS_DEBUG, \
336 		MSG_DRIVER, \
337 		"This indicates that the driver is performing a attach " \
338 		"operation.", \
339 		ACTION_NONE, \
340 		NULL, \
341 		0)
342 
343 	DEFINE_MSG(110, \
344 		emlxs_detach_msg, \
345 		"Driver detach.", \
346 		EMLXS_NOTICE, \
347 		MSG_DRIVER, \
348 		"This indicates that the driver is performing a detach " \
349 		"operation.", \
350 		ACTION_NONE, \
351 		NULL, \
352 		0)
353 
354 	DEFINE_MSG(111, \
355 		emlxs_detach_failed_msg, \
356 		"Driver detach failed.", \
357 		EMLXS_ERROR, \
358 		MSG_DRIVER, \
359 		"This indicates that the driver was unable to detach due to " \
360 		"some issue.", \
361 		ACTION_CHK_HSCFG, \
362 		NULL, \
363 		0)
364 
365 	DEFINE_MSG(112, \
366 		emlxs_detach_debug_msg, \
367 		"Driver detach.", \
368 		EMLXS_DEBUG, \
369 		MSG_DRIVER, \
370 		"This indicates that the driver is performing a detach " \
371 		"operation.", \
372 		ACTION_NONE, \
373 		NULL, \
374 		0)
375 
376 	DEFINE_MSG(120, \
377 		emlxs_suspend_msg, \
378 		"Driver suspend.", \
379 		EMLXS_DEBUG, \
380 		MSG_DRIVER, \
381 		"This indicates that the driver is performing a suspend " \
382 		"operation.", \
383 		ACTION_NONE, \
384 		NULL, \
385 		0)
386 
387 	DEFINE_MSG(121, \
388 		emlxs_suspend_failed_msg, \
389 		"Driver suspend failed.", \
390 		EMLXS_ERROR, \
391 		MSG_DRIVER, \
392 		"This indicates that the driver was unable to suspend due " \
393 		"to some issue.", \
394 		ACTION_CHK_HSCFG, \
395 		NULL, \
396 		0)
397 
398 	DEFINE_MSG(130, \
399 		emlxs_resume_msg, \
400 		"Driver resume.", \
401 		EMLXS_DEBUG, \
402 		MSG_DRIVER, \
403 		"This indicates that the driver is performing a resume " \
404 		"operation.", \
405 		ACTION_NONE, \
406 		NULL, \
407 		0)
408 
409 	DEFINE_MSG(131, \
410 		emlxs_resume_failed_msg, \
411 		"Driver resume failed.", \
412 		EMLXS_ERROR, \
413 		MSG_DRIVER, \
414 		"This indicates that the driver was unable to resume due to " \
415 		"some issue.", \
416 		ACTION_CHK_HSCFG, \
417 		NULL, \
418 		0)
419 
420 
421 	/* GROUP:  INIT	200 - 299 */
422 
423 
424 	DEFINE_MSG(200, \
425 		emlxs_init_msg, \
426 		"Adapter initialization.", \
427 		EMLXS_NOTICE, \
428 		MSG_INIT, \
429 		"This indicates that the adapter is initializing.", \
430 		ACTION_NONE, \
431 		NULL, \
432 		0)
433 
434 	DEFINE_MSG(201, \
435 		emlxs_init_failed_msg, \
436 		"Adapter initialization failed.", \
437 		EMLXS_ERROR, \
438 		MSG_INIT, \
439 		"This indicates that an attempt to initialize the adapter " \
440 		"has failed.", \
441 		ACTION_CHK_HCFG, \
442 		NULL, \
443 		0)
444 
445 	DEFINE_MSG(202, \
446 		emlxs_init_debug_msg, \
447 		"Adapter initialization.", \
448 		EMLXS_DEBUG, \
449 		MSG_INIT, \
450 		"This indicates that the adapter is initializing.", \
451 		ACTION_NONE, \
452 		NULL, \
453 		0)
454 
455 	DEFINE_MSG(210, \
456 		emlxs_adapter_trans_msg, \
457 		"Adapter transition.", \
458 		EMLXS_DEBUG, \
459 		MSG_INIT, \
460 		"This indicates that the adapter is changing states.", \
461 		ACTION_NONE, \
462 		NULL, \
463 		0)
464 
465 	DEFINE_MSG(220, \
466 		emlxs_online_msg, \
467 		"Adapter online.", \
468 		EMLXS_DEBUG, \
469 		MSG_INIT, \
470 		"This indicates that the adapter is online and ready to " \
471 		"communicate.", \
472 		ACTION_NONE, \
473 		NULL, \
474 		0)
475 
476 	DEFINE_MSG(230, \
477 		emlxs_offline_msg, \
478 		"Adapter offline.", \
479 		EMLXS_DEBUG, \
480 		MSG_INIT, \
481 		"This indicates that the adapter is offline and unable to " \
482 		"communicate.", \
483 		ACTION_NONE, \
484 		NULL, \
485 		0)
486 
487 	DEFINE_MSG(231, \
488 		emlxs_shutdown_msg, \
489 		"Adapter shutdown.", \
490 		EMLXS_WARNING, \
491 		MSG_INIT, \
492 		"This indicates that the adapter has been shutdown and will " \
493 		"require a reboot to reinitialize.", \
494 		ACTION_REP, \
495 		DDI_FM_DEVICE_INVAL_STATE, \
496 		DDI_SERVICE_LOST)
497 
498 	DEFINE_MSG(240, \
499 		emlxs_reset_failed_msg, \
500 		"Adapter reset failed.", \
501 		EMLXS_ERROR, \
502 		MSG_INIT, \
503 		"This indicates that an attempt to reset the adapter has " \
504 		"failed.", \
505 		ACTION_CHK_HCFG, \
506 		DDI_FM_DEVICE_INVAL_STATE, \
507 		DDI_SERVICE_LOST)
508 
509 
510 	/* GROUP:  MEM		300 - 399 */
511 
512 
513 	DEFINE_MSG(300, \
514 		emlxs_mem_alloc_msg, \
515 		"Memory alloc.", \
516 		EMLXS_DEBUG, \
517 		MSG_MEM, \
518 		"This indicates that the driver allocated system memory.", \
519 		ACTION_NONE, \
520 		NULL, \
521 		0)
522 
523 	DEFINE_MSG(301, \
524 		emlxs_mem_alloc_failed_msg, \
525 		"Memory alloc failed.", \
526 		EMLXS_ERROR, \
527 		MSG_MEM, \
528 		"This indicates that the driver was unable to allocate " \
529 		"system memory. The system is low on memory resources.", \
530 		ACTION_NONE_ADM, \
531 		NULL, \
532 		0)
533 
534 	DEFINE_MSG(310, \
535 		emlxs_pool_error_msg, \
536 		"Memory pool error.", \
537 		EMLXS_ERROR, \
538 		MSG_MEM, \
539 		"This indicates that a problem has occurred with the " \
540 		"memory buffer pool management.", \
541 		ACTION_NONE_REP, \
542 		NULL, \
543 		0)
544 
545 	DEFINE_MSG(311, \
546 		emlxs_pool_alloc_failed_msg, \
547 		"Memory pool alloc failed.", \
548 		EMLXS_DEBUG, \
549 		MSG_MEM, \
550 		"This indicates that the driver was unable to allocate " \
551 		"memory from one of its own memory pools.",
552 		"If the problem occurs frequently you may be able to " \
553 		"configure more resources for that pool. If this does " \
554 		"not solve the problem, report these errors to customer " \
555 		"service.", \
556 		NULL, \
557 		0)
558 
559 	DEFINE_MSG(312, \
560 		emlxs_pool_detail_msg, \
561 		"Memory pool detail.", \
562 		EMLXS_DEBUG, \
563 		MSG_MEM, \
564 		"This provides detailed information about memory buffer" \
565 		"pool management.", \
566 		ACTION_NONE, \
567 		NULL, \
568 		0)
569 
570 	DEFINE_MSG(320, \
571 		emlxs_no_unsol_buf_msg, \
572 		"No unsolicited buffer available.", \
573 		EMLXS_NOTICE, \
574 		MSG_MEM, \
575 		"This indicates that the driver's unsolicited buffer pool " \
576 		"is exhausted. The I/O will be dropped and most likely ", \
577 		"retried by the remote device. If the problem occurs " \
578 		"frequently you may be able to configure more resources " \
579 		"for that pool. If this does not solve the problem, report " \
580 		"these errors to customer service.", \
581 		NULL, \
582 		0)
583 
584 	DEFINE_MSG(330, \
585 		emlxs_invalid_access_handle_msg, \
586 		"Invalid access handle.", \
587 		EMLXS_ERROR, \
588 		MSG_MEM, \
589 		"This indicates that the driver had an invalid access " \
590 		"handle assigned by the system.", \
591 		"If the problem occurs frequently, report these errors " \
592 		"to customer service.", \
593 		NULL, \
594 		DDI_SERVICE_LOST)
595 
596 	DEFINE_MSG(331, \
597 		emlxs_invalid_dma_handle_msg, \
598 		"Invalid DMA handle.", \
599 		EMLXS_ERROR, \
600 		MSG_MEM, \
601 		"This indicates that the driver had an invalid dma " \
602 		"handle assigned by the system.", \
603 		"If the problem occurs frequently, report these errors " \
604 		"to customer service.", \
605 		NULL, \
606 		DDI_SERVICE_UNAFFECTED)
607 
608 
609 	/* GROUP:  SLI		400 - 499 */
610 
611 
612 	DEFINE_MSG(400, \
613 		emlxs_vpd_msg, \
614 		"Vital Product Data.", \
615 		EMLXS_DEBUG, \
616 		MSG_SLI, \
617 		"This provides vendor specific information about the " \
618 		"adapter.", \
619 		ACTION_NONE, \
620 		NULL, \
621 		0)
622 
623 	DEFINE_MSG(410, \
624 		emlxs_link_atten_msg, \
625 		"Link atten.", \
626 		EMLXS_DEBUG, \
627 		MSG_SLI, \
628 		"This indicates that the adapter has triggered a link " \
629 		"attention interrupt.", \
630 		ACTION_NONE, \
631 		NULL, \
632 		0)
633 
634 	DEFINE_MSG(411, \
635 		emlxs_state_msg, \
636 		"State change.", \
637 		EMLXS_DEBUG, \
638 		MSG_SLI, \
639 		"This indicates that the adapter has changed state.", \
640 		ACTION_NONE, \
641 		NULL, \
642 		0)
643 
644 	DEFINE_MSG(412, \
645 		emlxs_linkup_atten_msg, \
646 		"Link Up atten.", \
647 		EMLXS_DEBUG, \
648 		MSG_SLI, \
649 		"This indicates that the adapter has triggered a link up " \
650 		"attention interrupt.", \
651 		ACTION_NONE, \
652 		NULL, \
653 		0)
654 
655 	DEFINE_MSG(413, \
656 		emlxs_linkdown_atten_msg, \
657 		"Link Down atten.", \
658 		EMLXS_DEBUG, \
659 		MSG_SLI, \
660 		"This indicates that the adapter has triggered a link down " \
661 		"attention interrupt.", \
662 		ACTION_NONE, \
663 		NULL, \
664 		0)
665 
666 	DEFINE_MSG(420, \
667 		emlxs_hardware_error_msg, \
668 		"Adapter hardware error.", \
669 		EMLXS_ERROR, \
670 		MSG_SLI, \
671 		"This indicates that an interrupt has occurred and the " \
672 		"status register indicates a nonrecoverable hardware ", \
673 		"error. This error usually indicates a hardware problem " \
674 		"with the adapter. Try running adapter diagnostics. Report "\
675 		"these errors to customer service.", \
676 		NULL, \
677 		0)
678 
679 	DEFINE_MSG(421, \
680 		emlxs_temp_msg, \
681 		"Adapter temperature.", \
682 		EMLXS_NOTICE, \
683 		MSG_SLI, \
684 		"This indicates that the adapter has provided general " \
685 		"information about the adapter's temperature.", \
686 		ACTION_NONE, \
687 		NULL, \
688 		0)
689 
690 	DEFINE_MSG(422, \
691 		emlxs_temp_warning_msg, \
692 		"Adapter temperature.", \
693 		EMLXS_WARNING, \
694 		MSG_SLI, \
695 		"This indicates that adapter's temperature is too hot.", \
696 		"Check hardware ventilation. Reduce adapter usage. " \
697 		"Shutdown host system.", \
698 		NULL, \
699 		0)
700 
701 	DEFINE_MSG(423, \
702 		emlxs_adapter_notice_msg, \
703 		"Adapter notice.", \
704 		EMLXS_NOTICE, \
705 		MSG_SLI, \
706 		"This indicates that the adapter has provided general " \
707 		"information about the adapter's condition.", \
708 		ACTION_NONE, \
709 		NULL, \
710 		0)
711 
712 	DEFINE_MSG(424, \
713 		emlxs_adapter_warning_msg, \
714 		"Adapter warning.", \
715 		EMLXS_WARNING, \
716 		MSG_SLI, \
717 		"This indicates that an interrupt has occurred indicating " \
718 		"a recoverable adapter error.", \
719 		"This error usually indicates a hardware or firmware " \
720 		"problem with the adapter. Check and/or update firmware " \
721 		"levels. Report these errors to customer service.", \
722 		NULL, \
723 		0)
724 
725 	DEFINE_MSG(425, \
726 		emlxs_adapter_error_msg, \
727 		"Adapter error.", \
728 		EMLXS_ERROR, \
729 		MSG_SLI, \
730 		"This indicates that a recoverable adapter error has " \
731 		"occurred.", \
732 		"This error usually indicates a hardware or firmware " \
733 		"problem with the adapter. Check and/or update firmware " \
734 		"levels. Report these errors to customer service.", \
735 		NULL, \
736 		0)
737 
738 	DEFINE_MSG(426, \
739 		emlxs_async_msg, \
740 		"Adapter Async Status.", \
741 		EMLXS_NOTICE, \
742 		MSG_SLI, \
743 		"This indicates that the adapter has provided general " \
744 		"information about the adapter's async status.", \
745 		ACTION_NONE, \
746 		NULL, \
747 		0)
748 
749 	DEFINE_MSG(430, \
750 		emlxs_ring_event_msg, \
751 		"Ring event.", \
752 		EMLXS_DEBUG, \
753 		MSG_SLI, \
754 		"This indicates that an SLI ring event has occurred.", \
755 		ACTION_NONE, \
756 		NULL, \
757 		0)
758 
759 	DEFINE_MSG(431, \
760 		emlxs_ring_error_msg, \
761 		"Ring error.", \
762 		EMLXS_DEBUG, \
763 		MSG_SLI, \
764 		"This indicates an SLI ring error is being reported by " \
765 		"the adapter", \
766 		ACTION_NONE, \
767 		NULL, \
768 		0)
769 
770 	DEFINE_MSG(432, \
771 		emlxs_ring_reset_msg, \
772 		"Ring reset.", \
773 		EMLXS_DEBUG, \
774 		MSG_SLI, \
775 		"This indicates an SLI ring is being reset.", \
776 		ACTION_NONE, \
777 		NULL, \
778 		0)
779 
780 	DEFINE_MSG(440, \
781 		emlxs_adapter_msg, \
782 		"Adapter msg.", \
783 		EMLXS_DEBUG, \
784 		MSG_SLI, \
785 		"This indicates that a message was sent to the driver " \
786 		"from the adapter.", \
787 		ACTION_NONE, \
788 		NULL, \
789 		0)
790 
791 	DEFINE_MSG(450, \
792 		emlxs_iocb_invalid_msg, \
793 		"IOCB invalid.", \
794 		EMLXS_ERROR, \
795 		MSG_SLI, \
796 		"This indicates that an IOCB was received from the adapter " \
797 		"with an illegal value. This error could indicate a driver " \
798 		"or firmware problem.", \
799 		ACTION_NONE_REP, \
800 		DDI_FM_DEVICE_INTERN_UNCORR, \
801 		DDI_SERVICE_DEGRADED)
802 
803 	DEFINE_MSG(451, \
804 		emlxs_iocb_qfull_msg, \
805 		"IOCB queue full.", \
806 		EMLXS_DEBUG, \
807 		MSG_SLI, \
808 		"This indicates that the IOCB queue is full. This will " \
809 		"occur during normal operation.", \
810 		ACTION_NONE, \
811 		NULL, \
812 		0)
813 
814 	DEFINE_MSG(452, \
815 		emlxs_iocb_event_msg, \
816 		"IOCB event.", \
817 		EMLXS_DEBUG, \
818 		MSG_SLI, \
819 		"This indicates an IOCB local error event is being " \
820 		"reported by the adapter", \
821 		ACTION_NONE, \
822 		NULL, \
823 		0)
824 
825 	DEFINE_MSG(453, \
826 		emlxs_iocb_stale_msg, \
827 		"IOCB stale.", \
828 		EMLXS_DEBUG, \
829 		MSG_SLI, \
830 		"This indicates an IOCB completed after its " \
831 		"associated packet completed.", \
832 		ACTION_NONE, \
833 		NULL, \
834 		0)
835 
836 	DEFINE_MSG(460, \
837 		emlxs_sli_detail_msg, \
838 		"SLI detail.", \
839 		EMLXS_DEBUG, \
840 		MSG_SLI_DETAIL, \
841 		"This provides detailed information about an SLI event.", \
842 		ACTION_NONE, \
843 		NULL, \
844 		0)
845 
846 	DEFINE_MSG(461, \
847 		emlxs_sli_err_msg, \
848 		"SLI ERROR.", \
849 		EMLXS_ERROR, \
850 		MSG_SLI, \
851 		"This provides error information about an SLI event.", \
852 		ACTION_NONE, \
853 		NULL, \
854 		0)
855 
856 	DEFINE_MSG(462, \
857 		emlxs_sli_debug_msg, \
858 		"SLI DEBUG.", \
859 		EMLXS_DEBUG, \
860 		MSG_SLI, \
861 		"This provides debug information about an SLI event.", \
862 		ACTION_NONE, \
863 		NULL, \
864 		0)
865 
866 	/* GROUP:  MBOX		500 - 599 */
867 
868 
869 	DEFINE_MSG(500, \
870 		emlxs_mbox_event_msg, \
871 		"Mailbox event.", \
872 		EMLXS_DEBUG, \
873 		MSG_MBOX, \
874 		"This indicates that a mailbox event has occurred.", \
875 		ACTION_NONE, \
876 		NULL, \
877 		0)
878 
879 	DEFINE_MSG(501, \
880 		emlxs_mbox_detail_msg, \
881 		"Mailbox detail.", \
882 		EMLXS_DEBUG, \
883 		MSG_MBOX_DETAIL, \
884 		"This provides detailed information about a mailbox event.", \
885 		ACTION_NONE, \
886 		NULL, \
887 		0)
888 
889 	DEFINE_MSG(510, \
890 		emlxs_stray_mbox_intr_msg, \
891 		"Stray mailbox interrupt.", \
892 		EMLXS_DEBUG, \
893 		MSG_MBOX, \
894 		"This indicates that a mailbox command completion interrupt " \
895 		"was received and the mailbox is not valid. This error could " \
896 		"indicate a driver or firmware problem.", \
897 		ACTION_NONE_REP, \
898 		DDI_FM_DEVICE_INTERN_UNCORR, \
899 		DDI_SERVICE_DEGRADED)
900 
901 	DEFINE_MSG(520, \
902 		emlxs_mbox_completion_error_msg, \
903 		"Mailbox error.", \
904 		EMLXS_DEBUG, \
905 		MSG_MBOX, \
906 		"This indicates that an unsupported or illegal mailbox " \
907 		"command was completed. This error could indicate a driver " \
908 		"or firmware problem.", \
909 		ACTION_NONE_REP, \
910 		DDI_FM_DEVICE_INTERN_UNCORR, \
911 		DDI_SERVICE_DEGRADED)
912 
913 	DEFINE_MSG(530, \
914 		emlxs_mbox_timeout_msg, \
915 		"Mailbox timeout.", \
916 		EMLXS_ERROR, \
917 		MSG_MBOX, \
918 		"The firmware did not response a mailbox command. " \
919 		"This error could indicate a hardware or firmware problem.", \
920 		ACTION_NONE_REP, \
921 		DDI_FM_DEVICE_NO_RESPONSE, \
922 		DDI_SERVICE_LOST)
923 
924 
925 	/* GROUP:  NODE		600 - 699 */
926 
927 	DEFINE_MSG(600, \
928 		emlxs_node_create_msg, \
929 		"Node create.", \
930 		EMLXS_DEBUG, \
931 		MSG_NODE, \
932 		"This indicates that a node has been created for a " \
933 		"remote device.", \
934 		ACTION_NONE, \
935 		NULL, \
936 		0)
937 
938 	DEFINE_MSG(601, \
939 		emlxs_node_opened_msg, \
940 		"Node opened.", \
941 		EMLXS_DEBUG, \
942 		MSG_NODE_DETAIL, \
943 		"This indicates that a node has been opened for " \
944 		"IO transport.", \
945 		ACTION_NONE, \
946 		NULL, \
947 		0)
948 
949 	DEFINE_MSG(602, \
950 		emlxs_node_create_failed_msg, \
951 		"Node create failed.", \
952 		EMLXS_NOTICE, \
953 		MSG_NODE, \
954 		"This indicates that a node create request for a remote " \
955 		"device has failed.", \
956 		ACTION_NONE, \
957 		NULL, \
958 		0)
959 
960 	DEFINE_MSG(603, \
961 		emlxs_node_update_msg, \
962 		"Node updated.", \
963 		EMLXS_DEBUG, \
964 		MSG_NODE, \
965 		"This indicates that a node has been updated for a " \
966 		"remote device.", \
967 		ACTION_NONE, \
968 		NULL, \
969 		0)
970 
971 	DEFINE_MSG(610, \
972 		emlxs_node_destroy_msg, \
973 		"Node destroy.", \
974 		EMLXS_DEBUG, \
975 		MSG_NODE, \
976 		"This indicates that a node has been destroyed for a " \
977 		"remote device.", \
978 		ACTION_NONE, \
979 		NULL, \
980 		0)
981 
982 	DEFINE_MSG(611, \
983 		emlxs_node_closed_msg, \
984 		"Node closed.", \
985 		EMLXS_DEBUG, \
986 		MSG_NODE_DETAIL, \
987 		"This indicates that a node has been temporarily " \
988 		"closed for IO transport.", \
989 		ACTION_NONE, \
990 		NULL, \
991 		0)
992 
993 	DEFINE_MSG(612, \
994 		emlxs_node_missing_msg, \
995 		"Node missing.", \
996 		EMLXS_NOTICE, \
997 		MSG_NODE, \
998 		"This indicates that a FCP2 device node has been " \
999 		"found missing.", \
1000 		ACTION_NONE, \
1001 		NULL, \
1002 		0)
1003 
1004 	DEFINE_MSG(620, \
1005 		emlxs_node_not_found_msg, \
1006 		"Node not found.", \
1007 		EMLXS_DEBUG, \
1008 		MSG_NODE, \
1009 		"This indicates that there was an attempt to send an I/O pkt " \
1010 		"to an unknown device node. The driver maintains a node " \
1011 		"table entry for every device it needs to communicate with " \
1012 		"on the FC network.", \
1013 		ACTION_NONE_REP, \
1014 		NULL, \
1015 		0)
1016 
1017 	DEFINE_MSG(621, \
1018 		emlxs_node_timeout_msg, \
1019 		"Node timeout.", \
1020 		EMLXS_DEBUG, \
1021 		MSG_NODE, \
1022 		"This indicates that the node timer expired. " \
1023 		"This means the node is ready to be opened or " \
1024 		"it has been offline too long and needs to be flushed.", \
1025 		ACTION_NONE, \
1026 		NULL, \
1027 		0)
1028 
1029 	/* GROUP:  LINK		700 - 799 */
1030 
1031 	DEFINE_MSG(700, \
1032 		emlxs_link_event_msg, \
1033 		"Link event.", \
1034 		EMLXS_DEBUG, \
1035 		MSG_LINK | MSG_SLI, \
1036 		"This indicates that a link event has occurred.", \
1037 		ACTION_NONE, \
1038 		NULL, \
1039 		0)
1040 
1041 	DEFINE_MSG(710, \
1042 		emlxs_link_down_msg, \
1043 		"Link down.", \
1044 		EMLXS_NOTICE, \
1045 		MSG_LINK, \
1046 		"This indicates that the fibre channel link is down to " \
1047 		"the adapter.", \
1048 		ACTION_CHK_CONN, \
1049 		NULL, \
1050 		0)
1051 
1052 	DEFINE_MSG(720, \
1053 		emlxs_link_up_msg, \
1054 		"Link up.", \
1055 		EMLXS_NOTICE, \
1056 		MSG_LINK, \
1057 		"This indicates that the fibre channel link is up.", \
1058 		ACTION_NONE, \
1059 		NULL, \
1060 		0)
1061 
1062 	DEFINE_MSG(721, \
1063 		emlxs_npiv_link_up_msg, \
1064 		"NPIV Link up.", \
1065 		EMLXS_NOTICE, \
1066 		MSG_LINK, \
1067 		"This indicates that the fibre channel link is up for all " \
1068 		"virtual ports.", \
1069 		ACTION_NONE, \
1070 		NULL, \
1071 		0)
1072 
1073 	DEFINE_MSG(730, \
1074 		emlxs_link_reset_msg, \
1075 		"Link reset.", \
1076 		EMLXS_NOTICE, \
1077 		MSG_LINK | MSG_SFS, \
1078 		"This indicates that an issue has forced the fibre channel " \
1079 		"link to be reset.", \
1080 		ACTION_NONE, \
1081 		NULL, \
1082 		0)
1083 
1084 	DEFINE_MSG(731, \
1085 		emlxs_link_reset_failed_msg, \
1086 		"Link reset failed.", \
1087 		EMLXS_ERROR, \
1088 		MSG_LINK | MSG_SFS, \
1089 		"This indicates that an attempt to reset the fibre channel " \
1090 		"link has failed.", \
1091 		ACTION_NONE_REP, \
1092 		DDI_FM_DEVICE_INTERN_CORR, \
1093 		DDI_SERVICE_DEGRADED)
1094 
1095 
1096 
1097 	/* GROUP:  ELS		800 - 899 */
1098 
1099 	DEFINE_MSG(800, \
1100 		emlxs_els_send_msg, \
1101 		"ELS sent. ", \
1102 		EMLXS_DEBUG, \
1103 		MSG_ELS, \
1104 		"This indicates that an ELS command is being sent.", \
1105 		ACTION_NONE, \
1106 		NULL, \
1107 		0)
1108 
1109 	DEFINE_MSG(801, \
1110 		emlxs_els_completion_msg, \
1111 		"ELS comp. ", \
1112 		EMLXS_DEBUG, \
1113 		MSG_ELS, \
1114 		"This indicates that an ELS command completed normally.", \
1115 		ACTION_NONE, \
1116 		NULL, \
1117 		0)
1118 
1119 	DEFINE_MSG(810, \
1120 		emlxs_stray_els_completion_msg, \
1121 		"Stray ELS completion.", \
1122 		EMLXS_ERROR, \
1123 		MSG_ELS, \
1124 		"This indicates that the an ELS command completion was " \
1125 		"received without issuing a corresponding ELS command. " \
1126 		"This error could indicate a driver or firmware problem. ", \
1127 		ACTION_NONE_REP, \
1128 		DDI_FM_DEVICE_INTERN_UNCORR, \
1129 		DDI_SERVICE_DEGRADED)
1130 
1131 	DEFINE_MSG(811, \
1132 		emlxs_bad_els_completion_msg, \
1133 		"Abnormal ELS completion.", \
1134 		EMLXS_DEBUG, \
1135 		MSG_ELS, \
1136 		"This indicates that an ELS command completed with a status " \
1137 		"error in the IOCB. It could mean the Fibre Channel device " \
1138 		"on the network is not responding or the Fibre Channel " \
1139 		"device is not an FCP target. The driver will automatically ", \
1140 		"retry this ELS command if needed. If the command is a PLOGI " \
1141 		"or PRLI, and the destination PortID is not an FCP Target, " \
1142 		"no action is needed. Otherwise, check physical connections " \
1143 		"to Fibre Channel network and the state the remote PortID " \
1144 		"is in.", \
1145 		NULL, \
1146 		0)
1147 
1148 	DEFINE_MSG(820, \
1149 		emlxs_unsol_els_msg, \
1150 		"ELS rcvd. ", \
1151 		EMLXS_DEBUG, \
1152 		MSG_ELS, \
1153 		"This indicates that an unsolicited ELS command was " \
1154 		"received.", \
1155 		ACTION_NONE, \
1156 		NULL, \
1157 		0)
1158 
1159 	DEFINE_MSG(821, \
1160 		emlxs_unsol_els_dropped_msg, \
1161 		"Unsolicited ELS dropped.", \
1162 		EMLXS_DEBUG, \
1163 		MSG_ELS, \
1164 		"This indicates that an unsolicited ELS command was " \
1165 		"received and then dropped for some reason.", \
1166 		ACTION_NONE, \
1167 		NULL, \
1168 		0)
1169 
1170 	DEFINE_MSG(822, \
1171 		emlxs_els_reply_msg, \
1172 		"ELS reply.", \
1173 		EMLXS_DEBUG, \
1174 		MSG_ELS, \
1175 		"This indicates that a reply is being sent for an " \
1176 		"unsolicited ELS command.", \
1177 		ACTION_NONE, \
1178 		NULL, \
1179 		0)
1180 
1181 	DEFINE_MSG(830, \
1182 		emlxs_invalid_els_msg, \
1183 		"Invalid ELS command found.", \
1184 		EMLXS_ERROR, \
1185 		MSG_ELS, \
1186 		"This indicates that an ELS command was found with an " \
1187 		"invalid command code.", \
1188 		ACTION_NONE_REP, \
1189 		DDI_FM_DEVICE_INTERN_UNCORR, \
1190 		DDI_SERVICE_UNAFFECTED)
1191 
1192 
1193 	/* GROUP:  PKT		900 - 999 */
1194 
1195 
1196 	DEFINE_MSG(900, \
1197 		emlxs_pkt_abort_msg, \
1198 		"Packet abort.", \
1199 		EMLXS_NOTICE, \
1200 		MSG_PKT, \
1201 		"This indicates that an I/O packet is being aborted.", \
1202 		ACTION_NONE, \
1203 		NULL, \
1204 		0)
1205 
1206 	DEFINE_MSG(901, \
1207 		emlxs_pkt_abort_failed_msg, \
1208 		"Packet abort failed.", \
1209 		EMLXS_WARNING, \
1210 		MSG_PKT, \
1211 		"This indicates that an attempt to abort an I/O packet " \
1212 		"has failed.", \
1213 		ACTION_NONE_REP, \
1214 		NULL, \
1215 		0)
1216 
1217 	DEFINE_MSG(910, \
1218 		emlxs_pkt_timeout_msg, \
1219 		"Packet timeout.", \
1220 		EMLXS_DEBUG, \
1221 		MSG_PKT, \
1222 		"This indicates that an I/O packet has timed out and is " \
1223 		"being aborted.", \
1224 		ACTION_NONE, \
1225 		NULL, \
1226 		0)
1227 
1228 	DEFINE_MSG(911, \
1229 		emlxs_chan_watchdog_msg, \
1230 		"CHANNEL watchdog.", \
1231 		EMLXS_DEBUG, \
1232 		MSG_PKT, \
1233 		"This indicates that IO(s) are getting stale waiting on a " \
1234 		"IO channel tx queue.", \
1235 		ACTION_NONE, \
1236 		NULL, \
1237 		0)
1238 
1239 	DEFINE_MSG(912, \
1240 		emlxs_txq_watchdog_msg, \
1241 		"TXQ watchdog.", \
1242 		EMLXS_DEBUG, \
1243 		MSG_PKT, \
1244 		"This indicates that an IO was found missing from the " \
1245 		"transmit queue.", \
1246 		ACTION_NONE, \
1247 		NULL, \
1248 		0)
1249 
1250 	DEFINE_MSG(920, \
1251 		emlxs_pkt_flush_msg, \
1252 		"Packet flush.", \
1253 		EMLXS_DEBUG, \
1254 		MSG_PKT, \
1255 		"This indicates that an I/O packet is being flushed.", \
1256 		ACTION_NONE, \
1257 		NULL, \
1258 		0)
1259 
1260 	DEFINE_MSG(921, \
1261 		emlxs_pkt_flushed_msg, \
1262 		"Packet flushed.", \
1263 		EMLXS_DEBUG, \
1264 		MSG_PKT, \
1265 		"This indicates that an I/O packet has been flushed.", \
1266 		ACTION_NONE, \
1267 		NULL, \
1268 		0)
1269 
1270 	DEFINE_MSG(922, \
1271 		emlxs_flush_timeout_msg, \
1272 		"Packet flush timeout.", \
1273 		EMLXS_NOTICE, \
1274 		MSG_PKT, \
1275 		"This indicates that an I/O packet flush request has " \
1276 		"timed out with some I/O packets's still not completed. " \
1277 		"The driver will attempt to recover by itself.", \
1278 		ACTION_NONE_REP, \
1279 		NULL, \
1280 		0)
1281 
1282 	DEFINE_MSG(930, \
1283 		emlxs_pkt_trans_failed_msg, \
1284 		"Packet transport failed.", \
1285 		EMLXS_NOTICE, \
1286 		MSG_PKT, \
1287 		"This indicates that an attempt to send an I/O packet " \
1288 		"failed. The I/O packet will be retried by the upper layer.", \
1289 		ACTION_NONE, \
1290 		NULL, \
1291 		0)
1292 
1293 	DEFINE_MSG(931, \
1294 		emlxs_pkt_trans_error_msg, \
1295 		"Packet transport error.", \
1296 		EMLXS_ERROR, \
1297 		MSG_PKT, \
1298 		"This indicates that an error occurred while attempting to " \
1299 		"send an I/O packet. The I/O packet will likely be failed " \
1300 		"back to the user application.", \
1301 		ACTION_NONE_REP, \
1302 		DDI_FM_DEVICE_INTERN_CORR, \
1303 		DDI_SERVICE_UNAFFECTED)
1304 
1305 	DEFINE_MSG(932, \
1306 		emlxs_pkt_trans_msg, \
1307 		"Packet transport.", \
1308 		EMLXS_DEBUG, \
1309 		MSG_PKT, \
1310 		"This provides additional information about a packet " \
1311 		"being sent.", \
1312 		ACTION_NONE, \
1313 		NULL, \
1314 		0)
1315 
1316 	DEFINE_MSG(940, \
1317 		emlxs_pkt_completion_error_msg, \
1318 		"Packet completion error.", \
1319 		EMLXS_DEBUG, \
1320 		MSG_PKT, \
1321 		"This indicates that an I/O packet was completed with an " \
1322 		"error status. This can occur during normal operation.", \
1323 		ACTION_NONE_REP, \
1324 		NULL, \
1325 		0)
1326 
1327 
1328 	/* GROUP:  FCP		1000 - 1099 */
1329 
1330 	DEFINE_MSG(1000, \
1331 		emlxs_stray_fcp_completion_msg, \
1332 		"Stray FCP completion.", \
1333 		EMLXS_DEBUG, \
1334 		MSG_FCP, \
1335 		"This indicates that an FCP command completion was received " \
1336 		"without issuing a corresponding FCP Command. This error " \
1337 		"could indicate a driver or firmware problem.", \
1338 		ACTION_NONE_REP, \
1339 		DDI_FM_DEVICE_INTERN_UNCORR, \
1340 		DDI_SERVICE_DEGRADED)
1341 
1342 	DEFINE_MSG(1001, \
1343 		emlxs_fcp_completion_error_msg, \
1344 		"FCP completion error.", \
1345 		EMLXS_DEBUG, \
1346 		MSG_FCP, \
1347 		"This indicates that an FCP command completed with an error " \
1348 		"status. These errors can occur during normal operation.", \
1349 		ACTION_NONE, \
1350 		NULL, \
1351 		0)
1352 
1353 
1354 	/* GROUP:  FCT		1100 - 1199 */
1355 
1356 #ifdef SFCT_SUPPORT
1357 	DEFINE_MSG(1100,\
1358 		emlxs_fct_detail_msg,\
1359 		"FCT detail.",\
1360 		EMLXS_DEBUG,\
1361 		MSG_FCT_DETAIL,\
1362 		"This provides detailed information about the driver's " \
1363 		"FCT interface.",\
1364 		ACTION_NONE, \
1365 		NULL, \
1366 		0)
1367 
1368 	DEFINE_MSG(1110,\
1369 		emlxs_fct_debug_msg,\
1370 		"FCT debug.",\
1371 		EMLXS_DEBUG,\
1372 		MSG_FCT,\
1373 		"This provides general information about the driver's " \
1374 		"FCT interface.",\
1375 		ACTION_NONE, \
1376 		NULL, \
1377 		0)
1378 
1379 	DEFINE_MSG(1120,\
1380 		emlxs_fct_error_msg,\
1381 		"FCT error.",\
1382 		EMLXS_DEBUG,\
1383 		MSG_FCT,\
1384 		"This indicates a general error has occurred in the driver's " \
1385 		"FCT interface.",\
1386 		ACTION_NONE_REP, \
1387 		NULL, \
1388 		0)
1389 
1390 	DEFINE_MSG(1130,\
1391 		emlxs_fct_api_msg,\
1392 		"FCT API.",\
1393 		EMLXS_DEBUG,\
1394 		MSG_FCT_API,\
1395 		"This provides an API trace with the driver's FCT interface.",\
1396 		ACTION_NONE, \
1397 		NULL, \
1398 		0)
1399 
1400 #endif /* SFCT_SUPPORT */
1401 
1402 	/* GROUP:  IP		1200 - 1299 */
1403 
1404 
1405 	DEFINE_MSG(1200, \
1406 		emlxs_ip_detail_msg, \
1407 		"IP detail. ", \
1408 		EMLXS_DEBUG, \
1409 		MSG_IP_DETAIL, \
1410 		"This provides detailed information about the driver's " \
1411 		"IP interface.", \
1412 		ACTION_NONE, \
1413 		NULL, \
1414 		0)
1415 
1416 	DEFINE_MSG(1210, \
1417 		emlxs_stray_ip_completion_msg, \
1418 		"Stray IP completion.", \
1419 		EMLXS_ERROR, \
1420 		MSG_IP, \
1421 		"This indicates that the an IP sequence completion was " \
1422 		"received without issuing a corresponding IP sequence. " \
1423 		"This error could indicate a driver or firmware problem. ", \
1424 		ACTION_NONE_REP, \
1425 		DDI_FM_DEVICE_INTERN_UNCORR, \
1426 		DDI_SERVICE_DEGRADED)
1427 
1428 	DEFINE_MSG(1211, \
1429 		emlxs_bad_ip_completion_msg, \
1430 		"Abnormal IP completion.", \
1431 		EMLXS_DEBUG, \
1432 		MSG_IP, \
1433 		"This indicates that an IP sequence completed with a status " \
1434 		"error in the IOCB. It could mean the Fibre Channel device " \
1435 		"on the network is not responding.", \
1436 		ACTION_NONE_ADM, \
1437 		NULL, \
1438 		0)
1439 
1440 	DEFINE_MSG(1220, \
1441 		emlxs_unsol_ip_dropped_msg, \
1442 		"Unsolicited IP dropped.", \
1443 		EMLXS_DEBUG, \
1444 		MSG_IP, \
1445 		"This indicates that an unsolicited IP sequence was " \
1446 		"received, but was dropped for some reason.", \
1447 		ACTION_NONE, \
1448 		NULL, \
1449 		0)
1450 
1451 	DEFINE_MSG(1221, \
1452 		emlxs_unsol_ip_debug_msg, \
1453 		"IP recvd.", \
1454 		EMLXS_DEBUG, \
1455 		MSG_IP, \
1456 		"This indicates that an unsolicited IP sequence was " \
1457 		"received.", \
1458 		ACTION_NONE, \
1459 		NULL, \
1460 		0)
1461 
1462 	DEFINE_MSG(1230, \
1463 		emlxs_invalid_ip_msg, \
1464 		"Invalid IP sequence found.", \
1465 		EMLXS_ERROR, \
1466 		MSG_IP, \
1467 		"This indicates that an IP sequence was found with an " \
1468 		"invalid code.", \
1469 		ACTION_NONE_REP, \
1470 		DDI_FM_DEVICE_INTERN_UNCORR, \
1471 		DDI_SERVICE_DEGRADED)
1472 
1473 
1474 	/* GROUP:  SFS		1300 - 1399 */
1475 
1476 	DEFINE_MSG(1300, \
1477 		emlxs_sfs_debug_msg, \
1478 		"SFS.", \
1479 		EMLXS_DEBUG, \
1480 		MSG_SFS, \
1481 		"This provides general information about the driver's " \
1482 		"SFS interface.", \
1483 		ACTION_NONE, \
1484 		NULL, \
1485 		0)
1486 
1487 	DEFINE_MSG(1301, \
1488 		emlxs_sfs_detail_msg, \
1489 		"SFS detail.", \
1490 		EMLXS_DEBUG, \
1491 		MSG_SFS_DETAIL, \
1492 		"This provides detailed information about the driver's " \
1493 		"SFS interface.", \
1494 		ACTION_NONE, \
1495 		NULL, \
1496 		0)
1497 
1498 	DEFINE_MSG(1310, \
1499 		emlxs_diag_error_msg, \
1500 		"Diagnostic error.", \
1501 		EMLXS_WARNING, \
1502 		MSG_SFS, \
1503 		"This indicates that a diagnostic request did not complete " \
1504 		"because of some issue.", \
1505 		ACTION_NONE_REP, \
1506 		NULL, \
1507 		0)
1508 
1509 	DEFINE_MSG(1311, \
1510 		emlxs_echo_complete_msg, \
1511 		"ECHO diagnostic completed.", \
1512 		EMLXS_DEBUG, \
1513 		MSG_SFS, \
1514 		"This indicates that an ECHO diagnostic has completed.", \
1515 		ACTION_NONE, \
1516 		NULL, \
1517 		0)
1518 
1519 	DEFINE_MSG(1312, \
1520 		emlxs_echo_failed_msg, \
1521 		"ECHO diagnostic failed.", \
1522 		EMLXS_WARNING, \
1523 		MSG_SFS, \
1524 		"This indicates that an ECHO diagnostic has failed to return " \
1525 		"a positive result. This could indicate a connectivity " \
1526 		"problem with your FC network.", \
1527 		ACTION_CHK_CONN, \
1528 		NULL, \
1529 		0)
1530 
1531 	DEFINE_MSG(1313, \
1532 		emlxs_biu_complete_msg, \
1533 		"BIU diagnostic completed.", \
1534 		EMLXS_DEBUG, \
1535 		MSG_SFS, \
1536 		"This indicates that an BIU diagnostic has completed.", \
1537 		ACTION_NONE, \
1538 		NULL, \
1539 		0)
1540 
1541 	DEFINE_MSG(1314, \
1542 		emlxs_biu_failed_msg, \
1543 		"BIU diagnostic failed.", \
1544 		EMLXS_ERROR, \
1545 		MSG_SFS, \
1546 		"This indicates that an BIU diagnostic has failed to return " \
1547 		"a positive result. This usually caused by an adapter " \
1548 		"hardware problem.", \
1549 		ACTION_REP, \
1550 		NULL, \
1551 		0)
1552 
1553 	DEFINE_MSG(1315, \
1554 		emlxs_post_complete_msg, \
1555 		"POST diagnostic completed.", \
1556 		EMLXS_DEBUG, \
1557 		MSG_SFS, \
1558 		"This indicates that an POST diagnostic has completed.", \
1559 		ACTION_NONE, \
1560 		NULL, \
1561 		0)
1562 
1563 	DEFINE_MSG(1316, \
1564 		emlxs_post_failed_msg, \
1565 		"POST diagnostic failed.", \
1566 		EMLXS_ERROR, \
1567 		MSG_SFS, \
1568 		"This indicates that an POST diagnostic has failed to return " \
1569 		"a positive result. This is usually caused by an adapter " \
1570 		"hardware problem.", \
1571 		ACTION_REP, \
1572 		NULL, \
1573 		0)
1574 
1575 
1576 	/* GROUP:  IOCTL	1400 - 1499 */
1577 
1578 
1579 	DEFINE_MSG(1400, \
1580 		emlxs_ioctl_debug_msg, \
1581 		"IOCTL.", \
1582 		EMLXS_DEBUG, \
1583 		MSG_IOCTL, \
1584 		"This provides general information about the driver's " \
1585 		"IOCTL interface.", \
1586 		ACTION_NONE, \
1587 		NULL, \
1588 		0)
1589 
1590 	DEFINE_MSG(1401, \
1591 		emlxs_ioctl_detail_msg, \
1592 		"IOCTL detail.", \
1593 		EMLXS_DEBUG, \
1594 		MSG_IOCTL_DETAIL, \
1595 		"This provides detailed information about the driver's " \
1596 		"IOCTL interface.", \
1597 		ACTION_NONE, \
1598 		NULL, \
1599 		0)
1600 
1601 	DEFINE_MSG(1410, \
1602 		emlxs_dfc_debug_msg, \
1603 		"DFC", \
1604 		EMLXS_DEBUG, \
1605 		MSG_IOCTL, \
1606 		"This provides general information about the driver's " \
1607 		"DFC interface.", \
1608 		ACTION_NONE, \
1609 		NULL, \
1610 		0)
1611 
1612 	DEFINE_MSG(1411, \
1613 		emlxs_dfc_detail_msg, \
1614 		"DFC detail.", \
1615 		EMLXS_DEBUG, \
1616 		MSG_IOCTL_DETAIL, \
1617 		"This provides detailed information about the driver's " \
1618 		"DFC interface.", \
1619 		ACTION_NONE, \
1620 		NULL, \
1621 		0)
1622 
1623 	DEFINE_MSG(1420, \
1624 		emlxs_dfc_error_msg, \
1625 		"DFC Error.", \
1626 		EMLXS_DEBUG, \
1627 		MSG_IOCTL, \
1628 		"This indicates that an error was found while processing a " \
1629 		"DFC request.", \
1630 		ACTION_NONE, \
1631 		NULL, \
1632 		0)
1633 
1634 
1635 
1636 	/* GROUP:  FIRMWARE	1500 - 1599 */
1637 
1638 	DEFINE_MSG(1500, \
1639 		emlxs_image_msg, \
1640 		"Firmware image.", \
1641 		EMLXS_DEBUG, \
1642 		MSG_FIRMWARE, \
1643 		"This provides information about the firmware image.", \
1644 		ACTION_NONE, \
1645 		NULL, \
1646 		0)
1647 
1648 	DEFINE_MSG(1501, \
1649 		emlxs_image_detail_msg, \
1650 		"Firmware detail.", \
1651 		EMLXS_DEBUG, \
1652 		MSG_FIRMWARE_DETAIL, \
1653 		"This provides detailed information about the firmware " \
1654 		"image.", \
1655 		ACTION_NONE, \
1656 		NULL, \
1657 		0)
1658 
1659 	DEFINE_MSG(1502, \
1660 		emlxs_image_library_msg, \
1661 		"Firmware Library", \
1662 		EMLXS_NOTICE, \
1663 		MSG_DRIVER, \
1664 		"This shows the versions of firmware contained in the " \
1665 		"driver's library.", \
1666 		ACTION_NONE, \
1667 		NULL, \
1668 		0)
1669 
1670 	DEFINE_MSG(1510, \
1671 		emlxs_image_bad_msg, \
1672 		"Bad firmware image.", \
1673 		EMLXS_ERROR, \
1674 		MSG_FIRMWARE, \
1675 		"This indicates that a bad firmware image was provided to " \
1676 		"the download function.", \
1677 		ACTION_IMG_REP, \
1678 		NULL, \
1679 		0)
1680 
1681 	DEFINE_MSG(1511, \
1682 		emlxs_image_incompat_msg, \
1683 		"Firmware image not compatible.", \
1684 		EMLXS_ERROR, \
1685 		MSG_FIRMWARE, \
1686 		"This indicates that the firmware image provided was not " \
1687 		"compatible with the existing hardware.", \
1688 		ACTION_IMG_REP, \
1689 		NULL, \
1690 		0)
1691 
1692 	DEFINE_MSG(1520, \
1693 		emlxs_download_msg, \
1694 		"Firmware download.", \
1695 		EMLXS_NOTICE, \
1696 		MSG_FIRMWARE, \
1697 		"This indicates that an attempt to download a firmware image " \
1698 		"has occurred.", \
1699 		ACTION_NONE, \
1700 		NULL, \
1701 		0)
1702 
1703 	DEFINE_MSG(1521, \
1704 		emlxs_download_complete_msg, \
1705 		"Firmware download complete.", \
1706 		EMLXS_NOTICE, \
1707 		MSG_FIRMWARE, \
1708 		"This indicates that an attempt to download a firmware image " \
1709 		"was successful.", \
1710 		ACTION_NONE, \
1711 		NULL, \
1712 		0)
1713 
1714 	DEFINE_MSG(1522, \
1715 		emlxs_download_failed_msg, \
1716 		"Firmware download failed.", \
1717 		EMLXS_ERROR, \
1718 		MSG_FIRMWARE, \
1719 		"This indicates that an attempt to download a firmware image " \
1720 		"was failed.", \
1721 		ACTION_CHK_HCFG, \
1722 		NULL, \
1723 		0)
1724 
1725 	DEFINE_MSG(1523, \
1726 		emlxs_fw_updated_msg, \
1727 		"Firmware updated.", \
1728 		EMLXS_WARNING, \
1729 		MSG_FIRMWARE, \
1730 		"This indicates that new firmware has been updated on the " \
1731 		"adapter.", \
1732 		"A reboot or adapter power cycle will be required to " \
1733 		"activate the new firmware.", \
1734 		NULL, \
1735 		0)
1736 
1737 	DEFINE_MSG(1530, \
1738 		emlxs_fw_dump_msg, \
1739 		"Firmware dump.", \
1740 		EMLXS_DEBUG, \
1741 		MSG_FIRMWARE, \
1742 		"This indicates that a firmware core dump has occurred.", \
1743 		ACTION_CHK_HCFG, \
1744 		NULL, \
1745 		0)
1746 
1747 	DEFINE_MSG(1540, \
1748 		emlxs_fw_update_msg, \
1749 		"Firmware update required.", \
1750 		EMLXS_WARNING, \
1751 		MSG_FIRMWARE, \
1752 		"This indicates that a firmware update is required on the " \
1753 		"adapter.", \
1754 		"The user must perform a manual adapter reset or link reset" \
1755 		"once the host environment is stable to trigger an automatic" \
1756 		"firmware download. DO NOT POWER CYCLE OR REBOOT THE SYSTEM" \
1757 		"DURING THE DOWNLOAD OPERATION.", \
1758 		NULL, \
1759 		0)
1760 
1761 	/* GROUP:  CT		1600 - 1699 */
1762 
1763 	DEFINE_MSG(1600, \
1764 		emlxs_ct_send_msg, \
1765 		"CT sent. ", \
1766 		EMLXS_DEBUG, \
1767 		MSG_CT, \
1768 		"This indicates that an CT command is being sent.", \
1769 		ACTION_NONE, \
1770 		NULL, \
1771 		0)
1772 
1773 	DEFINE_MSG(1601, \
1774 		emlxs_ct_completion_msg, \
1775 		"CT comp. ", \
1776 		EMLXS_DEBUG, \
1777 		MSG_CT, \
1778 		"This indicates that an CT command completed normally.", \
1779 		ACTION_NONE, \
1780 		NULL, \
1781 		0)
1782 
1783 	DEFINE_MSG(1610, \
1784 		emlxs_stray_ct_completion_msg, \
1785 		"Stray CT completion.", \
1786 		EMLXS_ERROR, \
1787 		MSG_CT, \
1788 		"This indicates that the an CT command completion was " \
1789 		"received without issuing a corresponding CT command. " \
1790 		"This error could indicate a driver or firmware problem. ", \
1791 		ACTION_NONE_REP, \
1792 		DDI_FM_DEVICE_INTERN_UNCORR, \
1793 		DDI_SERVICE_DEGRADED)
1794 
1795 	DEFINE_MSG(1611, \
1796 		emlxs_bad_ct_completion_msg, \
1797 		"Abnormal CT completion.", \
1798 		EMLXS_DEBUG, \
1799 		MSG_CT, \
1800 		"This indicates that an CT command completed with a status " \
1801 		"error in the IOCB. It could mean the Fibre Channel device " \
1802 		"on the network is not responding. The driver will " \
1803 		"automatically retry this CT command if needed.", \
1804 		"Check physical connections to Fibre Channel network and " \
1805 		"the state the remote PortID is in.", \
1806 		NULL, \
1807 		0)
1808 
1809 	DEFINE_MSG(1620, \
1810 		emlxs_unsol_ct_msg, \
1811 		"CT rcvd. ", \
1812 		EMLXS_DEBUG, \
1813 		MSG_CT, \
1814 		"This indicates that an unsolicited CT command was received.", \
1815 		ACTION_NONE, \
1816 		NULL, \
1817 		0)
1818 
1819 	DEFINE_MSG(1621, \
1820 		emlxs_unsol_ct_dropped_msg, \
1821 		"Unsolicited CT dropped.", \
1822 		EMLXS_DEBUG, \
1823 		MSG_CT, \
1824 		"This indicates that an unsolicited CT command was received " \
1825 		"and then dropped for some reason.", \
1826 		ACTION_NONE, \
1827 		NULL, \
1828 		0)
1829 
1830 	DEFINE_MSG(1622, \
1831 		emlxs_ct_reply_msg, \
1832 		"CT reply.", \
1833 		EMLXS_DEBUG, \
1834 		MSG_CT, \
1835 		"This indicates that a reply is being sent for an " \
1836 		"unsolicited CT command.", \
1837 		ACTION_NONE, \
1838 		NULL, \
1839 		0)
1840 
1841 	DEFINE_MSG(1630, \
1842 		emlxs_invalid_ct_msg, \
1843 		"Invalid CT command found.", \
1844 		EMLXS_ERROR, \
1845 		MSG_CT, \
1846 		"This indicates that an CT command was found with an invalid " \
1847 		"command code.", \
1848 		ACTION_NONE_REP, \
1849 		DDI_FM_DEVICE_INTERN_UNCORR, \
1850 		DDI_SERVICE_DEGRADED)
1851 
1852 	/* GROUP: FC-SP (DHCHAP)	1700 - 1799 */
1853 
1854 #ifdef DHCHAP_SUPPORT
1855 
1856 	DEFINE_MSG(1700, \
1857 		emlxs_fcsp_debug_msg, \
1858 		"FCSP", \
1859 		EMLXS_DEBUG, \
1860 		MSG_FCSP, \
1861 		"This provides general information about the driver's " \
1862 		"FCSP interface.", \
1863 		ACTION_NONE, \
1864 		NULL, \
1865 		0)
1866 
1867 	DEFINE_MSG(1701, \
1868 		emlxs_fcsp_detail_msg, \
1869 		"FCSP detail.", \
1870 		EMLXS_DEBUG, \
1871 		MSG_FCSP_DETAIL, \
1872 		"This provides detailed information about the driver's " \
1873 		"FCSP interface.", \
1874 		ACTION_NONE, \
1875 		NULL, \
1876 		0)
1877 
1878 	DEFINE_MSG(1702, \
1879 		emlxs_fcsp_error_msg, \
1880 		"FCSP error.", \
1881 		EMLXS_DEBUG, \
1882 		MSG_FCSP, \
1883 		"This indicates that an error was found while processing " \
1884 		"a DFC request.", \
1885 		ACTION_NONE, \
1886 		NULL, \
1887 		0)
1888 
1889 	DEFINE_MSG(1705, \
1890 		emlxs_fcsp_state_msg, \
1891 		"FCSP state.", \
1892 		EMLXS_DEBUG, \
1893 		MSG_FCSP, \
1894 		"This indicates that an authentication state is changing.", \
1895 		ACTION_NONE, \
1896 		NULL, \
1897 		0)
1898 
1899 	DEFINE_MSG(1706, \
1900 		emlxs_fcsp_event_msg, \
1901 		"FCSP event", \
1902 		EMLXS_DEBUG, \
1903 		MSG_FCSP, \
1904 		"This indicates that an authentication event has occurred.", \
1905 		ACTION_NONE, \
1906 		NULL, \
1907 		0)
1908 
1909 	DEFINE_MSG(1707, \
1910 		emlxs_fcsp_status_msg, \
1911 		"FCSP status.", \
1912 		EMLXS_DEBUG, \
1913 		MSG_FCSP, \
1914 		"This indicates that an authentication status is being " \
1915 		"updated.", \
1916 		ACTION_NONE, \
1917 		NULL, \
1918 		0)
1919 
1920 	DEFINE_MSG(1710, \
1921 		emlxs_fcsp_start_msg, \
1922 		"FCSP start.", \
1923 		EMLXS_DEBUG, \
1924 		MSG_FCSP, \
1925 		"This indicates that authentication is being started to a " \
1926 		"specific node.", \
1927 		ACTION_NONE, \
1928 		NULL, \
1929 		0)
1930 
1931 	DEFINE_MSG(1720, \
1932 		emlxs_fcsp_complete_msg, \
1933 		"FCSP comp. ", \
1934 		EMLXS_DEBUG, \
1935 		MSG_FCSP, \
1936 		"This indicates that authentication is being stopped or " \
1937 		"completed to a specific node.", \
1938 		ACTION_NONE, \
1939 		NULL, \
1940 		0)
1941 #endif	/* DHCHAP_SUPPORT */
1942 
1943 	/* GROUP: FCF		1800 - 1899 */
1944 
1945 	DEFINE_MSG(1800, \
1946 		emlxs_fcf_debug_msg, \
1947 		"FCF", \
1948 		EMLXS_DEBUG, \
1949 		MSG_FCF, \
1950 		"This provides general information about the driver's " \
1951 		"FCF interface.", \
1952 		ACTION_NONE, \
1953 		NULL, \
1954 		0)
1955 
1956 	DEFINE_MSG(1801, \
1957 		emlxs_fcf_detail_msg, \
1958 		"FCF detail.", \
1959 		EMLXS_DEBUG, \
1960 		MSG_FCF, \
1961 		"This provides detailed information about the driver's " \
1962 		"FCF interface.", \
1963 		ACTION_NONE, \
1964 		NULL, \
1965 		0)
1966 
1967 	DEFINE_MSG(1810, \
1968 		emlxs_fcf_error_msg, \
1969 		"FCF error. ", \
1970 		EMLXS_DEBUG, \
1971 		MSG_FCF, \
1972 		"This indicates that an error was found while processing " \
1973 		"an FCF request.", \
1974 		ACTION_NONE, \
1975 		NULL, \
1976 		0)
1977 
1978 	DEFINE_MSG(1820, \
1979 		emlxs_fcf_state_msg, \
1980 		"FCF state. ", \
1981 		EMLXS_DEBUG, \
1982 		MSG_FCF, \
1983 		"This indicates that an FCF object state is changing.", \
1984 		ACTION_NONE, \
1985 		NULL, \
1986 		0)
1987 
1988 	DEFINE_MSG(1830, \
1989 		emlxs_fcf_event_msg, \
1990 		"FCF event. ", \
1991 		EMLXS_DEBUG, \
1992 		MSG_FCF, \
1993 		"This indicates that an FCF event has occurred.", \
1994 		ACTION_NONE, \
1995 		NULL, \
1996 		0)
1997 
1998 #ifdef DEF_MSG_REPORT
1999 };	/* emlxs_message[] */
2000 #endif /* DEF_MSG_REPORT */
2001 
2002 #ifdef	__cplusplus
2003 }
2004 #endif
2005 
2006 #endif	/* _EMLXS_MESSAGES_H */
2007