tools lib api: Adopt fdarray class from perf's evlist
authorArnaldo Carvalho de Melo <[email protected]>
Wed, 3 Sep 2014 21:02:59 +0000 (18:02 -0300)
committerArnaldo Carvalho de Melo <[email protected]>
Thu, 25 Sep 2014 19:46:55 +0000 (16:46 -0300)
commit1b85337d0685d1dc5a6f9061434ba4316d69f3b8
tree2aae4189996ae07c65c8aaa2fc205ceba58cc7fb
parentf66a889dbc96dd342c87232d74f0956076707746
tools lib api: Adopt fdarray class from perf's evlist

The extensible file description array that grew in the perf_evlist class
can be useful for other tools, as it is not something that only evlists
need, so move it to tools/lib/api/fd to ease sharing it.

v2: Don't use {} like in:

 libapi_dirs:
$(QUIET_MKDIR)mkdir -p $(OUTPUT){fs,fd}/

in Makefiles, as it will not work in some systems, as in ubuntu13.10.

v3: Add fd/*.[ch] to LIBAPIKFS_SOURCES (Fix from Jiri Olsa)

v4: Leave the fcntl(fd, O_NONBLOCK) in the evlist layer, remains to
    be checked if it is really needed there, but has no place in the
    fdarray class (Fix from Jiri Olsa)

v5: Remove evlist details from fdarray grow/filter tests. Improve it a
    bit doing more tests about expected internal state.

Cc: Adrian Hunter <[email protected]>
Cc: Borislav Petkov <[email protected]>
Cc: Corey Ashford <[email protected]>
Cc: David Ahern <[email protected]>
Cc: Frederic Weisbecker <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Jean Pihet <[email protected]>
Cc: Jiri Olsa <[email protected]>
Cc: Namhyung Kim <[email protected]>
Cc: Paul Mackerras <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Link: http://lkml.kernel.org/n/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
12 files changed:
tools/lib/api/Makefile
tools/lib/api/fd/array.c [new file with mode: 0644]
tools/lib/api/fd/array.h [new file with mode: 0644]
tools/perf/Makefile.perf
tools/perf/builtin-kvm.c
tools/perf/tests/builtin-test.c
tools/perf/tests/evlist.c [deleted file]
tools/perf/tests/fdarray.c [new file with mode: 0644]
tools/perf/tests/tests.h
tools/perf/util/evlist.c
tools/perf/util/evlist.h
tools/perf/util/python.c