1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(c) 2018 Netronome Systems, Inc. 3 * All rights reserved. 4 */ 5 6 #ifndef __NFP_RTSYM_H__ 7 #define __NFP_RTSYM_H__ 8 9 #include "nfp_cpp.h" 10 11 struct nfp_rtsym; 12 struct nfp_rtsym_table; 13 14 struct nfp_rtsym_table *nfp_rtsym_table_read(struct nfp_cpp *cpp); 15 16 int nfp_rtsym_count(struct nfp_rtsym_table *rtbl); 17 18 const struct nfp_rtsym *nfp_rtsym_get(struct nfp_rtsym_table *rtbl, int idx); 19 20 const struct nfp_rtsym *nfp_rtsym_lookup(struct nfp_rtsym_table *rtbl, 21 const char *name); 22 23 int nfp_rtsym_read(struct nfp_cpp *cpp, const struct nfp_rtsym *sym, 24 uint64_t offset, void *buf, size_t len); 25 int nfp_rtsym_readl(struct nfp_cpp *cpp, const struct nfp_rtsym *sym, 26 uint64_t offset, uint32_t *value); 27 int nfp_rtsym_readq(struct nfp_cpp *cpp, const struct nfp_rtsym *sym, 28 uint64_t offset, uint64_t *value); 29 30 int nfp_rtsym_write(struct nfp_cpp *cpp, const struct nfp_rtsym *sym, 31 uint64_t offset, void *buf, size_t len); 32 int nfp_rtsym_writel(struct nfp_cpp *cpp, const struct nfp_rtsym *sym, 33 uint64_t offset, uint32_t value); 34 int nfp_rtsym_writeq(struct nfp_cpp *cpp, const struct nfp_rtsym *sym, 35 uint64_t offset, uint64_t value); 36 37 uint64_t nfp_rtsym_read_le(struct nfp_rtsym_table *rtbl, const char *name, 38 int *error); 39 int nfp_rtsym_write_le(struct nfp_rtsym_table *rtbl, const char *name, 40 uint64_t value); 41 uint8_t *nfp_rtsym_map(struct nfp_rtsym_table *rtbl, const char *name, 42 uint32_t min_size, struct nfp_cpp_area **area); 43 uint8_t *nfp_rtsym_map_offset(struct nfp_rtsym_table *rtbl, const char *name, 44 uint32_t offset, uint32_t min_size, struct nfp_cpp_area **area); 45 int nfp_rtsym_readl_indirect(struct nfp_rtsym_table *rtbl, const char *aux_name, 46 const char *name, uint32_t *value); 47 int nfp_rtsym_writel_indirect(struct nfp_rtsym_table *rtbl, const char *aux_name, 48 const char *name, uint32_t value); 49 50 #endif /* __NFP_RTSYM_H__ */ 51