xref: /dpdk/drivers/net/sfc/sfc_tbl_meta.h (revision bc712f1c86fc9c2bb5bb41a80e12f34e224f4c6d)
1*bc712f1cSDenis Pryazhennikov /* SPDX-License-Identifier: BSD-3-Clause
2*bc712f1cSDenis Pryazhennikov  *
3*bc712f1cSDenis Pryazhennikov  * Copyright (c) 2023 Advanced Micro Devices, Inc.
4*bc712f1cSDenis Pryazhennikov  */
5*bc712f1cSDenis Pryazhennikov 
6*bc712f1cSDenis Pryazhennikov #ifndef _SFC_TBL_META_H
7*bc712f1cSDenis Pryazhennikov #define _SFC_TBL_META_H
8*bc712f1cSDenis Pryazhennikov 
9*bc712f1cSDenis Pryazhennikov #include <rte_hash.h>
10*bc712f1cSDenis Pryazhennikov 
11*bc712f1cSDenis Pryazhennikov #include "efx.h"
12*bc712f1cSDenis Pryazhennikov 
13*bc712f1cSDenis Pryazhennikov #ifdef __cplusplus
14*bc712f1cSDenis Pryazhennikov extern "C" {
15*bc712f1cSDenis Pryazhennikov #endif
16*bc712f1cSDenis Pryazhennikov 
17*bc712f1cSDenis Pryazhennikov /* Metadata about table layout */
18*bc712f1cSDenis Pryazhennikov struct sfc_tbl_meta {
19*bc712f1cSDenis Pryazhennikov 	efx_table_id_t			table_id;
20*bc712f1cSDenis Pryazhennikov 	efx_table_descriptor_t		descriptor;
21*bc712f1cSDenis Pryazhennikov 	efx_table_field_descriptor_t	*keys;
22*bc712f1cSDenis Pryazhennikov 	efx_table_field_descriptor_t	*responses;
23*bc712f1cSDenis Pryazhennikov };
24*bc712f1cSDenis Pryazhennikov 
25*bc712f1cSDenis Pryazhennikov struct sfc_tbl_meta_cache {
26*bc712f1cSDenis Pryazhennikov 	struct rte_hash	*cache;
27*bc712f1cSDenis Pryazhennikov };
28*bc712f1cSDenis Pryazhennikov 
29*bc712f1cSDenis Pryazhennikov struct sfc_adapter;
30*bc712f1cSDenis Pryazhennikov 
31*bc712f1cSDenis Pryazhennikov const struct sfc_tbl_meta *sfc_tbl_meta_lookup(struct sfc_adapter *sa,
32*bc712f1cSDenis Pryazhennikov 					       efx_table_id_t table_id);
33*bc712f1cSDenis Pryazhennikov 
34*bc712f1cSDenis Pryazhennikov int sfc_tbl_meta_init(struct sfc_adapter *sa);
35*bc712f1cSDenis Pryazhennikov void sfc_tbl_meta_fini(struct sfc_adapter *sa);
36*bc712f1cSDenis Pryazhennikov 
37*bc712f1cSDenis Pryazhennikov #endif /* _SFC_TBL_META_H */
38