linux/drivers/net/ethernet/emulex/benet/be_cmds.h

/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright (C) 2005 - 2016 Broadcom
 * All rights reserved.
 *
 * Contact Information:
 * [email protected]
 *
 * Emulex
 * 3333 Susan Street
 * Costa Mesa, CA 92626
 */

/*
 * The driver sends configuration and managements command requests to the
 * firmware in the BE. These requests are communicated to the processor
 * using Work Request Blocks (WRBs) submitted to the MCC-WRB ring or via one
 * WRB inside a MAILBOX.
 * The commands are serviced by the ARM processor in the BladeEngine's MPU.
 */

struct be_sge {};

#define MCC_WRB_EMBEDDED_MASK
#define MCC_WRB_SGE_CNT_SHIFT
#define MCC_WRB_SGE_CNT_MASK
struct be_mcc_wrb {};

#define CQE_FLAGS_VALID_MASK
#define CQE_FLAGS_ASYNC_MASK
#define CQE_FLAGS_COMPLETED_MASK
#define CQE_FLAGS_CONSUMED_MASK

/* Completion Status */
enum mcc_base_status {};

/* Additional status */
enum mcc_addl_status {};

#define CQE_BASE_STATUS_MASK
#define CQE_BASE_STATUS_SHIFT
#define CQE_ADDL_STATUS_MASK
#define CQE_ADDL_STATUS_SHIFT

#define base_status(status)
#define addl_status(status)

struct be_mcc_compl {};

/* When the async bit of mcc_compl flags is set, flags
 * is interpreted as follows:
 */
#define ASYNC_EVENT_CODE_SHIFT
#define ASYNC_EVENT_CODE_MASK
#define ASYNC_EVENT_TYPE_SHIFT
#define ASYNC_EVENT_TYPE_MASK
#define ASYNC_EVENT_CODE_LINK_STATE
#define ASYNC_EVENT_CODE_GRP_5
#define ASYNC_EVENT_QOS_SPEED
#define ASYNC_EVENT_COS_PRIORITY
#define ASYNC_EVENT_PVID_STATE
#define ASYNC_EVENT_CODE_QNQ
#define ASYNC_DEBUG_EVENT_TYPE_QNQ
#define ASYNC_EVENT_CODE_SLIPORT
#define ASYNC_EVENT_PORT_MISCONFIG
#define ASYNC_EVENT_FW_CONTROL

enum {};
#define LINK_STATUS_MASK
#define LOGICAL_LINK_STATUS_MASK

/* When the event code of compl->flags is link-state, the mcc_compl
 * must be interpreted as follows
 */
struct be_async_event_link_state {} __packed;

/* When the event code of compl->flags is GRP-5 and event_type is QOS_SPEED
 * the mcc_compl must be interpreted as follows
 */
struct be_async_event_grp5_qos_link_speed {} __packed;

/* When the event code of compl->flags is GRP5 and event type is
 * CoS-Priority, the mcc_compl must be interpreted as follows
 */
struct be_async_event_grp5_cos_priority {} __packed;

/* When the event code of compl->flags is GRP5 and event type is
 * PVID state, the mcc_compl must be interpreted as follows
 */
struct be_async_event_grp5_pvid_state {} __packed;

/* async event indicating outer VLAN tag in QnQ */
struct be_async_event_qnq {} __packed;

enum {};

#define PHY_STATE_MSG_SEVERITY
#define PHY_STATE_OPER
#define PHY_STATE_INFO_VALID
#define PHY_STATE_OPER_MSG_NONE
#define DEFAULT_MSG_SEVERITY

#define be_phy_state_unknown(phy_state)
#define be_phy_unqualified(phy_state)
#define be_phy_misconfigured(phy_state)

extern const  char * const be_misconfig_evt_port_state[];

/* async event indicating misconfigured port */
struct be_async_event_misconfig_port {} __packed;

#define BMC_FILT_BROADCAST_ARP
#define BMC_FILT_BROADCAST_DHCP_CLIENT
#define BMC_FILT_BROADCAST_DHCP_SERVER
#define BMC_FILT_BROADCAST_NET_BIOS
#define BMC_FILT_BROADCAST
#define BMC_FILT_MULTICAST_IPV6_NEIGH_ADVER
#define BMC_FILT_MULTICAST_IPV6_RA
#define BMC_FILT_MULTICAST_IPV6_RAS
#define BMC_FILT_MULTICAST
struct be_async_fw_control {} __packed;

struct be_mcc_mailbox {};

#define CMD_SUBSYSTEM_COMMON
#define CMD_SUBSYSTEM_ETH
#define CMD_SUBSYSTEM_LOWLEVEL

