tools: bpftool: refactor argument parsing for prog load

Add a new macro for printing more informative message than straight
usage() when parameters are missing, and use it for prog do_load().
Save the object and pin path argument to variables for clarity.

Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Reviewed-by: Quentin Monnet <quentin.monnet@netronome.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
This commit is contained in:
Jakub Kicinski
2018-07-10 14:42:57 -07:00
committed by Daniel Borkmann
parent 219f860d2a
commit 8d1fc3de3d
2 changed files with 22 additions and 4 deletions

View File

@@ -681,18 +681,21 @@ static int do_pin(int argc, char **argv)
static int do_load(int argc, char **argv)
{
const char *objfile, *pinfile;
struct bpf_object *obj;
int prog_fd;
if (argc != 2)
usage();
if (!REQ_ARGS(2))
return -1;
objfile = GET_ARG();
pinfile = GET_ARG();
if (bpf_prog_load(argv[0], BPF_PROG_TYPE_UNSPEC, &obj, &prog_fd)) {
if (bpf_prog_load(objfile, BPF_PROG_TYPE_UNSPEC, &obj, &prog_fd)) {
p_err("failed to load program");
return -1;
}
if (do_pin_fd(prog_fd, argv[1]))
if (do_pin_fd(prog_fd, pinfile))
goto err_close_obj;
if (json_output)