lkml.org 
[lkml]   [2015]   [Nov]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 01/16] tools: Adopt memdup() from tools/perf, moving it to tools/lib/string.c
    Date
    From: Arnaldo Carvalho de Melo <acme@redhat.com>

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

    Acked-by: Wang Nan <wangnan0@huawei.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexey Dobriyan <adobriyan@gmail.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: http://lkml.kernel.org/n/tip-rah6g97kn21vfgmlramorz6o@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ---
    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(-)
    create mode 100644 tools/include/linux/string.h
    create mode 100644 tools/lib/string.c
    delete mode 100644 tools/perf/util/include/linux/string.h

    diff --git a/tools/include/linux/string.h b/tools/include/linux/string.h
    new file mode 100644
    index 000000000000..f3a6db6ad732
    --- /dev/null
    +++ b/tools/include/linux/string.h
    @@ -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_ */
    diff --git a/tools/lib/string.c b/tools/lib/string.c
    new file mode 100644
    index 000000000000..ecfd43a9b24e
    --- /dev/null
    +++ b/tools/lib/string.c
    @@ -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;
    +}
    diff --git a/tools/perf/MANIFEST b/tools/perf/MANIFEST
    index 39c38cb45b00..2562eac6451d 100644
    --- a/tools/perf/MANIFEST
    +++ b/tools/perf/MANIFEST
    @@ -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
    diff --git a/tools/perf/util/Build b/tools/perf/util/Build
    index 591b3fe3ed49..e2316900f96f 100644
    --- a/tools/perf/util/Build
    +++ b/tools/perf/util/Build
    @@ -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)
    diff --git a/tools/perf/util/include/linux/string.h b/tools/perf/util/include/linux/string.h
    deleted file mode 100644
    index 6f19c548ecc0..000000000000
    --- a/tools/perf/util/include/linux/string.h
    +++ /dev/null
    @@ -1,3 +0,0 @@
    -#include <string.h>
    -
    -void *memdup(const void *src, size_t len);
    diff --git a/tools/perf/util/string.c b/tools/perf/util/string.c
    index fc8781de62db..7f7e072be746 100644
    --- a/tools/perf/util/string.c
    +++ b/tools/perf/util/string.c
    @@ -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)
    {
    /*
    --
    2.1.0


    \
     
     \ /
      Last update: 2015-11-17 17:01    [W:4.158 / U:0.160 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site