#define OPCODE_COMMON_NTWK_MAC_QUERY
#define OPCODE_COMMON_NTWK_MAC_SET
#define OPCODE_COMMON_NTWK_MULTICAST_SET
#define OPCODE_COMMON_NTWK_VLAN_CONFIG
#define OPCODE_COMMON_NTWK_LINK_STATUS_QUERY
#define OPCODE_COMMON_READ_FLASHROM
#define OPCODE_COMMON_WRITE_FLASHROM
#define OPCODE_COMMON_CQ_CREATE
#define OPCODE_COMMON_EQ_CREATE
#define OPCODE_COMMON_MCC_CREATE
#define OPCODE_COMMON_SET_QOS
#define OPCODE_COMMON_MCC_CREATE_EXT
#define OPCODE_COMMON_SEEPROM_READ
#define OPCODE_COMMON_GET_CNTL_ATTRIBUTES
#define OPCODE_COMMON_NTWK_RX_FILTER
#define OPCODE_COMMON_GET_FW_VERSION
#define OPCODE_COMMON_SET_FLOW_CONTROL
#define OPCODE_COMMON_GET_FLOW_CONTROL
#define OPCODE_COMMON_SET_FRAME_SIZE
#define OPCODE_COMMON_MODIFY_EQ_DELAY
#define OPCODE_COMMON_FIRMWARE_CONFIG
#define OPCODE_COMMON_NTWK_INTERFACE_CREATE
#define OPCODE_COMMON_NTWK_INTERFACE_DESTROY
#define OPCODE_COMMON_MCC_DESTROY
#define OPCODE_COMMON_CQ_DESTROY
#define OPCODE_COMMON_EQ_DESTROY
#define OPCODE_COMMON_QUERY_FIRMWARE_CONFIG
#define OPCODE_COMMON_NTWK_PMAC_ADD
#define OPCODE_COMMON_NTWK_PMAC_DEL
#define OPCODE_COMMON_FUNCTION_RESET
#define OPCODE_COMMON_MANAGE_FAT
#define OPCODE_COMMON_ENABLE_DISABLE_BEACON
#define OPCODE_COMMON_GET_BEACON_STATE
#define OPCODE_COMMON_READ_TRANSRECV_DATA
#define OPCODE_COMMON_GET_PORT_NAME
#define OPCODE_COMMON_SET_LOGICAL_LINK_CONFIG
#define OPCODE_COMMON_SET_INTERRUPT_ENABLE
#define OPCODE_COMMON_SET_FN_PRIVILEGES
#define OPCODE_COMMON_GET_PHY_DETAILS
#define OPCODE_COMMON_SET_DRIVER_FUNCTION_CAP
#define OPCODE_COMMON_GET_CNTL_ADDITIONAL_ATTRIBUTES
#define OPCODE_COMMON_GET_EXT_FAT_CAPABILITIES
#define OPCODE_COMMON_SET_EXT_FAT_CAPABILITIES
#define OPCODE_COMMON_GET_MAC_LIST
#define OPCODE_COMMON_SET_MAC_LIST
#define OPCODE_COMMON_GET_HSW_CONFIG
#define OPCODE_COMMON_GET_FUNC_CONFIG
#define OPCODE_COMMON_GET_PROFILE_CONFIG
#define OPCODE_COMMON_SET_PROFILE_CONFIG
#define OPCODE_COMMON_GET_ACTIVE_PROFILE
#define OPCODE_COMMON_SET_HSW_CONFIG
#define OPCODE_COMMON_GET_FN_PRIVILEGES
#define OPCODE_COMMON_READ_OBJECT
#define OPCODE_COMMON_WRITE_OBJECT
#define OPCODE_COMMON_DELETE_OBJECT
#define OPCODE_COMMON_SET_FEATURES
#define OPCODE_COMMON_MANAGE_IFACE_FILTERS
#define OPCODE_COMMON_GET_IFACE_LIST
#define OPCODE_COMMON_ENABLE_DISABLE_VF

#define OPCODE_ETH_RSS_CONFIG
#define OPCODE_ETH_ACPI_CONFIG
#define OPCODE_ETH_PROMISCUOUS
#define OPCODE_ETH_GET_STATISTICS
#define OPCODE_ETH_TX_CREATE
#define OPCODE_ETH_RX_CREATE
#define OPCODE_ETH_TX_DESTROY
#define OPCODE_ETH_RX_DESTROY
#define OPCODE_ETH_ACPI_WOL_MAGIC_CONFIG
#define OPCODE_ETH_GET_PPORT_STATS

