The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/ice/ice_flex_pipe.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /* SPDX-License-Identifier: BSD-3-Clause */
    2 /*  Copyright (c) 2021, Intel Corporation
    3  *  All rights reserved.
    4  *
    5  *  Redistribution and use in source and binary forms, with or without
    6  *  modification, are permitted provided that the following conditions are met:
    7  *
    8  *   1. Redistributions of source code must retain the above copyright notice,
    9  *      this list of conditions and the following disclaimer.
   10  *
   11  *   2. Redistributions in binary form must reproduce the above copyright
   12  *      notice, this list of conditions and the following disclaimer in the
   13  *      documentation and/or other materials provided with the distribution.
   14  *
   15  *   3. Neither the name of the Intel Corporation nor the names of its
   16  *      contributors may be used to endorse or promote products derived from
   17  *      this software without specific prior written permission.
   18  *
   19  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
   20  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   21  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   22  *  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
   23  *  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
   24  *  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   25  *  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   26  *  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   27  *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   28  *  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   29  *  POSSIBILITY OF SUCH DAMAGE.
   30  */
   31 /*$FreeBSD$*/
   32 
   33 #ifndef _ICE_FLEX_PIPE_H_
   34 #define _ICE_FLEX_PIPE_H_
   35 
   36 #include "ice_type.h"
   37 
   38 /* Package minimal version supported */
   39 #define ICE_PKG_SUPP_VER_MAJ    1
   40 #define ICE_PKG_SUPP_VER_MNR    3
   41 
   42 /* Package format version */
   43 #define ICE_PKG_FMT_VER_MAJ     1
   44 #define ICE_PKG_FMT_VER_MNR     0
   45 #define ICE_PKG_FMT_VER_UPD     0
   46 #define ICE_PKG_FMT_VER_DFT     0
   47 
   48 #define ICE_PKG_CNT 4
   49 
   50 enum ice_status
   51 ice_update_pkg(struct ice_hw *hw, struct ice_buf *bufs, u32 count);
   52 enum ice_status
   53 ice_find_prot_off(struct ice_hw *hw, enum ice_block blk, u8 prof, u16 fv_idx,
   54                   u8 *prot, u16 *off);
   55 enum ice_status
   56 ice_find_label_value(struct ice_seg *ice_seg, char const *name, u32 type,
   57                      u16 *value);
   58 void
   59 ice_get_sw_fv_bitmap(struct ice_hw *hw, enum ice_prof_type type,
   60                      ice_bitmap_t *bm);
   61 void
   62 ice_init_prof_result_bm(struct ice_hw *hw);
   63 enum ice_status
   64 ice_get_sw_fv_list(struct ice_hw *hw, u8 *prot_ids, u16 ids_cnt,
   65                    ice_bitmap_t *bm, struct LIST_HEAD_TYPE *fv_list);
   66 enum ice_status
   67 ice_pkg_buf_unreserve_section(struct ice_buf_build *bld, u16 count);
   68 u16 ice_pkg_buf_get_free_space(struct ice_buf_build *bld);
   69 enum ice_status
   70 ice_aq_upload_section(struct ice_hw *hw, struct ice_buf_hdr *pkg_buf,
   71                       u16 buf_size, struct ice_sq_cd *cd);
   72 bool
   73 ice_get_open_tunnel_port(struct ice_hw *hw, enum ice_tunnel_type type,
   74                          u16 *port);
   75 enum ice_status
   76 ice_create_tunnel(struct ice_hw *hw, enum ice_tunnel_type type, u16 port);
   77 enum ice_status ice_destroy_tunnel(struct ice_hw *hw, u16 port, bool all);
   78 bool ice_tunnel_port_in_use(struct ice_hw *hw, u16 port, u16 *index);
   79 bool
   80 ice_tunnel_get_type(struct ice_hw *hw, u16 port, enum ice_tunnel_type *type);
   81 enum ice_status ice_replay_tunnels(struct ice_hw *hw);
   82 
   83 /* XLT1/PType group functions */
   84 enum ice_status ice_ptg_update_xlt1(struct ice_hw *hw, enum ice_block blk);
   85 void ice_ptg_free(struct ice_hw *hw, enum ice_block blk, u8 ptg);
   86 
   87 /* XLT2/VSI group functions */
   88 enum ice_status ice_vsig_update_xlt2(struct ice_hw *hw, enum ice_block blk);
   89 enum ice_status
   90 ice_vsig_find_vsi(struct ice_hw *hw, enum ice_block blk, u16 vsi, u16 *vsig);
   91 enum ice_status
   92 ice_add_prof(struct ice_hw *hw, enum ice_block blk, u64 id, u8 ptypes[],
   93              struct ice_fv_word *es);
   94 struct ice_prof_map *
   95 ice_search_prof_id(struct ice_hw *hw, enum ice_block blk, u64 id);
   96 enum ice_status
   97 ice_add_vsi_flow(struct ice_hw *hw, enum ice_block blk, u16 vsi, u16 vsig);
   98 enum ice_status
   99 ice_add_prof_id_flow(struct ice_hw *hw, enum ice_block blk, u16 vsi, u64 hdl);
  100 enum ice_status
  101 ice_rem_prof_id_flow(struct ice_hw *hw, enum ice_block blk, u16 vsi, u64 hdl);
  102 enum ice_status
  103 ice_set_prof_context(struct ice_hw *hw, enum ice_block blk, u64 id, u64 cntxt);
  104 enum ice_status
  105 ice_get_prof_context(struct ice_hw *hw, enum ice_block blk, u64 id, u64 *cntxt);
  106 enum ice_status ice_init_pkg(struct ice_hw *hw, u8 *buff, u32 len);
  107 enum ice_status
  108 ice_copy_and_init_pkg(struct ice_hw *hw, const u8 *buf, u32 len);
  109 enum ice_status ice_init_hw_tbls(struct ice_hw *hw);
  110 void ice_free_seg(struct ice_hw *hw);
  111 void ice_fill_blk_tbls(struct ice_hw *hw);
  112 void ice_clear_hw_tbls(struct ice_hw *hw);
  113 void ice_free_hw_tbls(struct ice_hw *hw);
  114 enum ice_status
  115 ice_add_flow(struct ice_hw *hw, enum ice_block blk, u16 vsi[], u8 count,
  116              u64 id);
  117 enum ice_status
  118 ice_rem_flow(struct ice_hw *hw, enum ice_block blk, u16 vsi[], u8 count,
  119              u64 id);
  120 enum ice_status
  121 ice_rem_prof(struct ice_hw *hw, enum ice_block blk, u64 id);
  122 struct ice_buf_build *
  123 ice_pkg_buf_alloc_single_section(struct ice_hw *hw, u32 type, u16 size,
  124                                  void **section);
  125 struct ice_buf *ice_pkg_buf(struct ice_buf_build *bld);
  126 void ice_pkg_buf_free(struct ice_hw *hw, struct ice_buf_build *bld);
  127 
  128 #endif /* _ICE_FLEX_PIPE_H_ */

Cache object: f12bc7002ba34240066eb8510e9e5d56


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.