003 File Manager
Current Path:
/usr/src/sys/dev/ice
usr
/
src
/
sys
/
dev
/
ice
/
📁
..
📄
ice_adminq_cmd.h
(98.8 KB)
📄
ice_alloc.h
(1.91 KB)
📄
ice_bitops.h
(14.86 KB)
📄
ice_common.c
(149.75 KB)
📄
ice_common.h
(11.15 KB)
📄
ice_common_sysctls.h
(4.08 KB)
📄
ice_common_txrx.h
(12.26 KB)
📄
ice_controlq.c
(35.25 KB)
📄
ice_controlq.h
(4.23 KB)
📄
ice_dcb.c
(45.57 KB)
📄
ice_dcb.h
(8.82 KB)
📄
ice_devids.h
(3.54 KB)
📄
ice_drv_info.h
(8.23 KB)
📄
ice_features.h
(3.21 KB)
📄
ice_flex_pipe.c
(148.76 KB)
📄
ice_flex_pipe.h
(4.99 KB)
📄
ice_flex_type.h
(17.25 KB)
📄
ice_flow.c
(62.78 KB)
📄
ice_flow.h
(11.82 KB)
📄
ice_hw_autogen.h
(493.23 KB)
📄
ice_iflib.h
(8.61 KB)
📄
ice_iflib_recovery_txrx.c
(6.17 KB)
📄
ice_iflib_sysctls.h
(1.99 KB)
📄
ice_iflib_txrx.c
(11.74 KB)
📄
ice_lan_tx_rx.h
(66.59 KB)
📄
ice_lib.c
(241.93 KB)
📄
ice_lib.h
(25.04 KB)
📄
ice_nvm.c
(59.69 KB)
📄
ice_nvm.h
(6.98 KB)
📄
ice_opts.h
(1.97 KB)
📄
ice_osdep.c
(11.88 KB)
📄
ice_osdep.h
(14.52 KB)
📄
ice_protocol_type.h
(8.79 KB)
📄
ice_resmgr.c
(7.08 KB)
📄
ice_resmgr.h
(3.92 KB)
📄
ice_rss.h
(4.61 KB)
📄
ice_sbq_cmd.h
(3.08 KB)
📄
ice_sched.c
(159.95 KB)
📄
ice_sched.h
(9.9 KB)
📄
ice_sriov.c
(20.63 KB)
📄
ice_sriov.h
(2.85 KB)
📄
ice_status.h
(2.74 KB)
📄
ice_strings.c
(21.03 KB)
📄
ice_switch.c
(124.76 KB)
📄
ice_switch.h
(15.69 KB)
📄
ice_type.h
(38.07 KB)
📄
ice_vlan_mode.c
(2.5 KB)
📄
ice_vlan_mode.h
(2.67 KB)
📄
if_ice_iflib.c
(84.19 KB)
📄
virtchnl.h
(39.09 KB)
📄
virtchnl_inline_ipsec.h
(15.02 KB)
Editing: ice_controlq.h
/* SPDX-License-Identifier: BSD-3-Clause */ /* Copyright (c) 2021, Intel Corporation * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * 3. Neither the name of the Intel Corporation nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /*$FreeBSD$*/ #ifndef _ICE_CONTROLQ_H_ #define _ICE_CONTROLQ_H_ #include "ice_adminq_cmd.h" /* Maximum buffer lengths for all control queue types */ #define ICE_AQ_MAX_BUF_LEN 4096 #define ICE_MBXQ_MAX_BUF_LEN 4096 #define ICE_CTL_Q_DESC(R, i) \ (&(((struct ice_aq_desc *)((R).desc_buf.va))[i])) #define ICE_CTL_Q_DESC_UNUSED(R) \ (u16)((((R)->next_to_clean > (R)->next_to_use) ? 0 : (R)->count) + \ (R)->next_to_clean - (R)->next_to_use - 1) /* Defines that help manage the driver vs FW API checks. * Take a look at ice_aq_ver_check in ice_controlq.c for actual usage. */ #define EXP_FW_API_VER_BRANCH 0x00 #define EXP_FW_API_VER_MAJOR 0x01 #define EXP_FW_API_VER_MINOR 0x05 /* Different control queue types: These are mainly for SW consumption. */ enum ice_ctl_q { ICE_CTL_Q_UNKNOWN = 0, ICE_CTL_Q_ADMIN, ICE_CTL_Q_MAILBOX, }; /* Control Queue timeout settings - max delay 1s */ #define ICE_CTL_Q_SQ_CMD_TIMEOUT 10000 /* Count 10000 times */ #define ICE_CTL_Q_SQ_CMD_USEC 100 /* Check every 100usec */ #define ICE_CTL_Q_ADMIN_INIT_TIMEOUT 10 /* Count 10 times */ #define ICE_CTL_Q_ADMIN_INIT_MSEC 100 /* Check every 100msec */ struct ice_ctl_q_ring { void *dma_head; /* Virtual address to DMA head */ struct ice_dma_mem desc_buf; /* descriptor ring memory */ void *cmd_buf; /* command buffer memory */ union { struct ice_dma_mem *sq_bi; struct ice_dma_mem *rq_bi; } r; u16 count; /* Number of descriptors */ /* used for interrupt processing */ u16 next_to_use; u16 next_to_clean; /* used for queue tracking */ u32 head; u32 tail; u32 len; u32 bah; u32 bal; u32 len_mask; u32 len_ena_mask; u32 len_crit_mask; u32 head_mask; }; /* sq transaction details */ struct ice_sq_cd { struct ice_aq_desc *wb_desc; }; #define ICE_CTL_Q_DETAILS(R, i) (&(((struct ice_sq_cd *)((R).cmd_buf))[i])) /* rq event information */ struct ice_rq_event_info { struct ice_aq_desc desc; u16 msg_len; u16 buf_len; u8 *msg_buf; }; /* Control Queue information */ struct ice_ctl_q_info { enum ice_ctl_q qtype; enum ice_aq_err rq_last_status; /* last status on receive queue */ struct ice_ctl_q_ring rq; /* receive queue */ struct ice_ctl_q_ring sq; /* send queue */ u32 sq_cmd_timeout; /* send queue cmd write back timeout */ u16 num_rq_entries; /* receive queue depth */ u16 num_sq_entries; /* send queue depth */ u16 rq_buf_size; /* receive queue buffer size */ u16 sq_buf_size; /* send queue buffer size */ enum ice_aq_err sq_last_status; /* last status on send queue */ struct ice_lock sq_lock; /* Send queue lock */ struct ice_lock rq_lock; /* Receive queue lock */ }; #endif /* _ICE_CONTROLQ_H_ */
Upload File
Create Folder