]>
git.proxmox.com Git - ceph.git/blob - ceph/src/spdk/dpdk/drivers/net/ice/base/ice_flex_pipe.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2001-2019
5 #ifndef _ICE_FLEX_PIPE_H_
6 #define _ICE_FLEX_PIPE_H_
10 /* Package format version */
11 #define ICE_PKG_FMT_VER_MAJ 1
12 #define ICE_PKG_FMT_VER_MNR 0
13 #define ICE_PKG_FMT_VER_UPD 0
14 #define ICE_PKG_FMT_VER_DFT 0
17 ice_update_pkg(struct ice_hw
*hw
, struct ice_buf
*bufs
, u32 count
);
19 struct ice_generic_seg_hdr
*
20 ice_find_seg_in_pkg(struct ice_hw
*hw
, u32 seg_type
,
21 struct ice_pkg_hdr
*pkg_hdr
);
22 enum ice_status
ice_download_pkg(struct ice_hw
*hw
, struct ice_seg
*ice_seg
);
25 ice_init_pkg_info(struct ice_hw
*hw
, struct ice_pkg_hdr
*pkg_header
);
27 void ice_init_pkg_hints(struct ice_hw
*hw
, struct ice_seg
*ice_seg
);
30 ice_find_label_value(struct ice_seg
*ice_seg
, char const *name
, u32 type
,
33 ice_get_sw_fv_list(struct ice_hw
*hw
, u16
*prot_ids
, u8 ids_cnt
,
34 struct LIST_HEAD_TYPE
*fv_list
);
36 ice_aq_upload_section(struct ice_hw
*hw
, struct ice_buf_hdr
*pkg_buf
,
37 u16 buf_size
, struct ice_sq_cd
*cd
);
40 ice_pkg_buf_unreserve_section(struct ice_buf_build
*bld
, u16 count
);
41 u16
ice_pkg_buf_get_free_space(struct ice_buf_build
*bld
);
42 u16
ice_pkg_buf_get_active_sections(struct ice_buf_build
*bld
);
44 /* package buffer building routines */
46 struct ice_buf_build
*ice_pkg_buf_alloc(struct ice_hw
*hw
);
48 ice_pkg_buf_reserve_section(struct ice_buf_build
*bld
, u16 count
);
49 void *ice_pkg_buf_alloc_section(struct ice_buf_build
*bld
, u32 type
, u16 size
);
50 struct ice_buf
*ice_pkg_buf(struct ice_buf_build
*bld
);
51 void ice_pkg_buf_free(struct ice_hw
*hw
, struct ice_buf_build
*bld
);
53 /* XLT1/PType group functions */
54 enum ice_status
ice_ptg_update_xlt1(struct ice_hw
*hw
, enum ice_block blk
);
56 ice_ptg_find_ptype(struct ice_hw
*hw
, enum ice_block blk
, u16 ptype
, u8
*ptg
);
57 u8
ice_ptg_alloc(struct ice_hw
*hw
, enum ice_block blk
);
58 void ice_ptg_free(struct ice_hw
*hw
, enum ice_block blk
, u8 ptg
);
60 ice_ptg_add_mv_ptype(struct ice_hw
*hw
, enum ice_block blk
, u16 ptype
, u8 ptg
);
62 /* XLT2/VSI group functions */
63 enum ice_status
ice_vsig_update_xlt2(struct ice_hw
*hw
, enum ice_block blk
);
65 ice_vsig_find_vsi(struct ice_hw
*hw
, enum ice_block blk
, u16 vsi
, u16
*vsig
);
67 ice_find_dup_props_vsig(struct ice_hw
*hw
, enum ice_block blk
,
68 struct LIST_HEAD_TYPE
*chs
, u16
*vsig
);
71 ice_vsig_add_mv_vsi(struct ice_hw
*hw
, enum ice_block blk
, u16 vsi
, u16 vsig
);
72 enum ice_status
ice_vsig_free(struct ice_hw
*hw
, enum ice_block blk
, u16 vsig
);
74 ice_vsig_add_mv_vsi(struct ice_hw
*hw
, enum ice_block blk
, u16 vsi
, u16 vsig
);
76 ice_vsig_remove_vsi(struct ice_hw
*hw
, enum ice_block blk
, u16 vsi
, u16 vsig
);
78 ice_add_prof(struct ice_hw
*hw
, enum ice_block blk
, u64 id
, u8 ptypes
[],
79 struct ice_fv_word
*es
);
81 ice_search_prof_id(struct ice_hw
*hw
, enum ice_block blk
, u64 id
);
83 ice_add_prof_id_flow(struct ice_hw
*hw
, enum ice_block blk
, u16 vsi
, u64 hdl
);
85 ice_rem_prof_id_flow(struct ice_hw
*hw
, enum ice_block blk
, u16 vsi
, u64 hdl
);
87 ice_set_prof_context(struct ice_hw
*hw
, enum ice_block blk
, u64 id
, u64 cntxt
);
89 ice_get_prof_context(struct ice_hw
*hw
, enum ice_block blk
, u64 id
, u64
*cntxt
);
91 ice_init_pkg(struct ice_hw
*hw
, u8
*buff
, u32 len
);
93 ice_copy_and_init_pkg(struct ice_hw
*hw
, const u8
*buf
, u32 len
);
94 enum ice_status
ice_init_hw_tbls(struct ice_hw
*hw
);
95 void ice_free_seg(struct ice_hw
*hw
);
96 void ice_free_hw_tbls(struct ice_hw
*hw
);
98 ice_add_flow(struct ice_hw
*hw
, enum ice_block blk
, u16 vsi
[], u8 count
,
101 ice_rem_flow(struct ice_hw
*hw
, enum ice_block blk
, u16 vsi
[], u8 count
,
104 ice_rem_prof(struct ice_hw
*hw
, enum ice_block blk
, u64 id
);
107 ice_set_key(u8
*key
, u16 size
, u8
*val
, u8
*upd
, u8
*dc
, u8
*nm
, u16 off
,
109 #endif /* _ICE_FLEX_PIPE_H_ */