int (*func)(struct rd *rd);
};
+/*
+ * Parser interface
+ */
+bool rd_no_arg(struct rd *rd);
+void rd_arg_inc(struct rd *rd);
+
+char *rd_argv(struct rd *rd);
/*
* Commands interface
int rd_set_arg_to_devname(struct rd *rd);
int rd_argc(struct rd *rd);
+int strcmpx(const char *str1, const char *str2);
+
/*
* Device manipulation
*/
void rd_prepare_msg(struct rd *rd, uint32_t cmd, uint32_t *seq, uint16_t flags);
int rd_dev_init_cb(const struct nlmsghdr *nlh, void *data);
int rd_attr_cb(const struct nlattr *attr, void *data);
+int rd_attr_check(const struct nlattr *attr, int *typep);
/*
* Print helpers
*/
void print_driver_table(struct rd *rd, struct nlattr *tb);
void newline(struct rd *rd);
+void newline_indent(struct rd *rd);
#define MAX_LINE_LENGTH 80
#endif /* _RDMA_TOOL_H_ */
return rd->argc;
}
-static char *rd_argv(struct rd *rd)
+char *rd_argv(struct rd *rd)
{
if (!rd_argc(rd))
return NULL;
return *rd->argv;
}
-static int strcmpx(const char *str1, const char *str2)
+int strcmpx(const char *str1, const char *str2)
{
if (strlen(str1) > strlen(str2))
return -1;
return strcmpx(rd_argv(rd), pattern) == 0;
}
-static void rd_arg_inc(struct rd *rd)
+void rd_arg_inc(struct rd *rd)
{
if (!rd_argc(rd))
return;
rd->argv++;
}
-static bool rd_no_arg(struct rd *rd)
+bool rd_no_arg(struct rd *rd)
{
return rd_argc(rd) == 0;
}
[RDMA_NLDEV_ATTR_DRIVER_U64] = MNL_TYPE_U64,
};
-static int rd_attr_check(const struct nlattr *attr, int *typep)
+int rd_attr_check(const struct nlattr *attr, int *typep)
{
int type;
pr_out("\n");
}
-static void newline_indent(struct rd *rd)
+void newline_indent(struct rd *rd)
{
newline(rd);
if (!rd->json_output)