#define OPCODE_LOWLEVEL_HOST_DDR_DMA
#define OPCODE_LOWLEVEL_LOOPBACK_TEST
#define OPCODE_LOWLEVEL_SET_LOOPBACK_MODE

struct be_cmd_req_hdr {};

#define RESP_HDR_INFO_OPCODE_SHIFT
#define RESP_HDR_INFO_SUBSYS_SHIFT
struct be_cmd_resp_hdr {};

struct phys_addr {};

/**************************
 * BE Command definitions *
 **************************/

/* Pseudo amap definition in which each bit of the actual structure is defined
 * as a byte: used to calculate offset/shift/mask of each field */
struct amap_eq_context {} __packed;

struct be_cmd_req_eq_create {} __packed;

struct be_cmd_resp_eq_create {} __packed;

/******************** Mac query ***************************/
enum {};

struct mac_addr {} __packed;

struct be_cmd_req_mac_query {} __packed;

struct be_cmd_resp_mac_query {};

/******************** PMac Add ***************************/
struct be_cmd_req_pmac_add {} __packed;

struct be_cmd_resp_pmac_add {};

/******************** PMac Del ***************************/
struct be_cmd_req_pmac_del {};

/******************** Create CQ ***************************/
/* Pseudo amap definition in which each bit of the actual structure is defined
 * as a byte: used to calculate offset/shift/mask of each field */
struct amap_cq_context_be {} __packed;

struct amap_cq_context_v2 {} __packed;

struct be_cmd_req_cq_create {} __packed;


struct be_cmd_resp_cq_create {} __packed;

struct be_cmd_req_get_fat {} __packed;

struct be_cmd_resp_get_fat {} __packed;


/******************** Create MCCQ ***************************/
/* Pseudo amap definition in which each bit of the actual structure is defined
 * as a byte: used to calculate offset/shift/mask of each field */
struct amap_mcc_context_be {} __packed;

struct amap_mcc_context_v1 {} __packed;

struct be_cmd_req_mcc_create {} __packed;

struct be_cmd_req_mcc_ext_create {} __packed;

struct be_cmd_resp_mcc_create {} __packed;

/******************** Create TxQ ***************************/
#define BE_ETH_TX_RING_TYPE_STANDARD
#define BE_ULP1_NUM

struct be_cmd_req_eth_tx_create {} __packed;

struct be_cmd_resp_eth_tx_create {} __packed;

/******************** Create RxQ ***************************/
struct be_cmd_req_eth_rx_create {} __packed;

struct be_cmd_resp_eth_rx_create {} __packed;

/******************** Q Destroy  ***************************/
/* Type of Queue to be destroyed */
enum {};

struct be_cmd_req_q_destroy {} __packed;

/************ I/f Create (it's actually I/f Config Create)**********/

/* Capability flags for the i/f */
enum be_if_flags {};

#define BE_IF_CAP_FLAGS_WANT

#define BE_IF_FLAGS_ALL_PROMISCUOUS

#define BE_IF_FILT_FLAGS_BASIC

#define BE_IF_ALL_FILT_FLAGS

/* An RX interface is an object with one or more MAC addresses and
 * filtering capabilities. */
struct be_cmd_req_if_create {} __packed;

struct be_cmd_resp_if_create {};

/****** I/f Destroy(it's actually I/f Config Destroy )**********/
struct be_cmd_req_if_destroy {};

/*************** HW Stats Get **********************************/
struct be_port_rxf_stats_v0 {};

struct be_rxf_stats_v0 {};

struct be_erx_stats_v0 {};

struct be_pmem_stats {};

struct be_hw_stats_v0 {};

struct be_cmd_req_get_stats_v0 {};

struct be_cmd_resp_get_stats_v0 {};

struct lancer_pport_stats {};

struct pport_stats_params {};

struct lancer_cmd_req_pport_stats {};

struct lancer_cmd_resp_pport_stats {};

static inline struct lancer_pport_stats*
	pport_stats_from_cmd(struct be_adapter *adapter)
{}

struct be_cmd_req_get_cntl_addnl_attribs {};

struct be_cmd_resp_get_cntl_addnl_attribs {};

struct be_cmd_req_vlan_config {} __packed;

/******************* RX FILTER ******************************/
#define BE_MAX_MC
struct macaddr {};

struct be_cmd_req_rx_filter {};

/******************** Link Status Query *******************/
struct be_cmd_req_link_status {};

enum {};

enum {};

struct be_cmd_resp_link_status {} __packed;

/******************** Port Identification ***************************/
/*    Identifies the type of port attached to NIC     */
struct be_cmd_req_port_type {};

