diff options
Diffstat (limited to 'tools/perf/builtin-record.c')
-rw-r--r-- | tools/perf/builtin-record.c | 31 |
1 files changed, 0 insertions, 31 deletions
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index 2e0d484068d2..e4c85b8f46c2 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c | |||
@@ -30,37 +30,6 @@ | |||
30 | #include <sched.h> | 30 | #include <sched.h> |
31 | #include <sys/mman.h> | 31 | #include <sys/mman.h> |
32 | 32 | ||
33 | #ifndef HAVE_ON_EXIT_SUPPORT | ||
34 | #ifndef ATEXIT_MAX | ||
35 | #define ATEXIT_MAX 32 | ||
36 | #endif | ||
37 | static int __on_exit_count = 0; | ||
38 | typedef void (*on_exit_func_t) (int, void *); | ||
39 | static on_exit_func_t __on_exit_funcs[ATEXIT_MAX]; | ||
40 | static void *__on_exit_args[ATEXIT_MAX]; | ||
41 | static int __exitcode = 0; | ||
42 | static void __handle_on_exit_funcs(void); | ||
43 | static int on_exit(on_exit_func_t function, void *arg); | ||
44 | #define exit(x) (exit)(__exitcode = (x)) | ||
45 | |||
46 | static int on_exit(on_exit_func_t function, void *arg) | ||
47 | { | ||
48 | if (__on_exit_count == ATEXIT_MAX) | ||
49 | return -ENOMEM; | ||
50 | else if (__on_exit_count == 0) | ||
51 | atexit(__handle_on_exit_funcs); | ||
52 | __on_exit_funcs[__on_exit_count] = function; | ||
53 | __on_exit_args[__on_exit_count++] = arg; | ||
54 | return 0; | ||
55 | } | ||
56 | |||
57 | static void __handle_on_exit_funcs(void) | ||
58 | { | ||
59 | int i; | ||
60 | for (i = 0; i < __on_exit_count; i++) | ||
61 | __on_exit_funcs[i] (__exitcode, __on_exit_args[i]); | ||
62 | } | ||
63 | #endif | ||
64 | 33 | ||
65 | struct record { | 34 | struct record { |
66 | struct perf_tool tool; | 35 | struct perf_tool tool; |