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 usr/src/OPENSOLARIS.LICENSE
9  * or http://www.opensolaris.org/os/licensing.
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) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
24  */
25 
26 #ifndef	_SYS_IB_ADAPTERS_HERMON_TYPEDEF_H
27 #define	_SYS_IB_ADAPTERS_HERMON_TYPEDEF_H
28 
29 /*
30  * hermon_typedef.h
31  *    Contains all the common typedefs used throughout the Hermon driver.
32  *    Because the hermon.h header file (which all source files include) brings
33  *    this header file in first (before any of the other Hermon header files),
34  *    the typedefs defined here can be used throughout the source and header
35  *    files in the rest of the driver.
36  */
37 
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41 
42 typedef	struct hermon_state_s		hermon_state_t;
43 typedef	struct hermon_agent_list_s	hermon_agent_list_t;
44 typedef	struct hermon_qalloc_info_s	hermon_qalloc_info_t;
45 typedef struct hermon_rsrc_pool_info_s	hermon_rsrc_pool_info_t;
46 typedef	struct hermon_rsrc_s		hermon_rsrc_t;
47 typedef struct hermon_wrid_list_hdr_s	hermon_wrid_list_hdr_t;
48 typedef struct hermon_workq_avl_s	hermon_workq_avl_t;
49 typedef struct hermon_workq_hdr_s	hermon_workq_hdr_t;
50 typedef struct hermon_wq_lock_s		hermon_wq_lock_t;
51 typedef struct hermon_icm_info_s	hermon_icm_info_t;
52 typedef struct hermon_icm_table_s	hermon_icm_table_t;
53 typedef	struct hermon_dma_info_s	hermon_dma_info_t;
54 typedef struct hermon_hw_vpm_s 		hermon_hw_vpm_t;
55 typedef struct hermon_hw_hcr_s		hermon_hw_hcr_t;
56 typedef struct hermon_hw_querydevlim_s	hermon_hw_querydevlim_t;
57 typedef struct hermon_hw_query_port_s	hermon_hw_query_port_t;
58 typedef struct hermon_hw_set_port_s	hermon_hw_set_port_t;
59 typedef struct hermon_hw_set_port_en_s	hermon_hw_set_port_en_t;
60 typedef struct hermon_hw_set_port_en_rqpn_s  hermon_hw_set_port_en_rqpn_t;
61 typedef struct hermon_hw_set_port_en_mact_s  hermon_hw_set_port_en_mact_t;
62 typedef struct hermon_hw_set_port_en_vlant_s hermon_hw_set_port_en_vlant_t;
63 typedef struct hermon_hw_set_port_en_priot_s hermon_hw_set_port_en_priot_t;
64 typedef struct hermon_fw_set_port_gidtable_s hermon_fw_set_port_gidtable_t;
65 typedef struct hermon_hw_set_mcast_fltr_s hermon_hw_set_mcast_fltr_t;
66 typedef struct hermon_hw_arm_req_s	hermon_hw_arm_req_t;
67 typedef struct hermon_hw_config_fc_basic_s hermon_hw_config_fc_basic_t;
68 typedef struct hermon_hw_query_fc_s	hermon_hw_query_fc_t;
69 
70 typedef struct hermon_hw_queryfw_s	hermon_hw_queryfw_t;
71 typedef struct hermon_hw_queryadapter_s	hermon_hw_queryadapter_t;
72 typedef struct hermon_hw_initqueryhca_s	hermon_hw_initqueryhca_t;
73 typedef struct hermon_hw_dmpt_s		hermon_hw_dmpt_t;
74 typedef struct hermon_hw_cmpt_s		hermon_hw_cmpt_t;
75 typedef struct hermon_hw_mtt_s		hermon_hw_mtt_t;
76 typedef struct hermon_hw_eqc_s		hermon_hw_eqc_t;
77 typedef struct hermon_hw_eqe_s		hermon_hw_eqe_t;
78 typedef struct hermon_hw_cqc_s		hermon_hw_cqc_t;
79 typedef struct hermon_hw_srqc_s		hermon_hw_srqc_t;
80 typedef struct hermon_hw_uar_s		hermon_hw_uar_t;
81 typedef struct hermon_hw_cqe_s		hermon_hw_cqe_t;
82 typedef struct hermon_hw_addr_path_s	hermon_hw_addr_path_t;
83 typedef	struct hermon_hw_mod_stat_cfg_s  hermon_hw_mod_stat_cfg_t;
84 typedef	struct hermon_hw_msg_in_mod_s	hermon_hw_msg_in_mod_t;
85 typedef struct hermon_hw_udav_s		hermon_hw_udav_t;
86 typedef struct hermon_hw_udav_enet_s	hermon_hw_udav_enet_t;
87 typedef struct hermon_hw_qpc_s		hermon_hw_qpc_t;
88 typedef struct hermon_hw_mcg_s		hermon_hw_mcg_t;
89 typedef struct hermon_hw_mcg_en_s	hermon_hw_mcg_en_t;
90 typedef struct hermon_hw_mcg_qp_list_s	hermon_hw_mcg_qp_list_t;
91 typedef struct hermon_hw_sm_perfcntr_s	hermon_hw_sm_perfcntr_t;
92 typedef struct hermon_hw_sm_extperfcntr_s hermon_hw_sm_extperfcntr_t;
93 
94 typedef struct hermon_hw_snd_wqe_ud_s	hermon_hw_snd_wqe_ud_t;
95 typedef struct hermon_hw_snd_wqe_bind_s	hermon_hw_snd_wqe_bind_t;
96 typedef struct hermon_hw_snd_wqe_remaddr_s  hermon_hw_snd_wqe_remaddr_t;
97 typedef struct hermon_hw_snd_wqe_atomic_s   hermon_hw_snd_wqe_atomic_t;
98 typedef struct hermon_hw_snd_wqe_frwr_s	hermon_hw_snd_wqe_frwr_t;
99 typedef struct hermon_hw_snd_wqe_frwr_ext_s  hermon_hw_snd_wqe_frwr_ext_t;
100 typedef struct hermon_hw_snd_wqe_local_inv_s hermon_hw_snd_wqe_local_inv_t;
101 typedef struct hermon_hw_snd_rem_addr_s	hermon_hw_snd_rem_addr_t;
102 typedef struct hermon_sw_send_wqe_lso_s hermon_sw_send_wqe_lso_t;
103 typedef struct hermon_hw_mlx_wqe_nextctrl_s hermon_hw_mlx_wqe_nextctrl_t;
104 typedef struct hermon_hw_rcv_wqe_nextctrl_s hermon_hw_rcv_wqe_nextctrl_t;
105 typedef struct hermon_hw_wqe_sgl_s	hermon_hw_wqe_sgl_t;
106 typedef struct hermon_hw_snd_wqe_ctrl_s hermon_hw_snd_wqe_ctrl_t;
107 typedef struct hermon_hw_srq_wqe_next_s hermon_hw_srq_wqe_next_t;
108 typedef struct hermonw_hw_fcp3_ctrl_s 	hermonw_hw_fcp3_ctrl_t;
109 typedef struct hermon_hw_fcp3_init_s 	hermon_hw_fcp3_init_t;
110 typedef struct hermon_hw_fcmd_o_enet_s	hermon_hw_fcmd_o_enet_t;
111 typedef struct hermon_hw_fcmd_o_ib_s	hermon_hw_fcmd_o_ib_t;
112 
113 typedef struct hermon_sw_mr_s		*hermon_mrhdl_t;
114 typedef struct hermon_sw_mr_s		*hermon_mwhdl_t;
115 typedef struct hermon_sw_pd_s		*hermon_pdhdl_t;
116 typedef struct hermon_sw_eq_s		*hermon_eqhdl_t;
117 typedef struct hermon_sw_cq_s		*hermon_cqhdl_t;
118 typedef struct hermon_sw_srq_s		*hermon_srqhdl_t;
119 typedef struct hermon_sw_fmr_s		*hermon_fmrhdl_t;
120 typedef struct hermon_sw_ah_s		*hermon_ahhdl_t;
121 typedef struct hermon_sw_qp_s		*hermon_qphdl_t;
122 typedef struct hermon_sw_mcg_list_s	*hermon_mcghdl_t;
123 
124 #ifdef __cplusplus
125 }
126 #endif
127 
128 #endif	/* _SYS_IB_ADAPTERS_HERMON_TYPEDEF_H */
129