enum {};

/* From SFF-8436 QSFP+ spec */
#define QSFP_PLUS_CABLE_TYPE_OFFSET
#define QSFP_PLUS_CR4_CABLE
#define QSFP_PLUS_SR4_CABLE
#define QSFP_PLUS_LR4_CABLE

/* From SFF-8472 spec */
#define SFP_PLUS_SFF_8472_COMP
#define SFP_PLUS_CABLE_TYPE_OFFSET
#define SFP_PLUS_COPPER_CABLE
#define SFP_VENDOR_NAME_OFFSET
#define SFP_VENDOR_PN_OFFSET

#define PAGE_DATA_LEN
struct be_cmd_resp_port_type {};

/******************** Get FW Version *******************/
struct be_cmd_req_get_fw_version {} __packed;

struct be_cmd_resp_get_fw_version {} __packed;

/******************** Set Flow Contrl *******************/
struct be_cmd_req_set_flow_control {} __packed;

/******************** Get Flow Contrl *******************/
struct be_cmd_req_get_flow_control {};

struct be_cmd_resp_get_flow_control {} __packed;

/******************** Modify EQ Delay *******************/
struct be_set_eqd {};

struct be_cmd_req_modify_eq_delay {} __packed;

/******************** Get FW Config *******************/
/* The HW can come up in either of the following multi-channel modes
 * based on the skew/IPL.
 */
#define RDMA_ENABLED
#define QNQ_MODE
#define VNIC_MODE
#define UMC_ENABLED
struct be_cmd_req_query_fw_cfg {};

struct be_cmd_resp_query_fw_cfg {};

/******************** RSS Config ****************************************/
/* RSS type		Input parameters used to compute RX hash
 * RSS_ENABLE_IPV4	SRC IPv4, DST IPv4
 * RSS_ENABLE_TCP_IPV4	SRC IPv4, DST IPv4, TCP SRC PORT, TCP DST PORT
 * RSS_ENABLE_IPV6	SRC IPv6, DST IPv6
 * RSS_ENABLE_TCP_IPV6	SRC IPv6, DST IPv6, TCP SRC PORT, TCP DST PORT
 * RSS_ENABLE_UDP_IPV4	SRC IPv4, DST IPv4, UDP SRC PORT, UDP DST PORT
 * RSS_ENABLE_UDP_IPV6	SRC IPv6, DST IPv6, UDP SRC PORT, UDP DST PORT
 *
 * When multiple RSS types are enabled, HW picks the best hash policy
 * based on the type of the received packet.
 */
#define RSS_ENABLE_NONE
#define RSS_ENABLE_IPV4
#define RSS_ENABLE_TCP_IPV4
#define RSS_ENABLE_IPV6
#define RSS_ENABLE_TCP_IPV6
#define RSS_ENABLE_UDP_IPV4
#define RSS_ENABLE_UDP_IPV6

#define L3_RSS_FLAGS
#define L4_RSS_FLAGS

struct be_cmd_req_rss_config {};

/******************** Port Beacon ***************************/

#define BEACON_STATE_ENABLED
#define BEACON_STATE_DISABLED

struct be_cmd_req_enable_disable_beacon {} __packed;

struct be_cmd_req_get_beacon_state {} __packed;

struct be_cmd_resp_get_beacon_state {} __packed;

/* Flashrom related descriptors */
#define MAX_FLASH_COMP

/* Optypes of each component in the UFI */
enum {};

/* Maximum sizes of components in BE2 FW UFI */
enum {};

/* Maximum sizes of components in BE3 FW UFI */
enum {};

/* Offsets for components in BE2 FW UFI */
enum {};

/* Offsets for components in BE3 FW UFI */
enum {};

/* Component entry types */
enum {};

struct controller_id {};

struct flash_comp {};

struct image_hdr {};

struct flash_file_hdr_g2 {};

/* First letter of the build version of the image */
#define BLD_STR_UFI_TYPE_BE2
#define BLD_STR_UFI_TYPE_BE3
#define BLD_STR_UFI_TYPE_SH

struct flash_file_hdr_g3 {};

struct flash_section_hdr {} __packed;

struct flash_section_hdr_g2 {} __packed;

struct flash_section_entry {} __packed;

struct flash_section_info {} __packed;

struct flash_section_info_g2 {} __packed;

/****************** Firmware Flash ******************/
#define FLASHROM_OPER_FLASH
#define FLASHROM_OPER_SAVE
#define FLASHROM_OPER_REPORT
#define FLASHROM_OPER_PHY_FLASH
#define FLASHROM_OPER_PHY_SAVE

