xref: /OK3568_Linux_fs/kernel/drivers/scsi/bfa/bfad_bsg.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * Copyright (c) 2005-2014 Brocade Communications Systems, Inc.
4*4882a593Smuzhiyun  * Copyright (c) 2014- QLogic Corporation.
5*4882a593Smuzhiyun  * All rights reserved
6*4882a593Smuzhiyun  * www.qlogic.com
7*4882a593Smuzhiyun  *
8*4882a593Smuzhiyun  * Linux driver for QLogic BR-series Fibre Channel Host Bus Adapter.
9*4882a593Smuzhiyun  */
10*4882a593Smuzhiyun #ifndef BFAD_BSG_H
11*4882a593Smuzhiyun #define BFAD_BSG_H
12*4882a593Smuzhiyun 
13*4882a593Smuzhiyun #include "bfa_defs.h"
14*4882a593Smuzhiyun #include "bfa_defs_fcs.h"
15*4882a593Smuzhiyun 
16*4882a593Smuzhiyun /* Definitions of vendor unique structures and command codes passed in
17*4882a593Smuzhiyun  * using FC_BSG_HST_VENDOR message code.
18*4882a593Smuzhiyun  */
19*4882a593Smuzhiyun enum {
20*4882a593Smuzhiyun 	IOCMD_IOC_ENABLE = 0x1,
21*4882a593Smuzhiyun 	IOCMD_IOC_DISABLE,
22*4882a593Smuzhiyun 	IOCMD_IOC_GET_ATTR,
23*4882a593Smuzhiyun 	IOCMD_IOC_GET_INFO,
24*4882a593Smuzhiyun 	IOCMD_IOC_GET_STATS,
25*4882a593Smuzhiyun 	IOCMD_IOC_GET_FWSTATS,
26*4882a593Smuzhiyun 	IOCMD_IOC_RESET_STATS,
27*4882a593Smuzhiyun 	IOCMD_IOC_RESET_FWSTATS,
28*4882a593Smuzhiyun 	IOCMD_IOC_SET_ADAPTER_NAME,
29*4882a593Smuzhiyun 	IOCMD_IOC_SET_PORT_NAME,
30*4882a593Smuzhiyun 	IOCMD_IOC_FW_SIG_INV,
31*4882a593Smuzhiyun 	IOCMD_IOCFC_GET_ATTR,
32*4882a593Smuzhiyun 	IOCMD_IOCFC_SET_INTR,
33*4882a593Smuzhiyun 	IOCMD_PORT_ENABLE,
34*4882a593Smuzhiyun 	IOCMD_PORT_DISABLE,
35*4882a593Smuzhiyun 	IOCMD_PORT_GET_ATTR,
36*4882a593Smuzhiyun 	IOCMD_PORT_GET_STATS,
37*4882a593Smuzhiyun 	IOCMD_PORT_RESET_STATS,
38*4882a593Smuzhiyun 	IOCMD_PORT_CFG_TOPO,
39*4882a593Smuzhiyun 	IOCMD_PORT_CFG_SPEED,
40*4882a593Smuzhiyun 	IOCMD_PORT_CFG_ALPA,
41*4882a593Smuzhiyun 	IOCMD_PORT_CFG_MAXFRSZ,
42*4882a593Smuzhiyun 	IOCMD_PORT_CLR_ALPA,
43*4882a593Smuzhiyun 	IOCMD_PORT_BBCR_ENABLE,
44*4882a593Smuzhiyun 	IOCMD_PORT_BBCR_DISABLE,
45*4882a593Smuzhiyun 	IOCMD_PORT_BBCR_GET_ATTR,
46*4882a593Smuzhiyun 	IOCMD_LPORT_GET_ATTR,
47*4882a593Smuzhiyun 	IOCMD_LPORT_GET_RPORTS,
48*4882a593Smuzhiyun 	IOCMD_LPORT_GET_STATS,
49*4882a593Smuzhiyun 	IOCMD_LPORT_RESET_STATS,
50*4882a593Smuzhiyun 	IOCMD_LPORT_GET_IOSTATS,
51*4882a593Smuzhiyun 	IOCMD_RPORT_GET_ATTR,
52*4882a593Smuzhiyun 	IOCMD_RPORT_GET_ADDR,
53*4882a593Smuzhiyun 	IOCMD_RPORT_GET_STATS,
54*4882a593Smuzhiyun 	IOCMD_RPORT_RESET_STATS,
55*4882a593Smuzhiyun 	IOCMD_RPORT_SET_SPEED,
56*4882a593Smuzhiyun 	IOCMD_VPORT_GET_ATTR,
57*4882a593Smuzhiyun 	IOCMD_VPORT_GET_STATS,
58*4882a593Smuzhiyun 	IOCMD_VPORT_RESET_STATS,
59*4882a593Smuzhiyun 	IOCMD_FABRIC_GET_LPORTS,
60*4882a593Smuzhiyun 	IOCMD_RATELIM_ENABLE,
61*4882a593Smuzhiyun 	IOCMD_RATELIM_DISABLE,
62*4882a593Smuzhiyun 	IOCMD_RATELIM_DEF_SPEED,
63*4882a593Smuzhiyun 	IOCMD_FCPIM_FAILOVER,
64*4882a593Smuzhiyun 	IOCMD_FCPIM_MODSTATS,
65*4882a593Smuzhiyun 	IOCMD_FCPIM_MODSTATSCLR,
66*4882a593Smuzhiyun 	IOCMD_FCPIM_DEL_ITN_STATS,
67*4882a593Smuzhiyun 	IOCMD_ITNIM_GET_ATTR,
68*4882a593Smuzhiyun 	IOCMD_ITNIM_GET_IOSTATS,
69*4882a593Smuzhiyun 	IOCMD_ITNIM_RESET_STATS,
70*4882a593Smuzhiyun 	IOCMD_ITNIM_GET_ITNSTATS,
71*4882a593Smuzhiyun 	IOCMD_IOC_PCIFN_CFG,
72*4882a593Smuzhiyun 	IOCMD_FCPORT_ENABLE,
73*4882a593Smuzhiyun 	IOCMD_FCPORT_DISABLE,
74*4882a593Smuzhiyun 	IOCMD_PCIFN_CREATE,
75*4882a593Smuzhiyun 	IOCMD_PCIFN_DELETE,
76*4882a593Smuzhiyun 	IOCMD_PCIFN_BW,
77*4882a593Smuzhiyun 	IOCMD_ADAPTER_CFG_MODE,
78*4882a593Smuzhiyun 	IOCMD_PORT_CFG_MODE,
79*4882a593Smuzhiyun 	IOCMD_FLASH_ENABLE_OPTROM,
80*4882a593Smuzhiyun 	IOCMD_FLASH_DISABLE_OPTROM,
81*4882a593Smuzhiyun 	IOCMD_FAA_QUERY,
82*4882a593Smuzhiyun 	IOCMD_CEE_GET_ATTR,
83*4882a593Smuzhiyun 	IOCMD_CEE_GET_STATS,
84*4882a593Smuzhiyun 	IOCMD_CEE_RESET_STATS,
85*4882a593Smuzhiyun 	IOCMD_SFP_MEDIA,
86*4882a593Smuzhiyun 	IOCMD_SFP_SPEED,
87*4882a593Smuzhiyun 	IOCMD_FLASH_GET_ATTR,
88*4882a593Smuzhiyun 	IOCMD_FLASH_ERASE_PART,
89*4882a593Smuzhiyun 	IOCMD_FLASH_UPDATE_PART,
90*4882a593Smuzhiyun 	IOCMD_FLASH_READ_PART,
91*4882a593Smuzhiyun 	IOCMD_DIAG_TEMP,
92*4882a593Smuzhiyun 	IOCMD_DIAG_MEMTEST,
93*4882a593Smuzhiyun 	IOCMD_DIAG_LOOPBACK,
94*4882a593Smuzhiyun 	IOCMD_DIAG_FWPING,
95*4882a593Smuzhiyun 	IOCMD_DIAG_QUEUETEST,
96*4882a593Smuzhiyun 	IOCMD_DIAG_SFP,
97*4882a593Smuzhiyun 	IOCMD_DIAG_LED,
98*4882a593Smuzhiyun 	IOCMD_DIAG_BEACON_LPORT,
99*4882a593Smuzhiyun 	IOCMD_DIAG_LB_STAT,
100*4882a593Smuzhiyun 	IOCMD_PHY_GET_ATTR,
101*4882a593Smuzhiyun 	IOCMD_PHY_GET_STATS,
102*4882a593Smuzhiyun 	IOCMD_PHY_UPDATE_FW,
103*4882a593Smuzhiyun 	IOCMD_PHY_READ_FW,
104*4882a593Smuzhiyun 	IOCMD_VHBA_QUERY,
105*4882a593Smuzhiyun 	IOCMD_DEBUG_PORTLOG,
106*4882a593Smuzhiyun 	IOCMD_DEBUG_FW_CORE,
107*4882a593Smuzhiyun 	IOCMD_DEBUG_FW_STATE_CLR,
108*4882a593Smuzhiyun 	IOCMD_DEBUG_PORTLOG_CLR,
109*4882a593Smuzhiyun 	IOCMD_DEBUG_START_DTRC,
110*4882a593Smuzhiyun 	IOCMD_DEBUG_STOP_DTRC,
111*4882a593Smuzhiyun 	IOCMD_DEBUG_PORTLOG_CTL,
112*4882a593Smuzhiyun 	IOCMD_FCPIM_PROFILE_ON,
113*4882a593Smuzhiyun 	IOCMD_FCPIM_PROFILE_OFF,
114*4882a593Smuzhiyun 	IOCMD_ITNIM_GET_IOPROFILE,
115*4882a593Smuzhiyun 	IOCMD_FCPORT_GET_STATS,
116*4882a593Smuzhiyun 	IOCMD_FCPORT_RESET_STATS,
117*4882a593Smuzhiyun 	IOCMD_BOOT_CFG,
118*4882a593Smuzhiyun 	IOCMD_BOOT_QUERY,
119*4882a593Smuzhiyun 	IOCMD_PREBOOT_QUERY,
120*4882a593Smuzhiyun 	IOCMD_ETHBOOT_CFG,
121*4882a593Smuzhiyun 	IOCMD_ETHBOOT_QUERY,
122*4882a593Smuzhiyun 	IOCMD_TRUNK_ENABLE,
123*4882a593Smuzhiyun 	IOCMD_TRUNK_DISABLE,
124*4882a593Smuzhiyun 	IOCMD_TRUNK_GET_ATTR,
125*4882a593Smuzhiyun 	IOCMD_QOS_ENABLE,
126*4882a593Smuzhiyun 	IOCMD_QOS_DISABLE,
127*4882a593Smuzhiyun 	IOCMD_QOS_GET_ATTR,
128*4882a593Smuzhiyun 	IOCMD_QOS_GET_VC_ATTR,
129*4882a593Smuzhiyun 	IOCMD_QOS_GET_STATS,
130*4882a593Smuzhiyun 	IOCMD_QOS_RESET_STATS,
131*4882a593Smuzhiyun 	IOCMD_VF_GET_STATS,
132*4882a593Smuzhiyun 	IOCMD_VF_RESET_STATS,
133*4882a593Smuzhiyun 	IOCMD_FCPIM_LUNMASK_ENABLE,
134*4882a593Smuzhiyun 	IOCMD_FCPIM_LUNMASK_DISABLE,
135*4882a593Smuzhiyun 	IOCMD_FCPIM_LUNMASK_CLEAR,
136*4882a593Smuzhiyun 	IOCMD_FCPIM_LUNMASK_QUERY,
137*4882a593Smuzhiyun 	IOCMD_FCPIM_LUNMASK_ADD,
138*4882a593Smuzhiyun 	IOCMD_FCPIM_LUNMASK_DELETE,
139*4882a593Smuzhiyun 	IOCMD_DIAG_DPORT_ENABLE,
140*4882a593Smuzhiyun 	IOCMD_DIAG_DPORT_DISABLE,
141*4882a593Smuzhiyun 	IOCMD_QOS_SET_BW,
142*4882a593Smuzhiyun 	IOCMD_FCPIM_THROTTLE_QUERY,
143*4882a593Smuzhiyun 	IOCMD_FCPIM_THROTTLE_SET,
144*4882a593Smuzhiyun 	IOCMD_TFRU_READ,
145*4882a593Smuzhiyun 	IOCMD_TFRU_WRITE,
146*4882a593Smuzhiyun 	IOCMD_FRUVPD_READ,
147*4882a593Smuzhiyun 	IOCMD_FRUVPD_UPDATE,
148*4882a593Smuzhiyun 	IOCMD_FRUVPD_GET_MAX_SIZE,
149*4882a593Smuzhiyun 	IOCMD_DIAG_DPORT_SHOW,
150*4882a593Smuzhiyun 	IOCMD_DIAG_DPORT_START,
151*4882a593Smuzhiyun };
152*4882a593Smuzhiyun 
153*4882a593Smuzhiyun struct bfa_bsg_gen_s {
154*4882a593Smuzhiyun 	bfa_status_t	status;
155*4882a593Smuzhiyun 	u16		bfad_num;
156*4882a593Smuzhiyun 	u16		rsvd;
157*4882a593Smuzhiyun };
158*4882a593Smuzhiyun 
159*4882a593Smuzhiyun struct bfa_bsg_portlogctl_s {
160*4882a593Smuzhiyun 	bfa_status_t	status;
161*4882a593Smuzhiyun 	u16		bfad_num;
162*4882a593Smuzhiyun 	u16		rsvd;
163*4882a593Smuzhiyun 	bfa_boolean_t	ctl;
164*4882a593Smuzhiyun 	int		inst_no;
165*4882a593Smuzhiyun };
166*4882a593Smuzhiyun 
167*4882a593Smuzhiyun struct bfa_bsg_fcpim_profile_s {
168*4882a593Smuzhiyun 	bfa_status_t    status;
169*4882a593Smuzhiyun 	u16		bfad_num;
170*4882a593Smuzhiyun 	u16		rsvd;
171*4882a593Smuzhiyun };
172*4882a593Smuzhiyun 
173*4882a593Smuzhiyun struct bfa_bsg_itnim_ioprofile_s {
174*4882a593Smuzhiyun 	bfa_status_t	status;
175*4882a593Smuzhiyun 	u16		bfad_num;
176*4882a593Smuzhiyun 	u16		vf_id;
177*4882a593Smuzhiyun 	wwn_t		lpwwn;
178*4882a593Smuzhiyun 	wwn_t		rpwwn;
179*4882a593Smuzhiyun 	struct bfa_itnim_ioprofile_s ioprofile;
180*4882a593Smuzhiyun };
181*4882a593Smuzhiyun 
182*4882a593Smuzhiyun struct bfa_bsg_fcport_stats_s {
183*4882a593Smuzhiyun 	bfa_status_t	status;
184*4882a593Smuzhiyun 	u16		bfad_num;
185*4882a593Smuzhiyun 	u16		rsvd;
186*4882a593Smuzhiyun 	union bfa_fcport_stats_u stats;
187*4882a593Smuzhiyun };
188*4882a593Smuzhiyun 
189*4882a593Smuzhiyun struct bfa_bsg_ioc_name_s {
190*4882a593Smuzhiyun 	bfa_status_t	status;
191*4882a593Smuzhiyun 	u16		bfad_num;
192*4882a593Smuzhiyun 	u16		rsvd;
193*4882a593Smuzhiyun 	char		name[BFA_ADAPTER_SYM_NAME_LEN];
194*4882a593Smuzhiyun };
195*4882a593Smuzhiyun 
196*4882a593Smuzhiyun struct bfa_bsg_ioc_info_s {
197*4882a593Smuzhiyun 	bfa_status_t	status;
198*4882a593Smuzhiyun 	u16		bfad_num;
199*4882a593Smuzhiyun 	u16		rsvd;
200*4882a593Smuzhiyun 	char		serialnum[64];
201*4882a593Smuzhiyun 	char		hwpath[BFA_STRING_32];
202*4882a593Smuzhiyun 	char		adapter_hwpath[BFA_STRING_32];
203*4882a593Smuzhiyun 	char		guid[BFA_ADAPTER_SYM_NAME_LEN*2];
204*4882a593Smuzhiyun 	char		name[BFA_ADAPTER_SYM_NAME_LEN];
205*4882a593Smuzhiyun 	char		port_name[BFA_ADAPTER_SYM_NAME_LEN];
206*4882a593Smuzhiyun 	char		eth_name[BFA_ADAPTER_SYM_NAME_LEN];
207*4882a593Smuzhiyun 	wwn_t		pwwn;
208*4882a593Smuzhiyun 	wwn_t		nwwn;
209*4882a593Smuzhiyun 	wwn_t		factorypwwn;
210*4882a593Smuzhiyun 	wwn_t		factorynwwn;
211*4882a593Smuzhiyun 	mac_t		mac;
212*4882a593Smuzhiyun 	mac_t		factory_mac; /* Factory mac address */
213*4882a593Smuzhiyun 	mac_t		current_mac; /* Currently assigned mac address */
214*4882a593Smuzhiyun 	enum bfa_ioc_type_e	ioc_type;
215*4882a593Smuzhiyun 	u16		pvid; /* Port vlan id */
216*4882a593Smuzhiyun 	u16		rsvd1;
217*4882a593Smuzhiyun 	u32		host;
218*4882a593Smuzhiyun 	u32		bandwidth; /* For PF support */
219*4882a593Smuzhiyun 	u32		rsvd2;
220*4882a593Smuzhiyun };
221*4882a593Smuzhiyun 
222*4882a593Smuzhiyun struct bfa_bsg_ioc_attr_s {
223*4882a593Smuzhiyun 	bfa_status_t	status;
224*4882a593Smuzhiyun 	u16		bfad_num;
225*4882a593Smuzhiyun 	u16		rsvd;
226*4882a593Smuzhiyun 	struct bfa_ioc_attr_s  ioc_attr;
227*4882a593Smuzhiyun };
228*4882a593Smuzhiyun 
229*4882a593Smuzhiyun struct bfa_bsg_ioc_stats_s {
230*4882a593Smuzhiyun 	bfa_status_t	status;
231*4882a593Smuzhiyun 	u16		bfad_num;
232*4882a593Smuzhiyun 	u16		rsvd;
233*4882a593Smuzhiyun 	struct bfa_ioc_stats_s ioc_stats;
234*4882a593Smuzhiyun };
235*4882a593Smuzhiyun 
236*4882a593Smuzhiyun struct bfa_bsg_ioc_fwstats_s {
237*4882a593Smuzhiyun 	bfa_status_t	status;
238*4882a593Smuzhiyun 	u16		bfad_num;
239*4882a593Smuzhiyun 	u16		rsvd;
240*4882a593Smuzhiyun 	u32		buf_size;
241*4882a593Smuzhiyun 	u32		rsvd1;
242*4882a593Smuzhiyun 	u64		buf_ptr;
243*4882a593Smuzhiyun };
244*4882a593Smuzhiyun 
245*4882a593Smuzhiyun struct bfa_bsg_iocfc_attr_s {
246*4882a593Smuzhiyun 	bfa_status_t	status;
247*4882a593Smuzhiyun 	u16		bfad_num;
248*4882a593Smuzhiyun 	u16		rsvd;
249*4882a593Smuzhiyun 	struct bfa_iocfc_attr_s	iocfc_attr;
250*4882a593Smuzhiyun };
251*4882a593Smuzhiyun 
252*4882a593Smuzhiyun struct bfa_bsg_iocfc_intr_s {
253*4882a593Smuzhiyun 	bfa_status_t	status;
254*4882a593Smuzhiyun 	u16		bfad_num;
255*4882a593Smuzhiyun 	u16		rsvd;
256*4882a593Smuzhiyun 	struct bfa_iocfc_intr_attr_s attr;
257*4882a593Smuzhiyun };
258*4882a593Smuzhiyun 
259*4882a593Smuzhiyun struct bfa_bsg_port_attr_s {
260*4882a593Smuzhiyun 	bfa_status_t	status;
261*4882a593Smuzhiyun 	u16		bfad_num;
262*4882a593Smuzhiyun 	u16		rsvd;
263*4882a593Smuzhiyun 	struct bfa_port_attr_s	attr;
264*4882a593Smuzhiyun };
265*4882a593Smuzhiyun 
266*4882a593Smuzhiyun struct bfa_bsg_port_cfg_s {
267*4882a593Smuzhiyun 	bfa_status_t	status;
268*4882a593Smuzhiyun 	u16		bfad_num;
269*4882a593Smuzhiyun 	u16		rsvd;
270*4882a593Smuzhiyun 	u32		param;
271*4882a593Smuzhiyun 	u32		rsvd1;
272*4882a593Smuzhiyun };
273*4882a593Smuzhiyun 
274*4882a593Smuzhiyun struct bfa_bsg_port_cfg_maxfrsize_s {
275*4882a593Smuzhiyun 	bfa_status_t	status;
276*4882a593Smuzhiyun 	u16		bfad_num;
277*4882a593Smuzhiyun 	u16		maxfrsize;
278*4882a593Smuzhiyun };
279*4882a593Smuzhiyun 
280*4882a593Smuzhiyun struct bfa_bsg_port_stats_s {
281*4882a593Smuzhiyun 	bfa_status_t	status;
282*4882a593Smuzhiyun 	u16		bfad_num;
283*4882a593Smuzhiyun 	u16		rsvd;
284*4882a593Smuzhiyun 	u32		buf_size;
285*4882a593Smuzhiyun 	u32		rsvd1;
286*4882a593Smuzhiyun 	u64		buf_ptr;
287*4882a593Smuzhiyun };
288*4882a593Smuzhiyun 
289*4882a593Smuzhiyun struct bfa_bsg_lport_attr_s {
290*4882a593Smuzhiyun 	bfa_status_t	status;
291*4882a593Smuzhiyun 	u16		bfad_num;
292*4882a593Smuzhiyun 	u16		vf_id;
293*4882a593Smuzhiyun 	wwn_t		pwwn;
294*4882a593Smuzhiyun 	struct bfa_lport_attr_s port_attr;
295*4882a593Smuzhiyun };
296*4882a593Smuzhiyun 
297*4882a593Smuzhiyun struct bfa_bsg_lport_stats_s {
298*4882a593Smuzhiyun 	bfa_status_t	status;
299*4882a593Smuzhiyun 	u16		bfad_num;
300*4882a593Smuzhiyun 	u16		vf_id;
301*4882a593Smuzhiyun 	wwn_t		pwwn;
302*4882a593Smuzhiyun 	struct bfa_lport_stats_s port_stats;
303*4882a593Smuzhiyun };
304*4882a593Smuzhiyun 
305*4882a593Smuzhiyun struct bfa_bsg_lport_iostats_s {
306*4882a593Smuzhiyun 	bfa_status_t	status;
307*4882a593Smuzhiyun 	u16		bfad_num;
308*4882a593Smuzhiyun 	u16		vf_id;
309*4882a593Smuzhiyun 	wwn_t		pwwn;
310*4882a593Smuzhiyun 	struct bfa_itnim_iostats_s iostats;
311*4882a593Smuzhiyun };
312*4882a593Smuzhiyun 
313*4882a593Smuzhiyun struct bfa_bsg_lport_get_rports_s {
314*4882a593Smuzhiyun 	bfa_status_t	status;
315*4882a593Smuzhiyun 	u16		bfad_num;
316*4882a593Smuzhiyun 	u16		vf_id;
317*4882a593Smuzhiyun 	wwn_t		pwwn;
318*4882a593Smuzhiyun 	u64		rbuf_ptr;
319*4882a593Smuzhiyun 	u32		nrports;
320*4882a593Smuzhiyun 	u32		rsvd;
321*4882a593Smuzhiyun };
322*4882a593Smuzhiyun 
323*4882a593Smuzhiyun struct bfa_bsg_rport_attr_s {
324*4882a593Smuzhiyun 	bfa_status_t	status;
325*4882a593Smuzhiyun 	u16		bfad_num;
326*4882a593Smuzhiyun 	u16		vf_id;
327*4882a593Smuzhiyun 	wwn_t		pwwn;
328*4882a593Smuzhiyun 	wwn_t		rpwwn;
329*4882a593Smuzhiyun 	u32		pid;
330*4882a593Smuzhiyun 	u32		rsvd;
331*4882a593Smuzhiyun 	struct bfa_rport_attr_s attr;
332*4882a593Smuzhiyun };
333*4882a593Smuzhiyun 
334*4882a593Smuzhiyun struct bfa_bsg_rport_stats_s {
335*4882a593Smuzhiyun 	bfa_status_t	status;
336*4882a593Smuzhiyun 	u16		bfad_num;
337*4882a593Smuzhiyun 	u16		vf_id;
338*4882a593Smuzhiyun 	wwn_t		pwwn;
339*4882a593Smuzhiyun 	wwn_t		rpwwn;
340*4882a593Smuzhiyun 	struct bfa_rport_stats_s stats;
341*4882a593Smuzhiyun };
342*4882a593Smuzhiyun 
343*4882a593Smuzhiyun struct bfa_bsg_rport_scsi_addr_s {
344*4882a593Smuzhiyun 	bfa_status_t	status;
345*4882a593Smuzhiyun 	u16		bfad_num;
346*4882a593Smuzhiyun 	u16		vf_id;
347*4882a593Smuzhiyun 	wwn_t		pwwn;
348*4882a593Smuzhiyun 	wwn_t		rpwwn;
349*4882a593Smuzhiyun 	u32		host;
350*4882a593Smuzhiyun 	u32		bus;
351*4882a593Smuzhiyun 	u32		target;
352*4882a593Smuzhiyun 	u32		lun;
353*4882a593Smuzhiyun };
354*4882a593Smuzhiyun 
355*4882a593Smuzhiyun struct bfa_bsg_rport_reset_stats_s {
356*4882a593Smuzhiyun 	bfa_status_t	status;
357*4882a593Smuzhiyun 	u16		bfad_num;
358*4882a593Smuzhiyun 	u16		vf_id;
359*4882a593Smuzhiyun 	wwn_t		pwwn;
360*4882a593Smuzhiyun 	wwn_t		rpwwn;
361*4882a593Smuzhiyun };
362*4882a593Smuzhiyun 
363*4882a593Smuzhiyun struct bfa_bsg_rport_set_speed_s {
364*4882a593Smuzhiyun 	bfa_status_t		status;
365*4882a593Smuzhiyun 	u16			bfad_num;
366*4882a593Smuzhiyun 	u16			vf_id;
367*4882a593Smuzhiyun 	enum bfa_port_speed	speed;
368*4882a593Smuzhiyun 	u32			rsvd;
369*4882a593Smuzhiyun 	wwn_t			pwwn;
370*4882a593Smuzhiyun 	wwn_t			rpwwn;
371*4882a593Smuzhiyun };
372*4882a593Smuzhiyun 
373*4882a593Smuzhiyun struct bfa_bsg_vport_attr_s {
374*4882a593Smuzhiyun 	bfa_status_t	status;
375*4882a593Smuzhiyun 	u16		bfad_num;
376*4882a593Smuzhiyun 	u16		vf_id;
377*4882a593Smuzhiyun 	wwn_t		vpwwn;
378*4882a593Smuzhiyun 	struct bfa_vport_attr_s vport_attr;
379*4882a593Smuzhiyun };
380*4882a593Smuzhiyun 
381*4882a593Smuzhiyun struct bfa_bsg_vport_stats_s {
382*4882a593Smuzhiyun 	bfa_status_t	status;
383*4882a593Smuzhiyun 	u16		bfad_num;
384*4882a593Smuzhiyun 	u16		vf_id;
385*4882a593Smuzhiyun 	wwn_t		vpwwn;
386*4882a593Smuzhiyun 	struct bfa_vport_stats_s vport_stats;
387*4882a593Smuzhiyun };
388*4882a593Smuzhiyun 
389*4882a593Smuzhiyun struct bfa_bsg_reset_stats_s {
390*4882a593Smuzhiyun 	bfa_status_t	status;
391*4882a593Smuzhiyun 	u16		bfad_num;
392*4882a593Smuzhiyun 	u16		vf_id;
393*4882a593Smuzhiyun 	wwn_t		vpwwn;
394*4882a593Smuzhiyun };
395*4882a593Smuzhiyun 
396*4882a593Smuzhiyun struct bfa_bsg_fabric_get_lports_s {
397*4882a593Smuzhiyun 	bfa_status_t	status;
398*4882a593Smuzhiyun 	u16		bfad_num;
399*4882a593Smuzhiyun 	u16		vf_id;
400*4882a593Smuzhiyun 	u64		buf_ptr;
401*4882a593Smuzhiyun 	u32		nports;
402*4882a593Smuzhiyun 	u32		rsvd;
403*4882a593Smuzhiyun };
404*4882a593Smuzhiyun 
405*4882a593Smuzhiyun struct bfa_bsg_trl_speed_s {
406*4882a593Smuzhiyun 	bfa_status_t	status;
407*4882a593Smuzhiyun 	u16		bfad_num;
408*4882a593Smuzhiyun 	u16		rsvd;
409*4882a593Smuzhiyun 	enum bfa_port_speed speed;
410*4882a593Smuzhiyun };
411*4882a593Smuzhiyun 
412*4882a593Smuzhiyun struct bfa_bsg_fcpim_s {
413*4882a593Smuzhiyun 	bfa_status_t	status;
414*4882a593Smuzhiyun 	u16		bfad_num;
415*4882a593Smuzhiyun 	u16		param;
416*4882a593Smuzhiyun };
417*4882a593Smuzhiyun 
418*4882a593Smuzhiyun struct bfa_bsg_fcpim_modstats_s {
419*4882a593Smuzhiyun 	bfa_status_t	status;
420*4882a593Smuzhiyun 	u16		bfad_num;
421*4882a593Smuzhiyun 	struct bfa_itnim_iostats_s modstats;
422*4882a593Smuzhiyun };
423*4882a593Smuzhiyun 
424*4882a593Smuzhiyun struct bfa_bsg_fcpim_del_itn_stats_s {
425*4882a593Smuzhiyun 	bfa_status_t	status;
426*4882a593Smuzhiyun 	u16		bfad_num;
427*4882a593Smuzhiyun 	struct bfa_fcpim_del_itn_stats_s modstats;
428*4882a593Smuzhiyun };
429*4882a593Smuzhiyun 
430*4882a593Smuzhiyun struct bfa_bsg_fcpim_modstatsclr_s {
431*4882a593Smuzhiyun 	bfa_status_t	status;
432*4882a593Smuzhiyun 	u16		bfad_num;
433*4882a593Smuzhiyun };
434*4882a593Smuzhiyun 
435*4882a593Smuzhiyun struct bfa_bsg_itnim_attr_s {
436*4882a593Smuzhiyun 	bfa_status_t	status;
437*4882a593Smuzhiyun 	u16		bfad_num;
438*4882a593Smuzhiyun 	u16		vf_id;
439*4882a593Smuzhiyun 	wwn_t		lpwwn;
440*4882a593Smuzhiyun 	wwn_t		rpwwn;
441*4882a593Smuzhiyun 	struct bfa_itnim_attr_s	attr;
442*4882a593Smuzhiyun };
443*4882a593Smuzhiyun 
444*4882a593Smuzhiyun struct bfa_bsg_itnim_iostats_s {
445*4882a593Smuzhiyun 	bfa_status_t	status;
446*4882a593Smuzhiyun 	u16		bfad_num;
447*4882a593Smuzhiyun 	u16		vf_id;
448*4882a593Smuzhiyun 	wwn_t		lpwwn;
449*4882a593Smuzhiyun 	wwn_t		rpwwn;
450*4882a593Smuzhiyun 	struct bfa_itnim_iostats_s iostats;
451*4882a593Smuzhiyun };
452*4882a593Smuzhiyun 
453*4882a593Smuzhiyun struct bfa_bsg_itnim_itnstats_s {
454*4882a593Smuzhiyun 	bfa_status_t	status;
455*4882a593Smuzhiyun 	u16		bfad_num;
456*4882a593Smuzhiyun 	u16		vf_id;
457*4882a593Smuzhiyun 	wwn_t		lpwwn;
458*4882a593Smuzhiyun 	wwn_t		rpwwn;
459*4882a593Smuzhiyun 	struct bfa_itnim_stats_s itnstats;
460*4882a593Smuzhiyun };
461*4882a593Smuzhiyun 
462*4882a593Smuzhiyun struct bfa_bsg_pcifn_cfg_s {
463*4882a593Smuzhiyun 	bfa_status_t		status;
464*4882a593Smuzhiyun 	u16			bfad_num;
465*4882a593Smuzhiyun 	u16			rsvd;
466*4882a593Smuzhiyun 	struct bfa_ablk_cfg_s	pcifn_cfg;
467*4882a593Smuzhiyun };
468*4882a593Smuzhiyun 
469*4882a593Smuzhiyun struct bfa_bsg_pcifn_s {
470*4882a593Smuzhiyun 	bfa_status_t		status;
471*4882a593Smuzhiyun 	u16			bfad_num;
472*4882a593Smuzhiyun 	u16			pcifn_id;
473*4882a593Smuzhiyun 	u16			bw_min;
474*4882a593Smuzhiyun 	u16			bw_max;
475*4882a593Smuzhiyun 	u8			port;
476*4882a593Smuzhiyun 	enum bfi_pcifn_class	pcifn_class;
477*4882a593Smuzhiyun 	u8			rsvd[1];
478*4882a593Smuzhiyun };
479*4882a593Smuzhiyun 
480*4882a593Smuzhiyun struct bfa_bsg_adapter_cfg_mode_s {
481*4882a593Smuzhiyun 	bfa_status_t	status;
482*4882a593Smuzhiyun 	u16		bfad_num;
483*4882a593Smuzhiyun 	u16		rsvd;
484*4882a593Smuzhiyun 	struct bfa_adapter_cfg_mode_s	cfg;
485*4882a593Smuzhiyun };
486*4882a593Smuzhiyun 
487*4882a593Smuzhiyun struct bfa_bsg_port_cfg_mode_s {
488*4882a593Smuzhiyun 	bfa_status_t	status;
489*4882a593Smuzhiyun 	u16		bfad_num;
490*4882a593Smuzhiyun 	u16		instance;
491*4882a593Smuzhiyun 	struct bfa_port_cfg_mode_s cfg;
492*4882a593Smuzhiyun };
493*4882a593Smuzhiyun 
494*4882a593Smuzhiyun struct bfa_bsg_bbcr_enable_s {
495*4882a593Smuzhiyun 	bfa_status_t    status;
496*4882a593Smuzhiyun 	u16		bfad_num;
497*4882a593Smuzhiyun 	u8		bb_scn;
498*4882a593Smuzhiyun 	u8		rsvd;
499*4882a593Smuzhiyun };
500*4882a593Smuzhiyun 
501*4882a593Smuzhiyun struct bfa_bsg_bbcr_attr_s {
502*4882a593Smuzhiyun 	bfa_status_t    status;
503*4882a593Smuzhiyun 	u16		bfad_num;
504*4882a593Smuzhiyun 	u16		rsvd;
505*4882a593Smuzhiyun 	struct bfa_bbcr_attr_s attr;
506*4882a593Smuzhiyun };
507*4882a593Smuzhiyun 
508*4882a593Smuzhiyun struct bfa_bsg_faa_attr_s {
509*4882a593Smuzhiyun 	bfa_status_t		status;
510*4882a593Smuzhiyun 	u16			bfad_num;
511*4882a593Smuzhiyun 	u16			rsvd;
512*4882a593Smuzhiyun 	struct bfa_faa_attr_s	faa_attr;
513*4882a593Smuzhiyun };
514*4882a593Smuzhiyun 
515*4882a593Smuzhiyun struct bfa_bsg_cee_attr_s {
516*4882a593Smuzhiyun 	bfa_status_t	status;
517*4882a593Smuzhiyun 	u16		bfad_num;
518*4882a593Smuzhiyun 	u16		rsvd;
519*4882a593Smuzhiyun 	u32		buf_size;
520*4882a593Smuzhiyun 	u32		rsvd1;
521*4882a593Smuzhiyun 	u64		buf_ptr;
522*4882a593Smuzhiyun };
523*4882a593Smuzhiyun 
524*4882a593Smuzhiyun struct bfa_bsg_cee_stats_s {
525*4882a593Smuzhiyun 	bfa_status_t	status;
526*4882a593Smuzhiyun 	u16		bfad_num;
527*4882a593Smuzhiyun 	u16		rsvd;
528*4882a593Smuzhiyun 	u32		buf_size;
529*4882a593Smuzhiyun 	u32		rsvd1;
530*4882a593Smuzhiyun 	u64		buf_ptr;
531*4882a593Smuzhiyun };
532*4882a593Smuzhiyun 
533*4882a593Smuzhiyun struct bfa_bsg_sfp_media_s {
534*4882a593Smuzhiyun 	bfa_status_t	status;
535*4882a593Smuzhiyun 	u16		bfad_num;
536*4882a593Smuzhiyun 	u16		rsvd;
537*4882a593Smuzhiyun 	enum bfa_defs_sfp_media_e media;
538*4882a593Smuzhiyun };
539*4882a593Smuzhiyun 
540*4882a593Smuzhiyun struct bfa_bsg_sfp_speed_s {
541*4882a593Smuzhiyun 	bfa_status_t	status;
542*4882a593Smuzhiyun 	u16		bfad_num;
543*4882a593Smuzhiyun 	u16		rsvd;
544*4882a593Smuzhiyun 	enum bfa_port_speed speed;
545*4882a593Smuzhiyun };
546*4882a593Smuzhiyun 
547*4882a593Smuzhiyun struct bfa_bsg_flash_attr_s {
548*4882a593Smuzhiyun 	bfa_status_t	status;
549*4882a593Smuzhiyun 	u16		bfad_num;
550*4882a593Smuzhiyun 	u16		rsvd;
551*4882a593Smuzhiyun 	struct bfa_flash_attr_s attr;
552*4882a593Smuzhiyun };
553*4882a593Smuzhiyun 
554*4882a593Smuzhiyun struct bfa_bsg_flash_s {
555*4882a593Smuzhiyun 	bfa_status_t	status;
556*4882a593Smuzhiyun 	u16		bfad_num;
557*4882a593Smuzhiyun 	u8		instance;
558*4882a593Smuzhiyun 	u8		rsvd;
559*4882a593Smuzhiyun 	enum  bfa_flash_part_type type;
560*4882a593Smuzhiyun 	int		bufsz;
561*4882a593Smuzhiyun 	u64		buf_ptr;
562*4882a593Smuzhiyun };
563*4882a593Smuzhiyun 
564*4882a593Smuzhiyun struct bfa_bsg_diag_get_temp_s {
565*4882a593Smuzhiyun 	bfa_status_t	status;
566*4882a593Smuzhiyun 	u16		bfad_num;
567*4882a593Smuzhiyun 	u16		rsvd;
568*4882a593Smuzhiyun 	struct bfa_diag_results_tempsensor_s result;
569*4882a593Smuzhiyun };
570*4882a593Smuzhiyun 
571*4882a593Smuzhiyun struct bfa_bsg_diag_memtest_s {
572*4882a593Smuzhiyun 	bfa_status_t	status;
573*4882a593Smuzhiyun 	u16		bfad_num;
574*4882a593Smuzhiyun 	u16		rsvd[3];
575*4882a593Smuzhiyun 	u32		pat;
576*4882a593Smuzhiyun 	struct bfa_diag_memtest_result result;
577*4882a593Smuzhiyun 	struct bfa_diag_memtest_s memtest;
578*4882a593Smuzhiyun };
579*4882a593Smuzhiyun 
580*4882a593Smuzhiyun struct bfa_bsg_diag_loopback_s {
581*4882a593Smuzhiyun 	bfa_status_t	status;
582*4882a593Smuzhiyun 	u16		bfad_num;
583*4882a593Smuzhiyun 	u16		rsvd;
584*4882a593Smuzhiyun 	enum bfa_port_opmode opmode;
585*4882a593Smuzhiyun 	enum bfa_port_speed speed;
586*4882a593Smuzhiyun 	u32		lpcnt;
587*4882a593Smuzhiyun 	u32		pat;
588*4882a593Smuzhiyun 	struct bfa_diag_loopback_result_s result;
589*4882a593Smuzhiyun };
590*4882a593Smuzhiyun 
591*4882a593Smuzhiyun struct bfa_bsg_diag_dport_show_s {
592*4882a593Smuzhiyun 	bfa_status_t	status;
593*4882a593Smuzhiyun 	u16		bfad_num;
594*4882a593Smuzhiyun 	u16		rsvd;
595*4882a593Smuzhiyun 	struct bfa_diag_dport_result_s result;
596*4882a593Smuzhiyun };
597*4882a593Smuzhiyun 
598*4882a593Smuzhiyun struct bfa_bsg_dport_enable_s {
599*4882a593Smuzhiyun 	bfa_status_t	status;
600*4882a593Smuzhiyun 	u16		bfad_num;
601*4882a593Smuzhiyun 	u16		rsvd;
602*4882a593Smuzhiyun 	u16		lpcnt;
603*4882a593Smuzhiyun 	u16		pat;
604*4882a593Smuzhiyun };
605*4882a593Smuzhiyun 
606*4882a593Smuzhiyun struct bfa_bsg_diag_fwping_s {
607*4882a593Smuzhiyun 	bfa_status_t	status;
608*4882a593Smuzhiyun 	u16		bfad_num;
609*4882a593Smuzhiyun 	u16		rsvd;
610*4882a593Smuzhiyun 	u32		cnt;
611*4882a593Smuzhiyun 	u32		pattern;
612*4882a593Smuzhiyun 	struct bfa_diag_results_fwping result;
613*4882a593Smuzhiyun };
614*4882a593Smuzhiyun 
615*4882a593Smuzhiyun struct bfa_bsg_diag_qtest_s {
616*4882a593Smuzhiyun 	bfa_status_t	status;
617*4882a593Smuzhiyun 	u16	bfad_num;
618*4882a593Smuzhiyun 	u16	rsvd;
619*4882a593Smuzhiyun 	u32	force;
620*4882a593Smuzhiyun 	u32	queue;
621*4882a593Smuzhiyun 	struct bfa_diag_qtest_result_s result;
622*4882a593Smuzhiyun };
623*4882a593Smuzhiyun 
624*4882a593Smuzhiyun struct bfa_bsg_sfp_show_s {
625*4882a593Smuzhiyun 	bfa_status_t	status;
626*4882a593Smuzhiyun 	u16		bfad_num;
627*4882a593Smuzhiyun 	u16		rsvd;
628*4882a593Smuzhiyun 	struct sfp_mem_s sfp;
629*4882a593Smuzhiyun };
630*4882a593Smuzhiyun 
631*4882a593Smuzhiyun struct bfa_bsg_diag_led_s {
632*4882a593Smuzhiyun 	bfa_status_t	status;
633*4882a593Smuzhiyun 	u16		bfad_num;
634*4882a593Smuzhiyun 	u16		rsvd;
635*4882a593Smuzhiyun 	struct bfa_diag_ledtest_s ledtest;
636*4882a593Smuzhiyun };
637*4882a593Smuzhiyun 
638*4882a593Smuzhiyun struct bfa_bsg_diag_beacon_s {
639*4882a593Smuzhiyun 	bfa_status_t	status;
640*4882a593Smuzhiyun 	u16		bfad_num;
641*4882a593Smuzhiyun 	u16		rsvd;
642*4882a593Smuzhiyun 	bfa_boolean_t   beacon;
643*4882a593Smuzhiyun 	bfa_boolean_t   link_e2e_beacon;
644*4882a593Smuzhiyun 	u32		second;
645*4882a593Smuzhiyun };
646*4882a593Smuzhiyun 
647*4882a593Smuzhiyun struct bfa_bsg_diag_lb_stat_s {
648*4882a593Smuzhiyun 	bfa_status_t	status;
649*4882a593Smuzhiyun 	u16		bfad_num;
650*4882a593Smuzhiyun 	u16		rsvd;
651*4882a593Smuzhiyun };
652*4882a593Smuzhiyun 
653*4882a593Smuzhiyun struct bfa_bsg_phy_attr_s {
654*4882a593Smuzhiyun 	bfa_status_t	status;
655*4882a593Smuzhiyun 	u16	bfad_num;
656*4882a593Smuzhiyun 	u16	instance;
657*4882a593Smuzhiyun 	struct bfa_phy_attr_s	attr;
658*4882a593Smuzhiyun };
659*4882a593Smuzhiyun 
660*4882a593Smuzhiyun struct bfa_bsg_phy_s {
661*4882a593Smuzhiyun 	bfa_status_t	status;
662*4882a593Smuzhiyun 	u16	bfad_num;
663*4882a593Smuzhiyun 	u16	instance;
664*4882a593Smuzhiyun 	u64	bufsz;
665*4882a593Smuzhiyun 	u64	buf_ptr;
666*4882a593Smuzhiyun };
667*4882a593Smuzhiyun 
668*4882a593Smuzhiyun struct bfa_bsg_debug_s {
669*4882a593Smuzhiyun 	bfa_status_t	status;
670*4882a593Smuzhiyun 	u16		bfad_num;
671*4882a593Smuzhiyun 	u16		rsvd;
672*4882a593Smuzhiyun 	u32		bufsz;
673*4882a593Smuzhiyun 	int		inst_no;
674*4882a593Smuzhiyun 	u64		buf_ptr;
675*4882a593Smuzhiyun 	u64		offset;
676*4882a593Smuzhiyun };
677*4882a593Smuzhiyun 
678*4882a593Smuzhiyun struct bfa_bsg_phy_stats_s {
679*4882a593Smuzhiyun 	bfa_status_t	status;
680*4882a593Smuzhiyun 	u16	bfad_num;
681*4882a593Smuzhiyun 	u16	instance;
682*4882a593Smuzhiyun 	struct bfa_phy_stats_s	stats;
683*4882a593Smuzhiyun };
684*4882a593Smuzhiyun 
685*4882a593Smuzhiyun struct bfa_bsg_vhba_attr_s {
686*4882a593Smuzhiyun 	bfa_status_t	status;
687*4882a593Smuzhiyun 	u16		bfad_num;
688*4882a593Smuzhiyun 	u16		pcifn_id;
689*4882a593Smuzhiyun 	struct bfa_vhba_attr_s	attr;
690*4882a593Smuzhiyun };
691*4882a593Smuzhiyun 
692*4882a593Smuzhiyun struct bfa_bsg_boot_s {
693*4882a593Smuzhiyun 	bfa_status_t	status;
694*4882a593Smuzhiyun 	u16		bfad_num;
695*4882a593Smuzhiyun 	u16		rsvd;
696*4882a593Smuzhiyun 	struct bfa_boot_cfg_s	cfg;
697*4882a593Smuzhiyun };
698*4882a593Smuzhiyun 
699*4882a593Smuzhiyun struct bfa_bsg_preboot_s {
700*4882a593Smuzhiyun 	bfa_status_t	status;
701*4882a593Smuzhiyun 	u16		bfad_num;
702*4882a593Smuzhiyun 	u16		rsvd;
703*4882a593Smuzhiyun 	struct bfa_boot_pbc_s	cfg;
704*4882a593Smuzhiyun };
705*4882a593Smuzhiyun 
706*4882a593Smuzhiyun struct bfa_bsg_ethboot_s {
707*4882a593Smuzhiyun 	bfa_status_t	status;
708*4882a593Smuzhiyun 	u16		bfad_num;
709*4882a593Smuzhiyun 	u16		rsvd;
710*4882a593Smuzhiyun 	struct  bfa_ethboot_cfg_s  cfg;
711*4882a593Smuzhiyun };
712*4882a593Smuzhiyun 
713*4882a593Smuzhiyun struct bfa_bsg_trunk_attr_s {
714*4882a593Smuzhiyun 	bfa_status_t	status;
715*4882a593Smuzhiyun 	u16		bfad_num;
716*4882a593Smuzhiyun 	u16		rsvd;
717*4882a593Smuzhiyun 	struct bfa_trunk_attr_s attr;
718*4882a593Smuzhiyun };
719*4882a593Smuzhiyun 
720*4882a593Smuzhiyun struct bfa_bsg_qos_attr_s {
721*4882a593Smuzhiyun 	bfa_status_t	status;
722*4882a593Smuzhiyun 	u16		bfad_num;
723*4882a593Smuzhiyun 	u16		rsvd;
724*4882a593Smuzhiyun 	struct bfa_qos_attr_s	attr;
725*4882a593Smuzhiyun };
726*4882a593Smuzhiyun 
727*4882a593Smuzhiyun struct bfa_bsg_qos_vc_attr_s {
728*4882a593Smuzhiyun 	bfa_status_t	status;
729*4882a593Smuzhiyun 	u16		bfad_num;
730*4882a593Smuzhiyun 	u16		rsvd;
731*4882a593Smuzhiyun 	struct bfa_qos_vc_attr_s attr;
732*4882a593Smuzhiyun };
733*4882a593Smuzhiyun 
734*4882a593Smuzhiyun struct bfa_bsg_qos_bw_s {
735*4882a593Smuzhiyun 	bfa_status_t	status;
736*4882a593Smuzhiyun 	u16		bfad_num;
737*4882a593Smuzhiyun 	u16		rsvd;
738*4882a593Smuzhiyun 	struct bfa_qos_bw_s qos_bw;
739*4882a593Smuzhiyun };
740*4882a593Smuzhiyun 
741*4882a593Smuzhiyun struct bfa_bsg_vf_stats_s {
742*4882a593Smuzhiyun 	bfa_status_t	status;
743*4882a593Smuzhiyun 	u16		bfad_num;
744*4882a593Smuzhiyun 	u16		vf_id;
745*4882a593Smuzhiyun 	struct bfa_vf_stats_s	stats;
746*4882a593Smuzhiyun };
747*4882a593Smuzhiyun 
748*4882a593Smuzhiyun struct bfa_bsg_vf_reset_stats_s {
749*4882a593Smuzhiyun 	bfa_status_t	status;
750*4882a593Smuzhiyun 	u16		bfad_num;
751*4882a593Smuzhiyun 	u16		vf_id;
752*4882a593Smuzhiyun };
753*4882a593Smuzhiyun 
754*4882a593Smuzhiyun struct bfa_bsg_fcpim_lunmask_query_s {
755*4882a593Smuzhiyun 	bfa_status_t	status;
756*4882a593Smuzhiyun 	u16		bfad_num;
757*4882a593Smuzhiyun 	struct bfa_lunmask_cfg_s lun_mask;
758*4882a593Smuzhiyun };
759*4882a593Smuzhiyun 
760*4882a593Smuzhiyun struct bfa_bsg_fcpim_lunmask_s {
761*4882a593Smuzhiyun 	bfa_status_t	status;
762*4882a593Smuzhiyun 	u16		bfad_num;
763*4882a593Smuzhiyun 	u16		vf_id;
764*4882a593Smuzhiyun 	wwn_t		pwwn;
765*4882a593Smuzhiyun 	wwn_t		rpwwn;
766*4882a593Smuzhiyun 	struct scsi_lun	lun;
767*4882a593Smuzhiyun };
768*4882a593Smuzhiyun 
769*4882a593Smuzhiyun struct bfa_bsg_fcpim_throttle_s {
770*4882a593Smuzhiyun 	bfa_status_t	status;
771*4882a593Smuzhiyun 	u16		bfad_num;
772*4882a593Smuzhiyun 	u16		vf_id;
773*4882a593Smuzhiyun 	struct bfa_defs_fcpim_throttle_s throttle;
774*4882a593Smuzhiyun };
775*4882a593Smuzhiyun 
776*4882a593Smuzhiyun #define BFA_TFRU_DATA_SIZE		64
777*4882a593Smuzhiyun #define BFA_MAX_FRUVPD_TRANSFER_SIZE	0x1000
778*4882a593Smuzhiyun 
779*4882a593Smuzhiyun struct bfa_bsg_tfru_s {
780*4882a593Smuzhiyun 	bfa_status_t	status;
781*4882a593Smuzhiyun 	u16		bfad_num;
782*4882a593Smuzhiyun 	u16		rsvd;
783*4882a593Smuzhiyun 	u32		offset;
784*4882a593Smuzhiyun 	u32		len;
785*4882a593Smuzhiyun 	u8		data[BFA_TFRU_DATA_SIZE];
786*4882a593Smuzhiyun };
787*4882a593Smuzhiyun 
788*4882a593Smuzhiyun struct bfa_bsg_fruvpd_s {
789*4882a593Smuzhiyun 	bfa_status_t	status;
790*4882a593Smuzhiyun 	u16		bfad_num;
791*4882a593Smuzhiyun 	u16		rsvd1;
792*4882a593Smuzhiyun 	u32		offset;
793*4882a593Smuzhiyun 	u32		len;
794*4882a593Smuzhiyun 	u8		data[BFA_MAX_FRUVPD_TRANSFER_SIZE];
795*4882a593Smuzhiyun 	u8		trfr_cmpl;
796*4882a593Smuzhiyun 	u8		rsvd2[3];
797*4882a593Smuzhiyun };
798*4882a593Smuzhiyun 
799*4882a593Smuzhiyun struct bfa_bsg_fruvpd_max_size_s {
800*4882a593Smuzhiyun 	bfa_status_t	status;
801*4882a593Smuzhiyun 	u16		bfad_num;
802*4882a593Smuzhiyun 	u16		rsvd;
803*4882a593Smuzhiyun 	u32		max_size;
804*4882a593Smuzhiyun };
805*4882a593Smuzhiyun 
806*4882a593Smuzhiyun struct bfa_bsg_fcpt_s {
807*4882a593Smuzhiyun 	bfa_status_t    status;
808*4882a593Smuzhiyun 	u16		vf_id;
809*4882a593Smuzhiyun 	wwn_t		lpwwn;
810*4882a593Smuzhiyun 	wwn_t		dpwwn;
811*4882a593Smuzhiyun 	u32		tsecs;
812*4882a593Smuzhiyun 	int		cts;
813*4882a593Smuzhiyun 	enum fc_cos	cos;
814*4882a593Smuzhiyun 	struct fchs_s	fchs;
815*4882a593Smuzhiyun };
816*4882a593Smuzhiyun #define bfa_bsg_fcpt_t struct bfa_bsg_fcpt_s
817*4882a593Smuzhiyun 
818*4882a593Smuzhiyun #pragma pack(1)
819*4882a593Smuzhiyun struct bfa_bsg_data {
820*4882a593Smuzhiyun 	int payload_len;
821*4882a593Smuzhiyun 	u64 payload;
822*4882a593Smuzhiyun };
823*4882a593Smuzhiyun #pragma pack()
824*4882a593Smuzhiyun 
825*4882a593Smuzhiyun #define bfad_chk_iocmd_sz(__payload_len, __hdrsz, __bufsz)	\
826*4882a593Smuzhiyun 	(((__payload_len) != ((__hdrsz) + (__bufsz))) ?		\
827*4882a593Smuzhiyun 	 BFA_STATUS_FAILED : BFA_STATUS_OK)
828*4882a593Smuzhiyun 
829*4882a593Smuzhiyun #endif /* BFAD_BSG_H */
830