mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	tools: bpftool: provide JSON output for all possible commands
As all commands can now return JSON output (possibly just a "null" value), output of `bpftool --json batch file FILE` should also be fully JSON compliant. Signed-off-by: Quentin Monnet <quentin.monnet@netronome.com> Acked-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
							parent
							
								
									9a5ab8bf1d
								
							
						
					
					
						commit
						004b45c0e5
					
				
					 3 changed files with 47 additions and 6 deletions
				
			
		| 
						 | 
				
			
			@ -64,6 +64,11 @@ void usage(void)
 | 
			
		|||
 | 
			
		||||
static int do_help(int argc, char **argv)
 | 
			
		||||
{
 | 
			
		||||
	if (json_output) {
 | 
			
		||||
		jsonw_null(json_wtr);
 | 
			
		||||
		return 0;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	fprintf(stderr,
 | 
			
		||||
		"Usage: %s OBJECT { COMMAND | help }\n"
 | 
			
		||||
		"       %s batch file FILE\n"
 | 
			
		||||
| 
						 | 
				
			
			@ -77,10 +82,22 @@ static int do_help(int argc, char **argv)
 | 
			
		|||
 | 
			
		||||
static int do_version(int argc, char **argv)
 | 
			
		||||
{
 | 
			
		||||
	printf("%s v%d.%d.%d\n", bin_name,
 | 
			
		||||
	       LINUX_VERSION_CODE >> 16,
 | 
			
		||||
	       LINUX_VERSION_CODE >> 8 & 0xf,
 | 
			
		||||
	       LINUX_VERSION_CODE & 0xf);
 | 
			
		||||
	unsigned int version[3];
 | 
			
		||||
 | 
			
		||||
	version[0] = LINUX_VERSION_CODE >> 16;
 | 
			
		||||
	version[1] = LINUX_VERSION_CODE >> 8 & 0xf;
 | 
			
		||||
	version[2] = LINUX_VERSION_CODE & 0xf;
 | 
			
		||||
 | 
			
		||||
	if (json_output) {
 | 
			
		||||
		jsonw_start_object(json_wtr);
 | 
			
		||||
		jsonw_name(json_wtr, "version");
 | 
			
		||||
		jsonw_printf(json_wtr, "\"%u.%u.%u\"",
 | 
			
		||||
			     version[0], version[1], version[2]);
 | 
			
		||||
		jsonw_end_object(json_wtr);
 | 
			
		||||
	} else {
 | 
			
		||||
		printf("%s v%u.%u.%u\n", bin_name,
 | 
			
		||||
		       version[0], version[1], version[2]);
 | 
			
		||||
	}
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -651,6 +651,8 @@ static int do_update(int argc, char **argv)
 | 
			
		|||
	free(value);
 | 
			
		||||
	close(fd);
 | 
			
		||||
 | 
			
		||||
	if (!err && json_output)
 | 
			
		||||
		jsonw_null(json_wtr);
 | 
			
		||||
	return err;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -812,16 +814,28 @@ static int do_delete(int argc, char **argv)
 | 
			
		|||
	free(key);
 | 
			
		||||
	close(fd);
 | 
			
		||||
 | 
			
		||||
	if (!err && json_output)
 | 
			
		||||
		jsonw_null(json_wtr);
 | 
			
		||||
	return err;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int do_pin(int argc, char **argv)
 | 
			
		||||
{
 | 
			
		||||
	return do_pin_any(argc, argv, bpf_map_get_fd_by_id);
 | 
			
		||||
	int err;
 | 
			
		||||
 | 
			
		||||
	err = do_pin_any(argc, argv, bpf_map_get_fd_by_id);
 | 
			
		||||
	if (!err && json_output)
 | 
			
		||||
		jsonw_null(json_wtr);
 | 
			
		||||
	return err;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int do_help(int argc, char **argv)
 | 
			
		||||
{
 | 
			
		||||
	if (json_output) {
 | 
			
		||||
		jsonw_null(json_wtr);
 | 
			
		||||
		return 0;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	fprintf(stderr,
 | 
			
		||||
		"Usage: %s %s show   [MAP]\n"
 | 
			
		||||
		"       %s %s dump    MAP\n"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -602,11 +602,21 @@ static int do_dump(int argc, char **argv)
 | 
			
		|||
 | 
			
		||||
static int do_pin(int argc, char **argv)
 | 
			
		||||
{
 | 
			
		||||
	return do_pin_any(argc, argv, bpf_prog_get_fd_by_id);
 | 
			
		||||
	int err;
 | 
			
		||||
 | 
			
		||||
	err = do_pin_any(argc, argv, bpf_prog_get_fd_by_id);
 | 
			
		||||
	if (!err && json_output)
 | 
			
		||||
		jsonw_null(json_wtr);
 | 
			
		||||
	return err;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int do_help(int argc, char **argv)
 | 
			
		||||
{
 | 
			
		||||
	if (json_output) {
 | 
			
		||||
		jsonw_null(json_wtr);
 | 
			
		||||
		return 0;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	fprintf(stderr,
 | 
			
		||||
		"Usage: %s %s show [PROG]\n"
 | 
			
		||||
		"       %s %s dump xlated PROG [{ file FILE | opcodes }]\n"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue