Skip to contentSkip to conversation

tools: Adopt memdup() from tools/perf, moving it to tools/lib/string.c

tip:perf/core tip-bot for Arnaldo Carvalho de Melo 1 participant 1 message Nov 23, 2015 perf events

lore
Share & tools
lore
#0 lore raw
Commit-ID:  4ddd32741da87657113d964588ce13ee64b34820
Gitweb:     http://git.kernel.org/tip/4ddd32741da87657113d964588ce13ee64b34820
Author:     Arnaldo Carvalho de Melo <[email protected]>
AuthorDate: Mon, 16 Nov 2015 11:36:29 -0300
Committer:  Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Wed, 18 Nov 2015 17:51:02 -0300

tools: Adopt memdup() from tools/perf, moving it to tools/lib/string.c

That will contain more string functions with counterparts, sometimes verbatim copies, in the kernel.

---
 tools/include/linux/string.h           |  9 +++++++++
 tools/lib/string.c                     | 19 +++++++++++++++++++
 tools/perf/MANIFEST                    |  2 ++
 tools/perf/util/Build                  |  6 ++++++
 tools/perf/util/include/linux/string.h |  3 ---
 tools/perf/util/string.c               | 16 ----------------
 6 files changed, 36 insertions(+), 19 deletions(-)
tools/include/linux/string.h new file +9 -0
new file mode 100644
index 0000000..f3a6db6
@@ -0,0 +1,9 @@
+#ifndef _TOOLS_LINUX_STRING_H_
+#define _TOOLS_LINUX_STRING_H_
+
+
+#include <linux/types.h>	/* for size_t */
+
+void *memdup(const void *src, size_t len);
+
+#endif /* _LINUX_STRING_H_ */
tools/lib/string.c new file +19 -0
new file mode 100644
index 0000000..ecfd43a
@@ -0,0 +1,19 @@
+#include <stdlib.h>
+#include <string.h>
+#include <linux/string.h>
+
+/**
+ * memdup - duplicate region of memory
+ *
+ * @src: memory region to duplicate
+ * @len: memory region length
+ */
+void *memdup(const void *src, size_t len)
+{
+	void *p = malloc(len);
+
+	if (p)
+		memcpy(p, src, len);
+
+	return p;
+}
tools/perf/MANIFEST +2 -0
index 39c38cb..2562eac 100644
@@ -22,6 +22,7 @@ tools/lib/api
 tools/lib/bpf
 tools/lib/hweight.c
 tools/lib/rbtree.c
+tools/lib/string.c
 tools/lib/symbol/kallsyms.c
 tools/lib/symbol/kallsyms.h
 tools/lib/util/find_next_bit.c
@@ -50,6 +51,7 @@ tools/include/linux/log2.h
 tools/include/linux/poison.h
 tools/include/linux/rbtree.h
 tools/include/linux/rbtree_augmented.h
+tools/include/linux/string.h
 tools/include/linux/types.h
 tools/include/linux/err.h
 include/asm-generic/bitops/arch_hweight.h
tools/perf/util/Build +6 -0
index 591b3fe..e231690 100644
@@ -21,6 +21,7 @@ libperf-y += parse-events.o
 libperf-y += perf_regs.o
 libperf-y += path.o
 libperf-y += rbtree.o
+libperf-y += libstring.o
 libperf-y += bitmap.o
 libperf-y += hweight.o
 libperf-y += run-command.o
@@ -138,6 +139,7 @@ $(OUTPUT)util/pmu.o: $(OUTPUT)util/pmu-flex.c $(OUTPUT)util/pmu-bison.c
 
 CFLAGS_find_next_bit.o += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))"
 CFLAGS_rbtree.o        += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))"
+CFLAGS_libstring.o     += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))"
 CFLAGS_hweight.o       += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))"
 CFLAGS_parse-events.o  += -Wno-redundant-decls
 
@@ -153,6 +155,10 @@ $(OUTPUT)util/rbtree.o: ../lib/rbtree.c FORCE
 	$(call rule_mkdir)
 	$(call if_changed_dep,cc_o_c)
 
+$(OUTPUT)util/libstring.o: ../lib/string.c FORCE
+	$(call rule_mkdir)
+	$(call if_changed_dep,cc_o_c)
+
 $(OUTPUT)util/hweight.o: ../lib/hweight.c FORCE
 	$(call rule_mkdir)
 	$(call if_changed_dep,cc_o_c)
tools/perf/util/include/linux/string.h deleted +0 -3
deleted file mode 100644
index 6f19c54..0000000
@@ -1,3 +0,0 @@
-#include <string.h>
-
-void *memdup(const void *src, size_t len);
tools/perf/util/string.c +0 -16
index fc8781d..7f7e072 100644
@@ -342,22 +342,6 @@ char *rtrim(char *s)
 	return s;
 }
 
-/**
- * memdup - duplicate region of memory
- * @src: memory region to duplicate
- * @len: memory region length
- */
-void *memdup(const void *src, size_t len)
-{
-	void *p;
-
-	p = malloc(len);
-	if (p)
-		memcpy(p, src, len);
-
-	return p;
-}
-
 char *asprintf_expr_inout_ints(const char *var, bool in, size_t nints, int *ints)
 {
 	/*