struct flashrom_params {};

struct be_cmd_write_flashrom {} __packed;

/* cmd to read flash crc */
struct be_cmd_read_flash_crc {} __packed;

/**************** Lancer Firmware Flash ************/
#define LANCER_FW_DOWNLOAD_CHUNK
#define LANCER_FW_DOWNLOAD_LOCATION

struct amap_lancer_write_obj_context {} __packed;

struct lancer_cmd_req_write_object {};

#define LANCER_NO_RESET_NEEDED
#define LANCER_FW_RESET_NEEDED
struct lancer_cmd_resp_write_object {};

/************************ Lancer Read FW info **************/
#define LANCER_READ_FILE_CHUNK
#define LANCER_READ_FILE_EOF_MASK

#define LANCER_FW_DUMP_FILE
#define LANCER_VPD_PF_FILE
#define LANCER_VPD_VF_FILE

struct lancer_cmd_req_read_object {};

struct lancer_cmd_resp_read_object {};

struct lancer_cmd_req_delete_object {};

/************************ WOL *******************************/
struct be_cmd_req_acpi_wol_magic_config{} __packed;

struct be_cmd_req_acpi_wol_magic_config_v1 {} __packed;

struct be_cmd_resp_acpi_wol_magic_config_v1 {} __packed;

#define BE_GET_WOL_CAP

#define BE_WOL_CAP
#define BE_PME_D0_CAP
#define BE_PME_D1_CAP
#define BE_PME_D2_CAP
#define BE_PME_D3HOT_CAP
#define BE_PME_D3COLD_CAP

/********************** LoopBack test *********************/
#define SET_LB_MODE_TIMEOUT

struct be_cmd_req_loopback_test {};

struct be_cmd_resp_loopback_test {};

struct be_cmd_req_set_lmode {};

/********************** DDR DMA test *********************/
struct be_cmd_req_ddrdma_test {};

struct be_cmd_resp_ddrdma_test {};

/*********************** SEEPROM Read ***********************/

#define BE_READ_SEEPROM_LEN
struct be_cmd_req_seeprom_read {};

struct be_cmd_resp_seeprom_read {};

enum {};

#define BE_SUPPORTED_SPEED_NONE
#define BE_SUPPORTED_SPEED_10MBPS
#define BE_SUPPORTED_SPEED_100MBPS
#define BE_SUPPORTED_SPEED_1GBPS
#define BE_SUPPORTED_SPEED_10GBPS
#define BE_SUPPORTED_SPEED_20GBPS
#define BE_SUPPORTED_SPEED_40GBPS

#define BE_AN_EN
#define BE_PAUSE_SYM_EN

/* MAC speed valid values */
#define SPEED_DEFAULT
#define SPEED_FORCED_10GB
#define SPEED_FORCED_1GB
#define SPEED_AUTONEG_10GB
#define SPEED_AUTONEG_1GB
#define SPEED_AUTONEG_100MB
#define SPEED_AUTONEG_10GB_1GB
#define SPEED_AUTONEG_10GB_1GB_100MB
#define SPEED_AUTONEG_1GB_100MB
#define SPEED_AUTONEG_10MB
#define SPEED_AUTONEG_1GB_100MB_10MB
#define SPEED_AUTONEG_100MB_10MB
#define SPEED_FORCED_100MB
#define SPEED_FORCED_10MB

struct be_cmd_req_get_phy_info {};

struct be_phy_info {};

struct be_cmd_resp_get_phy_info {};

/*********************** Set QOS ***********************/

#define BE_QOS_BITS_NIC

struct be_cmd_req_set_qos {};

/*********************** Controller Attributes ***********************/
struct mgmt_hba_attribs {} __packed;

struct mgmt_controller_attrib {} __packed;

struct be_cmd_req_cntl_attribs {};

struct be_cmd_resp_cntl_attribs {};

/*********************** Set driver function ***********************/
#define CAPABILITY_SW_TIMESTAMPS
#define CAPABILITY_BE3_NATIVE_ERX_API

struct be_cmd_req_set_func_cap {};

struct be_cmd_resp_set_func_cap {};

/*********************** Function Privileges ***********************/
enum {};
#define MAX_PRIVILEGES
#define MIN_PRIVILEGES

struct be_cmd_priv_map {};

struct be_cmd_req_get_fn_privileges {};

struct be_cmd_resp_get_fn_privileges {};

struct be_cmd_req_set_fn_privileges {};

/******************** GET/SET_MACLIST  **************************/
#define BE_MAX_MAC
struct be_cmd_req_get_mac_list {} __packed;

