rdma: Set pointer to device name position

The dev and link execution callbacks expects that next
command line argument is device or port name.

Set pointer to device or port name position prior calls to
rd_exec_dev()/rd_exec_link().

Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
This commit is contained in:
Leon Romanovsky 2018-01-31 10:11:50 +02:00 committed by Stephen Hemminger
parent 1174be72d1
commit 6e0de6e886
2 changed files with 20 additions and 0 deletions

View File

@ -87,6 +87,7 @@ int rd_exec_cmd(struct rd *rd, const struct rd_cmd *c, const char *str);
int rd_exec_dev(struct rd *rd, int (*cb)(struct rd *rd));
int rd_exec_link(struct rd *rd, int (*cb)(struct rd *rd), bool strict_port);
void rd_free(struct rd *rd);
int rd_set_arg_to_devname(struct rd *rd);
int rd_argc(struct rd *rd);
/*

View File

@ -412,6 +412,25 @@ void rd_free(struct rd *rd)
filters_cleanup(rd);
}
int rd_set_arg_to_devname(struct rd *rd)
{
int ret = 0;
while (!rd_no_arg(rd)) {
if (rd_argv_match(rd, "dev") || rd_argv_match(rd, "link")) {
rd_arg_inc(rd);
if (rd_no_arg(rd)) {
pr_err("No device name was supplied\n");
ret = -EINVAL;
}
goto out;
}
rd_arg_inc(rd);
}
out:
return ret;
}
int rd_exec_link(struct rd *rd, int (*cb)(struct rd *rd), bool strict_port)
{
struct dev_map *dev_map;