#include <linux/ethtool.h>
#include <linux/vmalloc.h>
#include "nfp_asm.h"
#include "nfp_main.h"
#include "nfpcore/nfp.h"
#include "nfpcore/nfp_nffw.h"
#include "nfpcore/nfp6000/nfp6000.h"
#define NFP_DUMP_SPEC_RTSYM …
#define ALIGN8(x) …
enum nfp_dumpspec_type { … };
struct nfp_dump_tl { … };
struct nfp_dumpspec_cpp_isl_id { … };
struct nfp_dump_common_cpp { … };
struct nfp_dumpspec_csr { … };
struct nfp_dumpspec_rtsym { … };
struct nfp_dump_csr { … };
struct nfp_dump_rtsym { … };
struct nfp_dump_prolog { … };
struct nfp_dump_error { … };
struct nfp_level_size { … };
struct nfp_dump_state { … };
nfp_tlv_visit;
static int
nfp_traverse_tlvs(struct nfp_pf *pf, void *data, u32 data_length, void *param,
nfp_tlv_visit tlv_visit)
{ … }
static u32 nfp_get_numeric_cpp_id(struct nfp_dumpspec_cpp_isl_id *cpp_id)
{ … }
struct nfp_dumpspec *
nfp_net_dump_load_dumpspec(struct nfp_cpp *cpp, struct nfp_rtsym_table *rtbl)
{ … }
static int nfp_dump_error_tlv_size(struct nfp_dump_tl *spec)
{ … }
static int nfp_calc_fwname_tlv_size(struct nfp_pf *pf)
{ … }
static int nfp_calc_hwinfo_field_sz(struct nfp_pf *pf, struct nfp_dump_tl *spec)
{ … }
static bool nfp_csr_spec_valid(struct nfp_dumpspec_csr *spec_csr)
{ … }
static int
nfp_calc_rtsym_dump_sz(struct nfp_pf *pf, struct nfp_dump_tl *spec)
{ … }
static int
nfp_add_tlv_size(struct nfp_pf *pf, struct nfp_dump_tl *tl, void *param)
{ … }
static int
nfp_calc_specific_level_size(struct nfp_pf *pf, struct nfp_dump_tl *dump_level,
void *param)
{ … }
s64 nfp_net_dump_calculate_size(struct nfp_pf *pf, struct nfp_dumpspec *spec,
u32 flag)
{ … }
static int nfp_add_tlv(u32 type, u32 total_tlv_sz, struct nfp_dump_state *dump)
{ … }
static int
nfp_dump_error_tlv(struct nfp_dump_tl *spec, int error,
struct nfp_dump_state *dump)
{ … }
static int nfp_dump_fwname(struct nfp_pf *pf, struct nfp_dump_state *dump)
{ … }
static int
nfp_dump_hwinfo(struct nfp_pf *pf, struct nfp_dump_tl *spec,
struct nfp_dump_state *dump)
{ … }
static int nfp_dump_hwinfo_field(struct nfp_pf *pf, struct nfp_dump_tl *spec,
struct nfp_dump_state *dump)
{ … }
static bool is_xpb_read(struct nfp_dumpspec_cpp_isl_id *cpp_id)
{ … }
static int
nfp_dump_csr_range(struct nfp_pf *pf, struct nfp_dumpspec_csr *spec_csr,
struct nfp_dump_state *dump)
{ … }
static int
nfp_read_indirect_csr(struct nfp_cpp *cpp,
struct nfp_dumpspec_cpp_isl_id cpp_params, u32 offset,
u32 reg_sz, u32 context, void *dest)
{ … }
static int
nfp_read_all_indirect_csr_ctx(struct nfp_cpp *cpp,
struct nfp_dumpspec_csr *spec_csr, u32 address,
u32 reg_sz, void *dest)
{ … }
static int
nfp_dump_indirect_csr_range(struct nfp_pf *pf,
struct nfp_dumpspec_csr *spec_csr,
struct nfp_dump_state *dump)
{ … }
static int
nfp_dump_single_rtsym(struct nfp_pf *pf, struct nfp_dumpspec_rtsym *spec,
struct nfp_dump_state *dump)
{ … }
static int
nfp_dump_for_tlv(struct nfp_pf *pf, struct nfp_dump_tl *tl, void *param)
{ … }
static int
nfp_dump_specific_level(struct nfp_pf *pf, struct nfp_dump_tl *dump_level,
void *param)
{ … }
static int nfp_dump_populate_prolog(struct nfp_dump_state *dump)
{ … }
int nfp_net_dump_populate_buffer(struct nfp_pf *pf, struct nfp_dumpspec *spec,
struct ethtool_dump *dump_param, void *dest)
{ … }