OSDN Git Service

perf units: Move parse_tag_value() to units.[ch]
authorArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 26 Apr 2017 18:40:31 +0000 (15:40 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 26 Apr 2017 18:40:31 +0000 (15:40 -0300)
Its basically to do units handling, so move to a more appropriately
named object.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-90ob9vfepui24l8l2makhd9u@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/units.c
tools/perf/util/units.h
tools/perf/util/util.c
tools/perf/util/util.h

index f6a2a3d..4767ec2 100644 (file)
@@ -1,8 +1,37 @@
 #include "units.h"
 #include <inttypes.h>
+#include <limits.h>
+#include <stdlib.h>
+#include <string.h>
 #include <linux/kernel.h>
 #include <linux/time64.h>
 
+unsigned long parse_tag_value(const char *str, struct parse_tag *tags)
+{
+       struct parse_tag *i = tags;
+
+       while (i->tag) {
+               char *s = strchr(str, i->tag);
+
+               if (s) {
+                       unsigned long int value;
+                       char *endptr;
+
+                       value = strtoul(str, &endptr, 10);
+                       if (s != endptr)
+                               break;
+
+                       if (value > ULONG_MAX / i->mult)
+                               break;
+                       value *= i->mult;
+                       return value;
+               }
+               i++;
+       }
+
+       return (unsigned long) -1;
+}
+
 unsigned long convert_unit(unsigned long value, char *unit)
 {
        *unit = ' ';
index 3ed7774..f02c873 100644 (file)
@@ -4,6 +4,13 @@
 #include <stddef.h>
 #include <linux/types.h>
 
+struct parse_tag {
+       char tag;
+       int  mult;
+};
+
+unsigned long parse_tag_value(const char *str, struct parse_tag *tags);
+
 unsigned long convert_unit(unsigned long value, char *unit);
 int unit_number__scnprintf(char *buf, size_t size, u64 n);
 
index b460f0d..28c9f33 100644 (file)
@@ -334,33 +334,6 @@ int hex2u64(const char *ptr, u64 *long_val)
        return p - ptr;
 }
 
-unsigned long parse_tag_value(const char *str, struct parse_tag *tags)
-{
-       struct parse_tag *i = tags;
-
-       while (i->tag) {
-               char *s;
-
-               s = strchr(str, i->tag);
-               if (s) {
-                       unsigned long int value;
-                       char *endptr;
-
-                       value = strtoul(str, &endptr, 10);
-                       if (s != endptr)
-                               break;
-
-                       if (value > ULONG_MAX / i->mult)
-                               break;
-                       value *= i->mult;
-                       return value;
-               }
-               i++;
-       }
-
-       return (unsigned long) -1;
-}
-
 int perf_event_paranoid(void)
 {
        int value;
index dabdc81..d620719 100644 (file)
@@ -59,13 +59,6 @@ int hex2u64(const char *ptr, u64 *val);
 extern unsigned int page_size;
 extern int cacheline_size;
 
-struct parse_tag {
-       char tag;
-       int mult;
-};
-
-unsigned long parse_tag_value(const char *str, struct parse_tag *tags);
-
 bool find_process(const char *name);
 
 int fetch_kernel_version(unsigned int *puint,