mirror of https://github.com/F-Stack/f-stack.git
597 lines
13 KiB
C
597 lines
13 KiB
C
/* SPDX-License-Identifier: BSD-3-Clause
|
|
* Copyright(c) 2016-2020 Intel Corporation
|
|
*/
|
|
|
|
#ifndef __DLB2_BASE_DLB2_MBOX_H
|
|
#define __DLB2_BASE_DLB2_MBOX_H
|
|
|
|
#include "dlb2_osdep_types.h"
|
|
#include "dlb2_regs.h"
|
|
|
|
#define DLB2_MBOX_INTERFACE_VERSION 1
|
|
|
|
/*
|
|
* The PF uses its PF->VF mailbox to send responses to VF requests, as well as
|
|
* to send requests of its own (e.g. notifying a VF of an impending FLR).
|
|
* To avoid communication race conditions, e.g. the PF sends a response and then
|
|
* sends a request before the VF reads the response, the PF->VF mailbox is
|
|
* divided into two sections:
|
|
* - Bytes 0-47: PF responses
|
|
* - Bytes 48-63: PF requests
|
|
*
|
|
* Partitioning the PF->VF mailbox allows responses and requests to occupy the
|
|
* mailbox simultaneously.
|
|
*/
|
|
#define DLB2_PF2VF_RESP_BYTES 48
|
|
#define DLB2_PF2VF_RESP_BASE 0
|
|
#define DLB2_PF2VF_RESP_BASE_WORD (DLB2_PF2VF_RESP_BASE / 4)
|
|
|
|
#define DLB2_PF2VF_REQ_BYTES 16
|
|
#define DLB2_PF2VF_REQ_BASE (DLB2_PF2VF_RESP_BASE + DLB2_PF2VF_RESP_BYTES)
|
|
#define DLB2_PF2VF_REQ_BASE_WORD (DLB2_PF2VF_REQ_BASE / 4)
|
|
|
|
/*
|
|
* Similarly, the VF->PF mailbox is divided into two sections:
|
|
* - Bytes 0-239: VF requests
|
|
* -- (Bytes 0-3 are unused due to a hardware errata)
|
|
* - Bytes 240-255: VF responses
|
|
*/
|
|
#define DLB2_VF2PF_REQ_BYTES 236
|
|
#define DLB2_VF2PF_REQ_BASE 4
|
|
#define DLB2_VF2PF_REQ_BASE_WORD (DLB2_VF2PF_REQ_BASE / 4)
|
|
|
|
#define DLB2_VF2PF_RESP_BYTES 16
|
|
#define DLB2_VF2PF_RESP_BASE (DLB2_VF2PF_REQ_BASE + DLB2_VF2PF_REQ_BYTES)
|
|
#define DLB2_VF2PF_RESP_BASE_WORD (DLB2_VF2PF_RESP_BASE / 4)
|
|
|
|
/* VF-initiated commands */
|
|
enum dlb2_mbox_cmd_type {
|
|
DLB2_MBOX_CMD_REGISTER,
|
|
DLB2_MBOX_CMD_UNREGISTER,
|
|
DLB2_MBOX_CMD_GET_NUM_RESOURCES,
|
|
DLB2_MBOX_CMD_CREATE_SCHED_DOMAIN,
|
|
DLB2_MBOX_CMD_RESET_SCHED_DOMAIN,
|
|
DLB2_MBOX_CMD_CREATE_LDB_QUEUE,
|
|
DLB2_MBOX_CMD_CREATE_DIR_QUEUE,
|
|
DLB2_MBOX_CMD_CREATE_LDB_PORT,
|
|
DLB2_MBOX_CMD_CREATE_DIR_PORT,
|
|
DLB2_MBOX_CMD_ENABLE_LDB_PORT,
|
|
DLB2_MBOX_CMD_DISABLE_LDB_PORT,
|
|
DLB2_MBOX_CMD_ENABLE_DIR_PORT,
|
|
DLB2_MBOX_CMD_DISABLE_DIR_PORT,
|
|
DLB2_MBOX_CMD_LDB_PORT_OWNED_BY_DOMAIN,
|
|
DLB2_MBOX_CMD_DIR_PORT_OWNED_BY_DOMAIN,
|
|
DLB2_MBOX_CMD_MAP_QID,
|
|
DLB2_MBOX_CMD_UNMAP_QID,
|
|
DLB2_MBOX_CMD_START_DOMAIN,
|
|
DLB2_MBOX_CMD_ENABLE_LDB_PORT_INTR,
|
|
DLB2_MBOX_CMD_ENABLE_DIR_PORT_INTR,
|
|
DLB2_MBOX_CMD_ARM_CQ_INTR,
|
|
DLB2_MBOX_CMD_GET_NUM_USED_RESOURCES,
|
|
DLB2_MBOX_CMD_GET_SN_ALLOCATION,
|
|
DLB2_MBOX_CMD_GET_LDB_QUEUE_DEPTH,
|
|
DLB2_MBOX_CMD_GET_DIR_QUEUE_DEPTH,
|
|
DLB2_MBOX_CMD_PENDING_PORT_UNMAPS,
|
|
DLB2_MBOX_CMD_GET_COS_BW,
|
|
DLB2_MBOX_CMD_GET_SN_OCCUPANCY,
|
|
DLB2_MBOX_CMD_QUERY_CQ_POLL_MODE,
|
|
|
|
/* NUM_QE_CMD_TYPES must be last */
|
|
NUM_DLB2_MBOX_CMD_TYPES,
|
|
};
|
|
|
|
static const char dlb2_mbox_cmd_type_strings[][128] = {
|
|
"DLB2_MBOX_CMD_REGISTER",
|
|
"DLB2_MBOX_CMD_UNREGISTER",
|
|
"DLB2_MBOX_CMD_GET_NUM_RESOURCES",
|
|
"DLB2_MBOX_CMD_CREATE_SCHED_DOMAIN",
|
|
"DLB2_MBOX_CMD_RESET_SCHED_DOMAIN",
|
|
"DLB2_MBOX_CMD_CREATE_LDB_QUEUE",
|
|
"DLB2_MBOX_CMD_CREATE_DIR_QUEUE",
|
|
"DLB2_MBOX_CMD_CREATE_LDB_PORT",
|
|
"DLB2_MBOX_CMD_CREATE_DIR_PORT",
|
|
"DLB2_MBOX_CMD_ENABLE_LDB_PORT",
|
|
"DLB2_MBOX_CMD_DISABLE_LDB_PORT",
|
|
"DLB2_MBOX_CMD_ENABLE_DIR_PORT",
|
|
"DLB2_MBOX_CMD_DISABLE_DIR_PORT",
|
|
"DLB2_MBOX_CMD_LDB_PORT_OWNED_BY_DOMAIN",
|
|
"DLB2_MBOX_CMD_DIR_PORT_OWNED_BY_DOMAIN",
|
|
"DLB2_MBOX_CMD_MAP_QID",
|
|
"DLB2_MBOX_CMD_UNMAP_QID",
|
|
"DLB2_MBOX_CMD_START_DOMAIN",
|
|
"DLB2_MBOX_CMD_ENABLE_LDB_PORT_INTR",
|
|
"DLB2_MBOX_CMD_ENABLE_DIR_PORT_INTR",
|
|
"DLB2_MBOX_CMD_ARM_CQ_INTR",
|
|
"DLB2_MBOX_CMD_GET_NUM_USED_RESOURCES",
|
|
"DLB2_MBOX_CMD_GET_SN_ALLOCATION",
|
|
"DLB2_MBOX_CMD_GET_LDB_QUEUE_DEPTH",
|
|
"DLB2_MBOX_CMD_GET_DIR_QUEUE_DEPTH",
|
|
"DLB2_MBOX_CMD_PENDING_PORT_UNMAPS",
|
|
"DLB2_MBOX_CMD_GET_COS_BW",
|
|
"DLB2_MBOX_CMD_GET_SN_OCCUPANCY",
|
|
"DLB2_MBOX_CMD_QUERY_CQ_POLL_MODE",
|
|
};
|
|
|
|
/* PF-initiated commands */
|
|
enum dlb2_mbox_vf_cmd_type {
|
|
DLB2_MBOX_VF_CMD_DOMAIN_ALERT,
|
|
DLB2_MBOX_VF_CMD_NOTIFICATION,
|
|
DLB2_MBOX_VF_CMD_IN_USE,
|
|
|
|
/* NUM_DLB2_MBOX_VF_CMD_TYPES must be last */
|
|
NUM_DLB2_MBOX_VF_CMD_TYPES,
|
|
};
|
|
|
|
static const char dlb2_mbox_vf_cmd_type_strings[][128] = {
|
|
"DLB2_MBOX_VF_CMD_DOMAIN_ALERT",
|
|
"DLB2_MBOX_VF_CMD_NOTIFICATION",
|
|
"DLB2_MBOX_VF_CMD_IN_USE",
|
|
};
|
|
|
|
#define DLB2_MBOX_CMD_TYPE(hdr) \
|
|
(((struct dlb2_mbox_req_hdr *)hdr)->type)
|
|
#define DLB2_MBOX_CMD_STRING(hdr) \
|
|
dlb2_mbox_cmd_type_strings[DLB2_MBOX_CMD_TYPE(hdr)]
|
|
|
|
enum dlb2_mbox_status_type {
|
|
DLB2_MBOX_ST_SUCCESS,
|
|
DLB2_MBOX_ST_INVALID_CMD_TYPE,
|
|
DLB2_MBOX_ST_VERSION_MISMATCH,
|
|
DLB2_MBOX_ST_INVALID_OWNER_VF,
|
|
};
|
|
|
|
static const char dlb2_mbox_status_type_strings[][128] = {
|
|
"DLB2_MBOX_ST_SUCCESS",
|
|
"DLB2_MBOX_ST_INVALID_CMD_TYPE",
|
|
"DLB2_MBOX_ST_VERSION_MISMATCH",
|
|
"DLB2_MBOX_ST_INVALID_OWNER_VF",
|
|
};
|
|
|
|
#define DLB2_MBOX_ST_TYPE(hdr) \
|
|
(((struct dlb2_mbox_resp_hdr *)hdr)->status)
|
|
#define DLB2_MBOX_ST_STRING(hdr) \
|
|
dlb2_mbox_status_type_strings[DLB2_MBOX_ST_TYPE(hdr)]
|
|
|
|
/* This structure is always the first field in a request structure */
|
|
struct dlb2_mbox_req_hdr {
|
|
u32 type;
|
|
};
|
|
|
|
/* This structure is always the first field in a response structure */
|
|
struct dlb2_mbox_resp_hdr {
|
|
u32 status;
|
|
};
|
|
|
|
struct dlb2_mbox_register_cmd_req {
|
|
struct dlb2_mbox_req_hdr hdr;
|
|
u16 min_interface_version;
|
|
u16 max_interface_version;
|
|
};
|
|
|
|
struct dlb2_mbox_register_cmd_resp {
|
|
struct dlb2_mbox_resp_hdr hdr;
|
|
u32 interface_version;
|
|
u8 pf_id;
|
|
u8 vf_id;
|
|
u8 is_auxiliary_vf;
|
|
u8 primary_vf_id;
|
|
u32 padding;
|
|
};
|
|
|
|
struct dlb2_mbox_unregister_cmd_req {
|
|
struct dlb2_mbox_req_hdr hdr;
|
|
u32 padding;
|
|
};
|
|
|
|
struct dlb2_mbox_unregister_cmd_resp {
|
|
struct dlb2_mbox_resp_hdr hdr;
|
|
u32 padding;
|
|
};
|
|
|
|
struct dlb2_mbox_get_num_resources_cmd_req {
|
|
struct dlb2_mbox_req_hdr hdr;
|
|
u32 padding;
|
|
};
|
|
|
|
struct dlb2_mbox_get_num_resources_cmd_resp {
|
|
struct dlb2_mbox_resp_hdr hdr;
|
|
u32 error_code;
|
|
u16 num_sched_domains;
|
|
u16 num_ldb_queues;
|
|
u16 num_ldb_ports;
|
|
u16 num_cos_ldb_ports[4];
|
|
u16 num_dir_ports;
|
|
u32 num_atomic_inflights;
|
|
u32 num_hist_list_entries;
|
|
u32 max_contiguous_hist_list_entries;
|
|
u16 num_ldb_credits;
|
|
u16 num_dir_credits;
|
|
};
|
|
|
|
struct dlb2_mbox_create_sched_domain_cmd_req {
|
|
struct dlb2_mbox_req_hdr hdr;
|
|
u32 num_ldb_queues;
|
|
u32 num_ldb_ports;
|
|
u32 num_cos_ldb_ports[4];
|
|
u32 num_dir_ports;
|
|
u32 num_atomic_inflights;
|
|
u32 num_hist_list_entries;
|
|
u32 num_ldb_credits;
|
|
u32 num_dir_credits;
|
|
u8 cos_strict;
|
|
u8 padding0[3];
|
|
u32 padding1;
|
|
};
|
|
|
|
struct dlb2_mbox_create_sched_domain_cmd_resp {
|
|
struct dlb2_mbox_resp_hdr hdr;
|
|
u32 error_code;
|
|
u32 status;
|
|
u32 id;
|
|
};
|
|
|
|
struct dlb2_mbox_reset_sched_domain_cmd_req {
|
|
struct dlb2_mbox_req_hdr hdr;
|
|
u32 id;
|
|
};
|
|
|
|
struct dlb2_mbox_reset_sched_domain_cmd_resp {
|
|
struct dlb2_mbox_resp_hdr hdr;
|
|
u32 error_code;
|
|
};
|
|
|
|
struct dlb2_mbox_create_ldb_queue_cmd_req {
|
|
struct dlb2_mbox_req_hdr hdr;
|
|
u32 domain_id;
|
|
u32 num_sequence_numbers;
|
|
u32 num_qid_inflights;
|
|
u32 num_atomic_inflights;
|
|
u32 lock_id_comp_level;
|
|
u32 depth_threshold;
|
|
u32 padding;
|
|
};
|
|
|
|
struct dlb2_mbox_create_ldb_queue_cmd_resp {
|
|
struct dlb2_mbox_resp_hdr hdr;
|
|
u32 error_code;
|
|
u32 status;
|
|
u32 id;
|
|
};
|
|
|
|
struct dlb2_mbox_create_dir_queue_cmd_req {
|
|
struct dlb2_mbox_req_hdr hdr;
|
|
u32 domain_id;
|
|
u32 port_id;
|
|
u32 depth_threshold;
|
|
};
|
|
|
|
struct dlb2_mbox_create_dir_queue_cmd_resp {
|
|
struct dlb2_mbox_resp_hdr hdr;
|
|
u32 error_code;
|
|
u32 status;
|
|
u32 id;
|
|
};
|
|
|
|
struct dlb2_mbox_create_ldb_port_cmd_req {
|
|
struct dlb2_mbox_req_hdr hdr;
|
|
u32 domain_id;
|
|
u16 cq_depth;
|
|
u16 cq_history_list_size;
|
|
u8 cos_id;
|
|
u8 cos_strict;
|
|
u16 padding1;
|
|
u64 cq_base_address;
|
|
};
|
|
|
|
struct dlb2_mbox_create_ldb_port_cmd_resp {
|
|
struct dlb2_mbox_resp_hdr hdr;
|
|
u32 error_code;
|
|
u32 status;
|
|
u32 id;
|
|
};
|
|
|
|
struct dlb2_mbox_create_dir_port_cmd_req {
|
|
struct dlb2_mbox_req_hdr hdr;
|
|
u32 domain_id;
|
|
u64 cq_base_address;
|
|
u16 cq_depth;
|
|
u16 padding0;
|
|
s32 queue_id;
|
|
};
|
|
|
|
struct dlb2_mbox_create_dir_port_cmd_resp {
|
|
struct dlb2_mbox_resp_hdr hdr;
|
|
u32 error_code;
|
|
u32 status;
|
|
u32 id;
|
|
};
|
|
|
|
struct dlb2_mbox_enable_ldb_port_cmd_req {
|
|
struct dlb2_mbox_req_hdr hdr;
|
|
u32 domain_id;
|
|
u32 port_id;
|
|
u32 padding;
|
|
};
|
|
|
|
struct dlb2_mbox_enable_ldb_port_cmd_resp {
|
|
struct dlb2_mbox_resp_hdr hdr;
|
|
u32 error_code;
|
|
u32 status;
|
|
u32 padding;
|
|
};
|
|
|
|
struct dlb2_mbox_disable_ldb_port_cmd_req {
|
|
struct dlb2_mbox_req_hdr hdr;
|
|
u32 domain_id;
|
|
u32 port_id;
|
|
u32 padding;
|
|
};
|
|
|
|
struct dlb2_mbox_disable_ldb_port_cmd_resp {
|
|
struct dlb2_mbox_resp_hdr hdr;
|
|
u32 error_code;
|
|
u32 status;
|
|
u32 padding;
|
|
};
|
|
|
|
struct dlb2_mbox_enable_dir_port_cmd_req {
|
|
struct dlb2_mbox_req_hdr hdr;
|
|
u32 domain_id;
|
|
u32 port_id;
|
|
u32 padding;
|
|
};
|
|
|
|
struct dlb2_mbox_enable_dir_port_cmd_resp {
|
|
struct dlb2_mbox_resp_hdr hdr;
|
|
u32 error_code;
|
|
u32 status;
|
|
u32 padding;
|
|
};
|
|
|
|
struct dlb2_mbox_disable_dir_port_cmd_req {
|
|
struct dlb2_mbox_req_hdr hdr;
|
|
u32 domain_id;
|
|
u32 port_id;
|
|
u32 padding;
|
|
};
|
|
|
|
struct dlb2_mbox_disable_dir_port_cmd_resp {
|
|
struct dlb2_mbox_resp_hdr hdr;
|
|
u32 error_code;
|
|
u32 status;
|
|
u32 padding;
|
|
};
|
|
|
|
struct dlb2_mbox_ldb_port_owned_by_domain_cmd_req {
|
|
struct dlb2_mbox_req_hdr hdr;
|
|
u32 domain_id;
|
|
u32 port_id;
|
|
u32 padding;
|
|
};
|
|
|
|
struct dlb2_mbox_ldb_port_owned_by_domain_cmd_resp {
|
|
struct dlb2_mbox_resp_hdr hdr;
|
|
s32 owned;
|
|
};
|
|
|
|
struct dlb2_mbox_dir_port_owned_by_domain_cmd_req {
|
|
struct dlb2_mbox_req_hdr hdr;
|
|
u32 domain_id;
|
|
u32 port_id;
|
|
u32 padding;
|
|
};
|
|
|
|
struct dlb2_mbox_dir_port_owned_by_domain_cmd_resp {
|
|
struct dlb2_mbox_resp_hdr hdr;
|
|
s32 owned;
|
|
};
|
|
|
|
struct dlb2_mbox_map_qid_cmd_req {
|
|
struct dlb2_mbox_req_hdr hdr;
|
|
u32 domain_id;
|
|
u32 port_id;
|
|
u32 qid;
|
|
u32 priority;
|
|
u32 padding0;
|
|
};
|
|
|
|
struct dlb2_mbox_map_qid_cmd_resp {
|
|
struct dlb2_mbox_resp_hdr hdr;
|
|
u32 error_code;
|
|
u32 status;
|
|
u32 id;
|
|
};
|
|
|
|
struct dlb2_mbox_unmap_qid_cmd_req {
|
|
struct dlb2_mbox_req_hdr hdr;
|
|
u32 domain_id;
|
|
u32 port_id;
|
|
u32 qid;
|
|
};
|
|
|
|
struct dlb2_mbox_unmap_qid_cmd_resp {
|
|
struct dlb2_mbox_resp_hdr hdr;
|
|
u32 error_code;
|
|
u32 status;
|
|
u32 padding;
|
|
};
|
|
|
|
struct dlb2_mbox_start_domain_cmd_req {
|
|
struct dlb2_mbox_req_hdr hdr;
|
|
u32 domain_id;
|
|
};
|
|
|
|
struct dlb2_mbox_start_domain_cmd_resp {
|
|
struct dlb2_mbox_resp_hdr hdr;
|
|
u32 error_code;
|
|
u32 status;
|
|
u32 padding;
|
|
};
|
|
|
|
struct dlb2_mbox_enable_ldb_port_intr_cmd_req {
|
|
struct dlb2_mbox_req_hdr hdr;
|
|
u16 port_id;
|
|
u16 thresh;
|
|
u16 vector;
|
|
u16 owner_vf;
|
|
u16 reserved[2];
|
|
};
|
|
|
|
struct dlb2_mbox_enable_ldb_port_intr_cmd_resp {
|
|
struct dlb2_mbox_resp_hdr hdr;
|
|
u32 error_code;
|
|
u32 status;
|
|
u32 padding;
|
|
};
|
|
|
|
struct dlb2_mbox_enable_dir_port_intr_cmd_req {
|
|
struct dlb2_mbox_req_hdr hdr;
|
|
u16 port_id;
|
|
u16 thresh;
|
|
u16 vector;
|
|
u16 owner_vf;
|
|
u16 reserved[2];
|
|
};
|
|
|
|
struct dlb2_mbox_enable_dir_port_intr_cmd_resp {
|
|
struct dlb2_mbox_resp_hdr hdr;
|
|
u32 error_code;
|
|
u32 status;
|
|
u32 padding;
|
|
};
|
|
|
|
struct dlb2_mbox_arm_cq_intr_cmd_req {
|
|
struct dlb2_mbox_req_hdr hdr;
|
|
u32 domain_id;
|
|
u32 port_id;
|
|
u32 is_ldb;
|
|
};
|
|
|
|
struct dlb2_mbox_arm_cq_intr_cmd_resp {
|
|
struct dlb2_mbox_resp_hdr hdr;
|
|
u32 error_code;
|
|
u32 status;
|
|
u32 padding0;
|
|
};
|
|
|
|
/*
|
|
* The alert_id and aux_alert_data follows the format of the alerts defined in
|
|
* dlb2_types.h. The alert id contains an enum dlb2_domain_alert_id value, and
|
|
* the aux_alert_data value varies depending on the alert.
|
|
*/
|
|
struct dlb2_mbox_vf_alert_cmd_req {
|
|
struct dlb2_mbox_req_hdr hdr;
|
|
u32 domain_id;
|
|
u32 alert_id;
|
|
u32 aux_alert_data;
|
|
};
|
|
|
|
enum dlb2_mbox_vf_notification_type {
|
|
DLB2_MBOX_VF_NOTIFICATION_PRE_RESET,
|
|
DLB2_MBOX_VF_NOTIFICATION_POST_RESET,
|
|
|
|
/* NUM_DLB2_MBOX_VF_NOTIFICATION_TYPES must be last */
|
|
NUM_DLB2_MBOX_VF_NOTIFICATION_TYPES,
|
|
};
|
|
|
|
struct dlb2_mbox_vf_notification_cmd_req {
|
|
struct dlb2_mbox_req_hdr hdr;
|
|
u32 notification;
|
|
};
|
|
|
|
struct dlb2_mbox_vf_in_use_cmd_req {
|
|
struct dlb2_mbox_req_hdr hdr;
|
|
u32 padding;
|
|
};
|
|
|
|
struct dlb2_mbox_vf_in_use_cmd_resp {
|
|
struct dlb2_mbox_resp_hdr hdr;
|
|
u32 in_use;
|
|
};
|
|
|
|
struct dlb2_mbox_get_sn_allocation_cmd_req {
|
|
struct dlb2_mbox_req_hdr hdr;
|
|
u32 group_id;
|
|
};
|
|
|
|
struct dlb2_mbox_get_sn_allocation_cmd_resp {
|
|
struct dlb2_mbox_resp_hdr hdr;
|
|
u32 num;
|
|
};
|
|
|
|
struct dlb2_mbox_get_ldb_queue_depth_cmd_req {
|
|
struct dlb2_mbox_req_hdr hdr;
|
|
u32 domain_id;
|
|
u32 queue_id;
|
|
u32 padding;
|
|
};
|
|
|
|
struct dlb2_mbox_get_ldb_queue_depth_cmd_resp {
|
|
struct dlb2_mbox_resp_hdr hdr;
|
|
u32 error_code;
|
|
u32 status;
|
|
u32 depth;
|
|
};
|
|
|
|
struct dlb2_mbox_get_dir_queue_depth_cmd_req {
|
|
struct dlb2_mbox_req_hdr hdr;
|
|
u32 domain_id;
|
|
u32 queue_id;
|
|
u32 padding;
|
|
};
|
|
|
|
struct dlb2_mbox_get_dir_queue_depth_cmd_resp {
|
|
struct dlb2_mbox_resp_hdr hdr;
|
|
u32 error_code;
|
|
u32 status;
|
|
u32 depth;
|
|
};
|
|
|
|
struct dlb2_mbox_pending_port_unmaps_cmd_req {
|
|
struct dlb2_mbox_req_hdr hdr;
|
|
u32 domain_id;
|
|
u32 port_id;
|
|
u32 padding;
|
|
};
|
|
|
|
struct dlb2_mbox_pending_port_unmaps_cmd_resp {
|
|
struct dlb2_mbox_resp_hdr hdr;
|
|
u32 error_code;
|
|
u32 status;
|
|
u32 num;
|
|
};
|
|
|
|
struct dlb2_mbox_get_cos_bw_cmd_req {
|
|
struct dlb2_mbox_req_hdr hdr;
|
|
u32 cos_id;
|
|
};
|
|
|
|
struct dlb2_mbox_get_cos_bw_cmd_resp {
|
|
struct dlb2_mbox_resp_hdr hdr;
|
|
u32 num;
|
|
};
|
|
|
|
struct dlb2_mbox_get_sn_occupancy_cmd_req {
|
|
struct dlb2_mbox_req_hdr hdr;
|
|
u32 group_id;
|
|
};
|
|
|
|
struct dlb2_mbox_get_sn_occupancy_cmd_resp {
|
|
struct dlb2_mbox_resp_hdr hdr;
|
|
u32 num;
|
|
};
|
|
|
|
struct dlb2_mbox_query_cq_poll_mode_cmd_req {
|
|
struct dlb2_mbox_req_hdr hdr;
|
|
u32 padding;
|
|
};
|
|
|
|
struct dlb2_mbox_query_cq_poll_mode_cmd_resp {
|
|
struct dlb2_mbox_resp_hdr hdr;
|
|
u32 error_code;
|
|
u32 status;
|
|
u32 mode;
|
|
};
|
|
|
|
#endif /* __DLB2_BASE_DLB2_MBOX_H */
|