struct get_list_macaddr {} __packed;

struct be_cmd_resp_get_mac_list {} __packed;

struct be_cmd_req_set_mac_list {} __packed;

/*********************** HSW Config ***********************/
#define PORT_FWD_TYPE_VEPA
#define PORT_FWD_TYPE_VEB
#define PORT_FWD_TYPE_PASSTHRU

#define ENABLE_MAC_SPOOFCHK
#define DISABLE_MAC_SPOOFCHK

struct amap_set_hsw_context {} __packed;

struct be_cmd_req_set_hsw_config {} __packed;

struct amap_get_hsw_req_context {} __packed;

struct amap_get_hsw_resp_context {} __packed;

struct be_cmd_req_get_hsw_config {} __packed;

struct be_cmd_resp_get_hsw_config {};

/******************* get port names ***************/
struct be_cmd_req_get_port_name {};

struct be_cmd_resp_get_port_name {};

/*************** HW Stats Get v1 **********************************/
#define BE_TXP_SW_SZ
struct be_port_rxf_stats_v1 {};


struct be_rxf_stats_v1 {};

struct be_erx_stats_v1 {};

struct be_port_rxf_stats_v2 {};

struct be_rxf_stats_v2 {};

struct be_hw_stats_v1 {};

struct be_cmd_req_get_stats_v1 {};

struct be_cmd_resp_get_stats_v1 {};

struct be_erx_stats_v2 {};

struct be_hw_stats_v2 {};

struct be_cmd_req_get_stats_v2 {};

struct be_cmd_resp_get_stats_v2 {};

/************** get fat capabilites *******************/
#define MAX_MODULES
#define MAX_MODES
#define MODE_UART
#define FW_LOG_LEVEL_DEFAULT
#define FW_LOG_LEVEL_FATAL

struct ext_fat_mode {} __packed;

struct ext_fat_modules {} __packed;

struct be_fat_conf_params {} __packed;

struct be_cmd_req_get_ext_fat_caps {};

struct be_cmd_resp_get_ext_fat_caps {};

struct be_cmd_req_set_ext_fat_caps {};

#define RESOURCE_DESC_SIZE_V0
#define RESOURCE_DESC_SIZE_V1
#define PCIE_RESOURCE_DESC_TYPE_V0
#define NIC_RESOURCE_DESC_TYPE_V0
#define PCIE_RESOURCE_DESC_TYPE_V1
#define NIC_RESOURCE_DESC_TYPE_V1
#define PORT_RESOURCE_DESC_TYPE_V1
#define MAX_RESOURCE_DESC

#define IF_CAPS_FLAGS_VALID_SHIFT
#define VFT_SHIFT
#define IMM_SHIFT
#define NOSV_SHIFT

#define MISSION_NIC
#define MISSION_RDMA

struct be_res_desc_hdr {} __packed;

struct be_port_res_desc {} __packed;

struct be_pcie_res_desc {} __packed;

struct be_nic_res_desc {} __packed;

/************ Multi-Channel type ***********/
enum mc_type {};

/* Is BE in a multi-channel mode */
static inline bool be_is_mc(struct be_adapter *adapter)
{}

struct be_cmd_req_get_func_config {};

struct be_cmd_resp_get_func_config {};

enum {};

struct be_cmd_req_get_profile_config {};

struct be_cmd_resp_get_profile_config {};

#define FIELD_MODIFIABLE
struct be_cmd_req_set_profile_config {} __packed;

struct be_cmd_req_get_active_profile {} __packed;

struct be_cmd_resp_get_active_profile {} __packed;

struct be_cmd_enable_disable_vf {};

struct be_cmd_req_intr_set {};

static inline bool check_privilege(struct be_adapter *adapter, u32 flags)
{}

/************** Get IFACE LIST *******************/
struct be_if_desc {};

struct be_cmd_req_get_iface_list {};

struct be_cmd_resp_get_iface_list {};

/************** Set Features *******************/
#define BE_FEATURE_UE_RECOVERY
#define BE_UE_RECOVERY_UER_MASK

struct be_req_ue_recovery {};

struct be_cmd_req_set_features {};

struct be_resp_ue_recovery {};

struct be_cmd_resp_set_features {};

/*************** Set logical link ********************/
#define PLINK_ENABLE
#define PLINK_TRACK
struct be_cmd_req_set_ll_link {};

/************** Manage IFACE Filters *******************/
#define OP_CONVERT_NORMAL_TO_TUNNEL
#define OP_CONVERT_TUNNEL_TO_NORMAL

struct be_cmd_req_manage_iface_filters {} __packed;

