linux/drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h

/* SPDX-License-Identifier: GPL-2.0+ */
/* Copyright (c) 2016-2017 Hisilicon Limited. */

#ifndef __HCLGE_MBX_H
#define __HCLGE_MBX_H
#include <linux/init.h>
#include <linux/mutex.h>
#include <linux/types.h>

enum HCLGE_MBX_OPCODE {};

/* below are per-VF mac-vlan subcodes */
enum hclge_mbx_mac_vlan_subcode {};

/* below are per-VF vlan cfg subcodes */
enum hclge_mbx_vlan_cfg_subcode {};

enum hclge_mbx_tbl_cfg_subcode {};

#define HCLGE_MBX_MAX_MSG_SIZE
#define HCLGE_MBX_MAX_RESP_DATA_SIZE
#define HCLGE_MBX_MAX_RING_CHAIN_PARAM_NUM

#define HCLGE_RESET_SCHED_TIMEOUT
#define HCLGE_MBX_SCHED_TIMEOUT

struct hclge_ring_chain_param {};

struct hclge_basic_info {};

struct hclgevf_mbx_resp_status {};

struct hclge_respond_to_vf_msg {};

struct hclge_vf_to_pf_msg {};

struct hclge_pf_to_vf_msg {};

struct hclge_mbx_vf_to_pf_cmd {};

#define HCLGE_MBX_NEED_RESP_B

struct hclge_mbx_pf_to_vf_cmd {};

struct hclge_vf_rst_cmd {};

#pragma pack(1)
struct hclge_mbx_link_status {};

struct hclge_mbx_link_mode {};

struct hclge_mbx_port_base_vlan {};

struct hclge_mbx_vf_queue_info {};

struct hclge_mbx_vf_queue_depth {};

struct hclge_mbx_vlan_filter {};

struct hclge_mbx_mtu_info {};

#pragma pack()

/* used by VF to store the received Async responses from PF */
struct hclgevf_mbx_arq_ring {};

struct hclge_dev;

#define HCLGE_MBX_OPCODE_MAX
struct hclge_mbx_ops_param {};

hclge_mbx_ops_fn;

#define hclge_mbx_ring_ptr_move_crq(crq)
#define hclge_mbx_tail_ptr_move_arq(arq)
#define hclge_mbx_head_ptr_move_arq(arq)

/* PF immediately push link status to VFs when link status changed */
#define HCLGE_MBX_PUSH_LINK_STATUS_EN
#endif