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