u16 be_POST_stage_get(struct be_adapter *adapter);
int be_pci_fnum_get(struct be_adapter *adapter);
int be_fw_wait_ready(struct be_adapter *adapter);
int be_cmd_mac_addr_query(struct be_adapter *adapter, u8 *mac_addr,
			  bool permanent, u32 if_handle, u32 pmac_id);
int be_cmd_pmac_add(struct be_adapter *adapter, const u8 *mac_addr, u32 if_id,
		    u32 *pmac_id, u32 domain);
int be_cmd_pmac_del(struct be_adapter *adapter, u32 if_id, int pmac_id,
		    u32 domain);
int be_cmd_if_create(struct be_adapter *adapter, u32 cap_flags, u32 en_flags,
		     u32 *if_handle, u32 domain);
int be_cmd_if_destroy(struct be_adapter *adapter, int if_handle, u32 domain);
int be_cmd_eq_create(struct be_adapter *adapter, struct be_eq_obj *eqo);
int be_cmd_cq_create(struct be_adapter *adapter, struct be_queue_info *cq,
		     struct be_queue_info *eq, bool no_delay,
		     int num_cqe_dma_coalesce);
int be_cmd_mccq_create(struct be_adapter *adapter, struct be_queue_info *mccq,
		       struct be_queue_info *cq);
int be_cmd_txq_create(struct be_adapter *adapter, struct be_tx_obj *txo);
int be_cmd_rxq_create(struct be_adapter *adapter, struct be_queue_info *rxq,
		      u16 cq_id, u16 frag_size, u32 if_id, u32 rss, u8 *rss_id);
int be_cmd_q_destroy(struct be_adapter *adapter, struct be_queue_info *q,
		     int type);
int be_cmd_rxq_destroy(struct be_adapter *adapter, struct be_queue_info *q);
int be_cmd_link_status_query(struct be_adapter *adapter, u16 *link_speed,
			     u8 *link_status, u32 dom);
int be_cmd_reset(struct be_adapter *adapter);
int be_cmd_get_stats(struct be_adapter *adapter, struct be_dma_mem *nonemb_cmd);
int lancer_cmd_get_pport_stats(struct be_adapter *adapter,
			       struct be_dma_mem *nonemb_cmd);
int be_cmd_get_fw_ver(struct be_adapter *adapter);
int be_cmd_modify_eqd(struct be_adapter *adapter, struct be_set_eqd *, int num);
int be_cmd_vlan_config(struct be_adapter *adapter, u32 if_id, u16 *vtag_array,
		       u32 num, u32 domain);
int be_cmd_rx_filter(struct be_adapter *adapter, u32 flags, u32 status);
int be_cmd_set_flow_control(struct be_adapter *adapter, u32 tx_fc, u32 rx_fc);
int be_cmd_get_flow_control(struct be_adapter *adapter, u32 *tx_fc, u32 *rx_fc);
int be_cmd_query_fw_cfg(struct be_adapter *adapter);
int be_cmd_reset_function(struct be_adapter *adapter);
int be_cmd_rss_config(struct be_adapter *adapter, u8 *rsstable,
		      u32 rss_hash_opts, u16 table_size, const u8 *rss_hkey);
int be_process_mcc(struct be_adapter *adapter);
int be_cmd_set_beacon_state(struct be_adapter *adapter, u8 port_num, u8 beacon,
			    u8 status, u8 state);
int be_cmd_get_beacon_state(struct be_adapter *adapter, u8 port_num,
			    u32 *state);
int be_cmd_read_port_transceiver_data(struct be_adapter *adapter,
				      u8 page_num, u32 off, u32 len, u8 *data);
int be_cmd_query_cable_type(struct be_adapter *adapter);
int be_cmd_query_sfp_info(struct be_adapter *adapter);
int lancer_cmd_read_object(struct be_adapter *adapter, struct be_dma_mem *cmd,
			   u32 data_size, u32 data_offset, const char *obj_name,
			   u32 *data_read, u32 *eof, u8 *addn_status);
int lancer_fw_download(struct be_adapter *adapter, const struct firmware *fw);
int be_fw_download(struct be_adapter *adapter, const struct firmware *fw);
int be_cmd_enable_magic_wol(struct be_adapter *adapter, u8 *mac,
			    struct be_dma_mem *nonemb_cmd);
int be_cmd_fw_init(struct be_adapter *adapter);
int be_cmd_fw_clean(struct be_adapter *adapter);
void be_async_mcc_enable(struct be_adapter *adapter);
void be_async_mcc_disable(struct be_adapter *adapter);
int be_cmd_loopback_test(struct be_adapter *adapter, u32 port_num,
			 u32 loopback_type, u32 pkt_size, u32 num_pkts,
			 u64 pattern);
