193c20f26SSukumar Swaminathan /*
293c20f26SSukumar Swaminathan  * CDDL HEADER START
393c20f26SSukumar Swaminathan  *
493c20f26SSukumar Swaminathan  * The contents of this file are subject to the terms of the
593c20f26SSukumar Swaminathan  * Common Development and Distribution License (the "License").
693c20f26SSukumar Swaminathan  * You may not use this file except in compliance with the License.
793c20f26SSukumar Swaminathan  *
8*8f23e9faSHans Rosenfeld  * You can obtain a copy of the license at
9*8f23e9faSHans Rosenfeld  * http://www.opensource.org/licenses/cddl1.txt.
1093c20f26SSukumar Swaminathan  * See the License for the specific language governing permissions
1193c20f26SSukumar Swaminathan  * and limitations under the License.
1293c20f26SSukumar Swaminathan  *
1393c20f26SSukumar Swaminathan  * When distributing Covered Code, include this CDDL HEADER in each
1493c20f26SSukumar Swaminathan  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1593c20f26SSukumar Swaminathan  * If applicable, add the following below this CDDL HEADER, with the
1693c20f26SSukumar Swaminathan  * fields enclosed by brackets "[]" replaced with your own identifying
1793c20f26SSukumar Swaminathan  * information: Portions Copyright [yyyy] [name of copyright owner]
1893c20f26SSukumar Swaminathan  *
1993c20f26SSukumar Swaminathan  * CDDL HEADER END
2093c20f26SSukumar Swaminathan  */
2193c20f26SSukumar Swaminathan 
2293c20f26SSukumar Swaminathan /*
23*8f23e9faSHans Rosenfeld  * Copyright (c) 2004-2011 Emulex. All rights reserved.
2482527734SSukumar Swaminathan  * Use is subject to license terms.
2593c20f26SSukumar Swaminathan  */
2693c20f26SSukumar Swaminathan 
2793c20f26SSukumar Swaminathan #ifndef _EMLXS_DEVICE_H
2893c20f26SSukumar Swaminathan #define	_EMLXS_DEVICE_H
2993c20f26SSukumar Swaminathan 
3093c20f26SSukumar Swaminathan #ifdef	__cplusplus
3193c20f26SSukumar Swaminathan extern "C" {
3293c20f26SSukumar Swaminathan #endif
3393c20f26SSukumar Swaminathan 
3493c20f26SSukumar Swaminathan /*
3593c20f26SSukumar Swaminathan  * This is the global device driver control structure
3693c20f26SSukumar Swaminathan  */
3793c20f26SSukumar Swaminathan 
3893c20f26SSukumar Swaminathan #ifndef EMLXS_HBA_T
3993c20f26SSukumar Swaminathan typedef struct emlxs_hba emlxs_hba_t;
4093c20f26SSukumar Swaminathan #endif
4193c20f26SSukumar Swaminathan 
4293c20f26SSukumar Swaminathan /* This structure must match the one in ./mdb/msgblib.c */
43291a2b48SSukumar Swaminathan typedef struct emlxs_device
44291a2b48SSukumar Swaminathan {
4593c20f26SSukumar Swaminathan 	uint32_t hba_count;
4693c20f26SSukumar Swaminathan 	emlxs_hba_t *hba[MAX_FC_BRDS];
4793c20f26SSukumar Swaminathan 	kmutex_t lock;
4893c20f26SSukumar Swaminathan 
4993c20f26SSukumar Swaminathan 	time_t drv_timestamp;
50291a2b48SSukumar Swaminathan 	clock_t	log_timestamp;
51291a2b48SSukumar Swaminathan 	emlxs_msg_log_t *log[MAX_FC_BRDS];
52291a2b48SSukumar Swaminathan 
53291a2b48SSukumar Swaminathan #ifdef DUMP_SUPPORT
54291a2b48SSukumar Swaminathan 	emlxs_file_t *dump_txtfile[MAX_FC_BRDS];
55291a2b48SSukumar Swaminathan 	emlxs_file_t *dump_dmpfile[MAX_FC_BRDS];
56291a2b48SSukumar Swaminathan 	emlxs_file_t *dump_ceefile[MAX_FC_BRDS];
57291a2b48SSukumar Swaminathan #endif /* DUMP_SUPPORT */
5893c20f26SSukumar Swaminathan 
5993c20f26SSukumar Swaminathan } emlxs_device_t;
6093c20f26SSukumar Swaminathan 
6193c20f26SSukumar Swaminathan #ifdef	__cplusplus
6293c20f26SSukumar Swaminathan }
6393c20f26SSukumar Swaminathan #endif
6493c20f26SSukumar Swaminathan 
6593c20f26SSukumar Swaminathan #endif	/* _EMLXS_DEVICE_H */
66