Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/ice/ice_flex_type.h
Show First 20 Lines • Show All 49 Lines • ▼ Show 20 Lines | |||||
struct ice_fv { | struct ice_fv { | ||||
struct ice_fv_word ew[ICE_MAX_FV_WORDS]; | struct ice_fv_word ew[ICE_MAX_FV_WORDS]; | ||||
}; | }; | ||||
/* Package and segment headers and tables */ | /* Package and segment headers and tables */ | ||||
struct ice_pkg_hdr { | struct ice_pkg_hdr { | ||||
struct ice_pkg_ver pkg_format_ver; | struct ice_pkg_ver pkg_format_ver; | ||||
__le32 seg_count; | __le32 seg_count; | ||||
__le32 seg_offset[1]; | __le32 seg_offset[STRUCT_HACK_VAR_LEN]; | ||||
}; | }; | ||||
/* generic segment */ | /* generic segment */ | ||||
struct ice_generic_seg_hdr { | struct ice_generic_seg_hdr { | ||||
#define SEGMENT_TYPE_METADATA 0x00000001 | #define SEGMENT_TYPE_METADATA 0x00000001 | ||||
#define SEGMENT_TYPE_ICE 0x00000010 | #define SEGMENT_TYPE_ICE 0x00000010 | ||||
__le32 seg_type; | __le32 seg_type; | ||||
struct ice_pkg_ver seg_format_ver; | struct ice_pkg_ver seg_format_ver; | ||||
Show All 14 Lines | |||||
struct ice_device_id_entry { | struct ice_device_id_entry { | ||||
union ice_device_id device; | union ice_device_id device; | ||||
union ice_device_id sub_device; | union ice_device_id sub_device; | ||||
}; | }; | ||||
struct ice_seg { | struct ice_seg { | ||||
struct ice_generic_seg_hdr hdr; | struct ice_generic_seg_hdr hdr; | ||||
__le32 device_table_count; | __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 { | struct ice_nvm_table { | ||||
__le32 table_count; | __le32 table_count; | ||||
__le32 vers[1]; | __le32 vers[STRUCT_HACK_VAR_LEN]; | ||||
}; | }; | ||||
struct ice_buf { | struct ice_buf { | ||||
#define ICE_PKG_BUF_SIZE 4096 | #define ICE_PKG_BUF_SIZE 4096 | ||||
u8 buf[ICE_PKG_BUF_SIZE]; | u8 buf[ICE_PKG_BUF_SIZE]; | ||||
}; | }; | ||||
struct ice_buf_table { | struct ice_buf_table { | ||||
__le32 buf_count; | __le32 buf_count; | ||||
struct ice_buf buf_array[1]; | struct ice_buf buf_array[STRUCT_HACK_VAR_LEN]; | ||||
}; | }; | ||||
/* global metadata specific segment */ | /* global metadata specific segment */ | ||||
struct ice_global_metadata_seg { | struct ice_global_metadata_seg { | ||||
struct ice_generic_seg_hdr hdr; | struct ice_generic_seg_hdr hdr; | ||||
struct ice_pkg_ver pkg_ver; | struct ice_pkg_ver pkg_ver; | ||||
__le32 rsvd; | __le32 rsvd; | ||||
char pkg_name[ICE_PKG_NAME_SIZE]; | char pkg_name[ICE_PKG_NAME_SIZE]; | ||||
Show All 16 Lines | |||||
#define ICE_MIN_S_DATA_END 12 | #define ICE_MIN_S_DATA_END 12 | ||||
#define ICE_MAX_S_DATA_END 4096 | #define ICE_MAX_S_DATA_END 4096 | ||||
#define ICE_METADATA_BUF 0x80000000 | #define ICE_METADATA_BUF 0x80000000 | ||||
struct ice_buf_hdr { | struct ice_buf_hdr { | ||||
__le16 section_count; | __le16 section_count; | ||||
__le16 data_end; | __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 - \ | #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 */ | /* ice package section IDs */ | ||||
#define ICE_SID_XLT0_SW 10 | #define ICE_SID_XLT0_SW 10 | ||||
#define ICE_SID_XLT_KEY_BUILDER_SW 11 | #define ICE_SID_XLT_KEY_BUILDER_SW 11 | ||||
#define ICE_SID_XLT1_SW 12 | #define ICE_SID_XLT1_SW 12 | ||||
#define ICE_SID_XLT2_SW 13 | #define ICE_SID_XLT2_SW 13 | ||||
#define ICE_SID_PROFID_TCAM_SW 14 | #define ICE_SID_PROFID_TCAM_SW 14 | ||||
#define ICE_SID_PROFID_REDIR_SW 15 | #define ICE_SID_PROFID_REDIR_SW 15 | ||||
▲ Show 20 Lines • Show All 210 Lines • ▼ Show 20 Lines | |||||
struct ice_label { | struct ice_label { | ||||
__le16 value; | __le16 value; | ||||
#define ICE_PKG_LABEL_SIZE 64 | #define ICE_PKG_LABEL_SIZE 64 | ||||
char name[ICE_PKG_LABEL_SIZE]; | char name[ICE_PKG_LABEL_SIZE]; | ||||
}; | }; | ||||
struct ice_label_section { | struct ice_label_section { | ||||
__le16 count; | __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( \ | #define ICE_MAX_LABELS_IN_BUF ICE_MAX_ENTRIES_IN_BUF( \ | ||||
sizeof(struct ice_label_section) - sizeof(struct ice_label), \ | ice_struct_size((struct ice_label_section *)0, label, 1) - \ | ||||
sizeof(struct ice_label)) | sizeof(struct ice_label), sizeof(struct ice_label)) | ||||
struct ice_sw_fv_section { | struct ice_sw_fv_section { | ||||
__le16 count; | __le16 count; | ||||
__le16 base_offset; | __le16 base_offset; | ||||
struct ice_fv fv[1]; | struct ice_fv fv[STRUCT_HACK_VAR_LEN]; | ||||
}; | }; | ||||
struct ice_sw_fv_list_entry { | struct ice_sw_fv_list_entry { | ||||
struct LIST_ENTRY_TYPE list_entry; | struct LIST_ENTRY_TYPE list_entry; | ||||
u32 profile_id; | u32 profile_id; | ||||
struct ice_fv *fv_ptr; | struct ice_fv *fv_ptr; | ||||
}; | }; | ||||
Show All 28 Lines | struct ice_boost_tcam_entry { | ||||
*/ | */ | ||||
#define ICE_BOOST_BIT_FIELDS 43 | #define ICE_BOOST_BIT_FIELDS 43 | ||||
u8 bit_fields[ICE_BOOST_BIT_FIELDS]; | u8 bit_fields[ICE_BOOST_BIT_FIELDS]; | ||||
}; | }; | ||||
struct ice_boost_tcam_section { | struct ice_boost_tcam_section { | ||||
__le16 count; | __le16 count; | ||||
__le16 reserved; | __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( \ | #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), \ | ||||
sizeof(struct ice_boost_tcam_entry)) | sizeof(struct ice_boost_tcam_entry)) | ||||
#pragma pack(1) | |||||
struct ice_xlt1_section { | struct ice_xlt1_section { | ||||
__le16 count; | __le16 count; | ||||
__le16 offset; | __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 { | struct ice_xlt2_section { | ||||
__le16 count; | __le16 count; | ||||
__le16 offset; | __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 { | struct ice_prof_redir_section { | ||||
__le16 count; | __le16 count; | ||||
__le16 offset; | __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 */ | /* package buffer building */ | ||||
struct ice_buf_build { | struct ice_buf_build { | ||||
struct ice_buf buf; | struct ice_buf buf; | ||||
u16 reserved_section_table_entries; | u16 reserved_section_table_entries; | ||||
}; | }; | ||||
struct ice_pkg_enum { | struct ice_pkg_enum { | ||||
Show All 40 Lines | |||||
struct ice_tunnel_table { | struct ice_tunnel_table { | ||||
struct ice_tunnel_entry tbl[ICE_TUNNEL_MAX_ENTRIES]; | struct ice_tunnel_entry tbl[ICE_TUNNEL_MAX_ENTRIES]; | ||||
u16 count; | u16 count; | ||||
}; | }; | ||||
struct ice_pkg_es { | struct ice_pkg_es { | ||||
__le16 count; | __le16 count; | ||||
__le16 offset; | __le16 offset; | ||||
struct ice_fv_word es[1]; | struct ice_fv_word es[STRUCT_HACK_VAR_LEN]; | ||||
}; | }; | ||||
struct ice_es { | struct ice_es { | ||||
u32 sid; | u32 sid; | ||||
u16 count; | u16 count; | ||||
u16 fvw; | u16 fvw; | ||||
u16 *ref_count; | u16 *ref_count; | ||||
struct LIST_HEAD_TYPE prof_map; | struct LIST_HEAD_TYPE prof_map; | ||||
▲ Show 20 Lines • Show All 134 Lines • ▼ Show 20 Lines | |||||
#define ICE_TCAM_KEY_VAL_SZ 5 | #define ICE_TCAM_KEY_VAL_SZ 5 | ||||
#define ICE_TCAM_KEY_SZ (2 * ICE_TCAM_KEY_VAL_SZ) | #define ICE_TCAM_KEY_SZ (2 * ICE_TCAM_KEY_VAL_SZ) | ||||
struct ice_prof_tcam_entry { | struct ice_prof_tcam_entry { | ||||
__le16 addr; | __le16 addr; | ||||
u8 key[ICE_TCAM_KEY_SZ]; | u8 key[ICE_TCAM_KEY_SZ]; | ||||
u8 prof_id; | u8 prof_id; | ||||
}; | }; | ||||
#pragma pack() | |||||
struct ice_prof_id_section { | struct ice_prof_id_section { | ||||
__le16 count; | __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 { | struct ice_prof_tcam { | ||||
u32 sid; | u32 sid; | ||||
u16 count; | u16 count; | ||||
u16 max_prof_id; | u16 max_prof_id; | ||||
struct ice_prof_tcam_entry *t; | struct ice_prof_tcam_entry *t; | ||||
u8 cdid_bits; /* # CDID bits to use in key, 0, 2, 4, or 8 */ | u8 cdid_bits; /* # CDID bits to use in key, 0, 2, 4, or 8 */ | ||||
}; | }; | ||||
▲ Show 20 Lines • Show All 54 Lines • Show Last 20 Lines |