diff options
Diffstat (limited to 'tools/bpf/bpftool/main.h')
| -rw-r--r-- | tools/bpf/bpftool/main.h | 36 | 
1 files changed, 34 insertions, 2 deletions
diff --git a/tools/bpf/bpftool/main.h b/tools/bpf/bpftool/main.h index 63fdb310b9a4..238e734d75b3 100644 --- a/tools/bpf/bpftool/main.h +++ b/tools/bpf/bpftool/main.h @@ -31,8 +31,6 @@   * SOFTWARE.   */ -/* Author: Jakub Kicinski <[email protected]> */ -  #ifndef __BPF_TOOL_H  #define __BPF_TOOL_H @@ -44,6 +42,7 @@  #include <linux/compiler.h>  #include <linux/kernel.h>  #include <linux/hashtable.h> +#include <tools/libc_compat.h>  #include "json_writer.h" @@ -52,6 +51,21 @@  #define NEXT_ARG()	({ argc--; argv++; if (argc < 0) usage(); })  #define NEXT_ARGP()	({ (*argc)--; (*argv)++; if (*argc < 0) usage(); })  #define BAD_ARG()	({ p_err("what is '%s'?", *argv); -1; }) +#define GET_ARG()	({ argc--; *argv++; }) +#define REQ_ARGS(cnt)							\ +	({								\ +		int _cnt = (cnt);					\ +		bool _res;						\ +									\ +		if (argc < _cnt) {					\ +			p_err("'%s' needs at least %d arguments, %d found", \ +			      argv[-1], _cnt, argc);			\ +			_res = false;					\ +		} else {						\ +			_res = true;					\ +		}							\ +		_res;							\ +	})  #define ERR_MAX_LEN	1024 @@ -61,6 +75,8 @@  	"PROG := { id PROG_ID | pinned FILE | tag PROG_TAG }"  #define HELP_SPEC_OPTIONS						\  	"OPTIONS := { {-j|--json} [{-p|--pretty}] | {-f|--bpffs} }" +#define HELP_SPEC_MAP							\ +	"MAP := { id MAP_ID | pinned FILE }"  enum bpf_obj_type {  	BPF_OBJ_UNKNOWN, @@ -122,6 +138,7 @@ int do_cgroup(int argc, char **arg);  int do_perf(int argc, char **arg);  int prog_parse_fd(int *argc, char ***argv); +int map_parse_fd(int *argc, char ***argv);  int map_parse_fd_and_info(int *argc, char ***argv, void *info, __u32 *info_len);  void disasm_print_insn(unsigned char *image, ssize_t len, int opcodes, @@ -133,4 +150,19 @@ unsigned int get_page_size(void);  unsigned int get_possible_cpus(void);  const char *ifindex_to_bfd_name_ns(__u32 ifindex, __u64 ns_dev, __u64 ns_ino); +struct btf_dumper { +	const struct btf *btf; +	json_writer_t *jw; +	bool is_plain_text; +}; + +/* btf_dumper_type - print data along with type information + * @d: an instance containing context for dumping types + * @type_id: index in btf->types array. this points to the type to be dumped + * @data: pointer the actual data, i.e. the values to be printed + * + * Returns zero on success and negative error code otherwise + */ +int btf_dumper_type(const struct btf_dumper *d, __u32 type_id, +		    const void *data);  #endif  |