X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fice%2Fbase%2Fice_flex_type.h;h=8f33efdd627ac6b341004b40771236c43d1c7c40;hb=d647871c50ab3ac7dffc0b13959491027b210659;hp=4e4ba4deb02a54ae4aecb5705c1c5085cc4f0905;hpb=85351ff53ecddb51d8fdfac3ea0646f2ccca7611;p=dpdk.git diff --git a/drivers/net/ice/base/ice_flex_type.h b/drivers/net/ice/base/ice_flex_type.h index 4e4ba4deb0..8f33efdd62 100644 --- a/drivers/net/ice/base/ice_flex_type.h +++ b/drivers/net/ice/base/ice_flex_type.h @@ -1,5 +1,5 @@ /* SPDX-License-Identifier: BSD-3-Clause - * Copyright(c) 2001-2020 + * Copyright(c) 2001-2020 Intel Corporation */ #ifndef _ICE_FLEX_TYPE_H_ @@ -27,7 +27,7 @@ struct ice_fv { struct ice_pkg_hdr { struct ice_pkg_ver pkg_format_ver; __le32 seg_count; - __le32 seg_offset[1]; + __le32 seg_offset[STRUCT_HACK_VAR_LEN]; }; /* generic segment */ @@ -58,12 +58,12 @@ struct ice_device_id_entry { struct ice_seg { struct ice_generic_seg_hdr hdr; __le32 device_table_count; - struct ice_device_id_entry device_table[1]; + struct ice_device_id_entry device_table[STRUCT_HACK_VAR_LEN]; }; struct ice_nvm_table { __le32 table_count; - __le32 vers[1]; + __le32 vers[STRUCT_HACK_VAR_LEN]; }; struct ice_buf { @@ -73,7 +73,7 @@ struct ice_buf { struct ice_buf_table { __le32 buf_count; - struct ice_buf buf_array[1]; + struct ice_buf buf_array[STRUCT_HACK_VAR_LEN]; }; /* global metadata specific segment */ @@ -106,11 +106,12 @@ struct ice_section_entry { struct ice_buf_hdr { __le16 section_count; __le16 data_end; - struct ice_section_entry section_entry[1]; + struct ice_section_entry section_entry[STRUCT_HACK_VAR_LEN]; }; #define ICE_MAX_ENTRIES_IN_BUF(hd_sz, ent_sz) ((ICE_PKG_BUF_SIZE - \ - sizeof(struct ice_buf_hdr) - (hd_sz)) / (ent_sz)) + ice_struct_size((struct ice_buf_hdr *)0, section_entry, 1) - (hd_sz)) /\ + (ent_sz)) /* ice package section IDs */ #define ICE_SID_XLT0_SW 10 @@ -400,17 +401,17 @@ struct ice_label { struct ice_label_section { __le16 count; - struct ice_label label[1]; + struct ice_label label[STRUCT_HACK_VAR_LEN]; }; #define ICE_MAX_LABELS_IN_BUF ICE_MAX_ENTRIES_IN_BUF( \ - sizeof(struct ice_label_section) - sizeof(struct ice_label), \ - sizeof(struct ice_label)) + ice_struct_size((struct ice_label_section *)0, label, 1) - \ + sizeof(struct ice_label), sizeof(struct ice_label)) struct ice_sw_fv_section { __le16 count; __le16 base_offset; - struct ice_fv fv[1]; + struct ice_fv fv[STRUCT_HACK_VAR_LEN]; }; struct ice_sw_fv_list_entry { @@ -455,43 +456,32 @@ struct ice_boost_tcam_entry { struct ice_boost_tcam_section { __le16 count; __le16 reserved; - struct ice_boost_tcam_entry tcam[1]; + struct ice_boost_tcam_entry tcam[STRUCT_HACK_VAR_LEN]; }; #define ICE_MAX_BST_TCAMS_IN_BUF ICE_MAX_ENTRIES_IN_BUF( \ - sizeof(struct ice_boost_tcam_section) - \ + ice_struct_size((struct ice_boost_tcam_section *)0, tcam, 1) - \ sizeof(struct ice_boost_tcam_entry), \ sizeof(struct ice_boost_tcam_entry)) -#pragma pack(1) struct ice_xlt1_section { __le16 count; __le16 offset; - u8 value[1]; + u8 value[STRUCT_HACK_VAR_LEN]; }; -#pragma pack() - -#define ICE_XLT1_SIZE(n) (sizeof(struct ice_xlt1_section) + \ - (sizeof(u8) * ((n) - 1))) struct ice_xlt2_section { __le16 count; __le16 offset; - __le16 value[1]; + __le16 value[STRUCT_HACK_VAR_LEN]; }; -#define ICE_XLT2_SIZE(n) (sizeof(struct ice_xlt2_section) + \ - (sizeof(u16) * ((n) - 1))) - struct ice_prof_redir_section { __le16 count; __le16 offset; - u8 redir_value[1]; + u8 redir_value[STRUCT_HACK_VAR_LEN]; }; -#define ICE_PROF_REDIR_SIZE(n) (sizeof(struct ice_prof_redir_section) + \ - (sizeof(u8) * ((n) - 1))) - /* package buffer building */ struct ice_buf_build { @@ -548,7 +538,7 @@ struct ice_tunnel_table { struct ice_pkg_es { __le16 count; __le16 offset; - struct ice_fv_word es[1]; + struct ice_fv_word es[STRUCT_HACK_VAR_LEN]; }; struct ice_es { @@ -703,11 +693,12 @@ struct ice_prof_tcam_entry { u8 prof_id; }; +#pragma pack() + struct ice_prof_id_section { __le16 count; - struct ice_prof_tcam_entry entry[1]; + struct ice_prof_tcam_entry entry[STRUCT_HACK_VAR_LEN]; }; -#pragma pack() struct ice_prof_tcam { u32 sid;