return -ENOENT;
}
-static unsigned int strslashcount(char *str)
-{
- unsigned int count = 0;
- char *pos = str;
-
- while ((pos = strchr(pos, '/'))) {
- count++;
- pos++;
- }
- return count;
-}
-
-static int strslashrsplit(char *str, char **before, char **after)
-{
- char *slash;
-
- slash = strrchr(str, '/');
- if (!slash)
- return -EINVAL;
- *slash = '\0';
- *before = str;
- *after = slash + 1;
- return 0;
-}
-
static int strtouint64_t(const char *str, uint64_t *p_val)
{
char *endptr;
static int __dl_argv_handle(char *str, char **p_bus_name, char **p_dev_name)
{
- strslashrsplit(str, p_bus_name, p_dev_name);
+ str_split_by_char(str, p_bus_name, p_dev_name, '/');
return 0;
}
pr_err("Devlink identification (\"bus_name/dev_name\") expected\n");
return -EINVAL;
}
- if (strslashcount(str) != 1) {
+ if (get_str_char_count(str, '/') != 1) {
pr_err("Wrong devlink identification string format.\n");
pr_err("Expected \"bus_name/dev_name\".\n");
return -EINVAL;
char *portstr;
int err;
- err = strslashrsplit(str, &handlestr, &portstr);
+ err = str_split_by_char(str, &handlestr, &portstr, '/');
if (err) {
pr_err("Port identification \"%s\" is invalid\n", str);
return err;
portstr);
return err;
}
- err = strslashrsplit(handlestr, p_bus_name, p_dev_name);
+ err = str_split_by_char(handlestr, p_bus_name, p_dev_name, '/');
if (err) {
pr_err("Port identification \"%s\" is invalid\n", str);
return err;
pr_err("Port identification (\"bus_name/dev_name/port_index\" or \"netdev ifname\") expected.\n");
return -EINVAL;
}
- slash_count = strslashcount(str);
+ slash_count = get_str_char_count(str, '/');
switch (slash_count) {
case 0:
return __dl_argv_handle_port_ifname(dl, str, p_bus_name,
"Port identification (\"bus_name/dev_name/port_index\" or \"netdev ifname\")\n");
return -EINVAL;
}
- slash_count = strslashcount(str);
+ slash_count = get_str_char_count(str, '/');
if (slash_count == 1) {
err = __dl_argv_handle(str, p_bus_name, p_dev_name);
if (err)
char *handlestr;
int err;
- err = strslashrsplit(str, &handlestr, p_region);
+ err = str_split_by_char(str, &handlestr, p_region, '/');
if (err) {
pr_err("Region identification \"%s\" is invalid\n", str);
return err;
}
- err = strslashrsplit(handlestr, p_bus_name, p_dev_name);
+ err = str_split_by_char(handlestr, p_bus_name, p_dev_name, '/');
if (err) {
pr_err("Region identification \"%s\" is invalid\n", str);
return err;
return -EINVAL;
}
- slash_count = strslashcount(str);
+ slash_count = get_str_char_count(str, '/');
if (slash_count != 2) {
pr_err("Wrong region identification string format.\n");
pr_err("Expected \"bus_name/dev_name/region\" identification.\n"".\n");