int be_cmd_ddr_dma_test(struct be_adapter *adapter, u64 pattern, u32 byte_cnt,
			struct be_dma_mem *cmd);
int be_cmd_get_seeprom_data(struct be_adapter *adapter,
			    struct be_dma_mem *nonemb_cmd);
int be_cmd_set_loopback(struct be_adapter *adapter, u8 port_num,
			u8 loopback_type, u8 enable);
int be_cmd_get_phy_info(struct be_adapter *adapter);
int be_cmd_config_qos(struct be_adapter *adapter, u32 max_rate,
		      u16 link_speed, u8 domain);
void be_detect_error(struct be_adapter *adapter);
int be_cmd_get_die_temperature(struct be_adapter *adapter);
int be_cmd_get_cntl_attributes(struct be_adapter *adapter);
int be_cmd_get_fat_dump_len(struct be_adapter *adapter, u32 *dump_size);
int be_cmd_get_fat_dump(struct be_adapter *adapter, u32 buf_len, void *buf);
int be_cmd_req_native_mode(struct be_adapter *adapter);
int be_cmd_get_fn_privileges(struct be_adapter *adapter, u32 *privilege,
			     u32 domain);
int be_cmd_set_fn_privileges(struct be_adapter *adapter, u32 privileges,
			     u32 vf_num);
int be_cmd_get_mac_from_list(struct be_adapter *adapter, u8 *mac,
			     bool *pmac_id_active, u32 *pmac_id,
			     u32 if_handle, u8 domain);
int be_cmd_get_active_mac(struct be_adapter *adapter, u32 pmac_id, u8 *mac,
			  u32 if_handle, bool active, u32 domain);
int be_cmd_get_perm_mac(struct be_adapter *adapter, u8 *mac);
int be_cmd_set_mac_list(struct be_adapter *adapter, u8 *mac_array, u8 mac_count,
			u32 domain);
int be_cmd_set_mac(struct be_adapter *adapter, u8 *mac, int if_id, u32 dom);
int be_cmd_set_hsw_config(struct be_adapter *adapter, u16 pvid, u32 domain,
			  u16 intf_id, u16 hsw_mode, u8 spoofchk);
int be_cmd_get_hsw_config(struct be_adapter *adapter, u16 *pvid, u32 domain,
			  u16 intf_id, u8 *mode, bool *spoofchk);
int be_cmd_get_acpi_wol_cap(struct be_adapter *adapter);
int be_cmd_set_fw_log_level(struct be_adapter *adapter, u32 level);
int be_cmd_get_fw_log_level(struct be_adapter *adapter);
int be_cmd_get_ext_fat_capabilites(struct be_adapter *adapter,
				   struct be_dma_mem *cmd);
int be_cmd_set_ext_fat_capabilites(struct be_adapter *adapter,
				   struct be_dma_mem *cmd,
				   struct be_fat_conf_params *cfgs);
int lancer_physdev_ctrl(struct be_adapter *adapter, u32 mask);
int lancer_initiate_dump(struct be_adapter *adapter);
int lancer_delete_dump(struct be_adapter *adapter);
bool dump_present(struct be_adapter *adapter);
int lancer_test_and_set_rdy_state(struct be_adapter *adapter);
int be_cmd_query_port_name(struct be_adapter *adapter);
int be_cmd_get_func_config(struct be_adapter *adapter,
			   struct be_resources *res);
int be_cmd_get_profile_config(struct be_adapter *adapter,
			      struct be_resources *res,
			      struct be_port_resources *port_res,
			      u8 profile_type, u8 query, u8 domain);
int be_cmd_get_active_profile(struct be_adapter *adapter, u16 *profile);
int be_cmd_get_if_id(struct be_adapter *adapter, struct be_vf_cfg *vf_cfg,
		     int vf_num);
int be_cmd_enable_vf(struct be_adapter *adapter, u8 domain);
int be_cmd_intr_set(struct be_adapter *adapter, bool intr_enable);
int be_cmd_set_logical_link_config(struct be_adapter *adapter,
					  int link_state, u8 domain);
int be_cmd_set_vxlan_port(struct be_adapter *adapter, __be16 port);
int be_cmd_manage_iface(struct be_adapter *adapter, u32 iface, u8 op);
int be_cmd_set_sriov_config(struct be_adapter *adapter,
			    struct be_resources res, u16 num_vfs,
			    struct be_resources *vft_res);
int be_cmd_set_features(struct be_adapter *adapter);