]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - tools/perf/util/util.c
perf tools: Remove string.h, unistd.h and sys/stat.h from util.h
[karo-tx-linux.git] / tools / perf / util / util.c
index bc42c459f586d008c16c74a561f31c19a12cfe3b..6450c75a6f5b40bc28e9fe5f98cb98960cec1d10 100644 (file)
@@ -3,10 +3,8 @@
 #include "debug.h"
 #include <api/fs/fs.h>
 #include <sys/mman.h>
+#include <sys/stat.h>
 #include <sys/utsname.h>
-#ifdef HAVE_BACKTRACE_SUPPORT
-#include <execinfo.h>
-#endif
 #include <dirent.h>
 #include <inttypes.h>
 #include <signal.h>
 #include <linux/log2.h>
 #include <linux/time64.h>
 #include <unistd.h>
-#include "callchain.h"
 #include "strlist.h"
 
-#define CALLCHAIN_PARAM_DEFAULT                        \
-       .mode           = CHAIN_GRAPH_ABS,      \
-       .min_percent    = 0.5,                  \
-       .order          = ORDER_CALLEE,         \
-       .key            = CCKEY_FUNCTION,       \
-       .value          = CCVAL_PERCENT,        \
-
-struct callchain_param callchain_param = {
-       CALLCHAIN_PARAM_DEFAULT
-};
-
-struct callchain_param callchain_param_default = {
-       CALLCHAIN_PARAM_DEFAULT
-};
-
 /*
  * XXX We need to find a better place for these things...
  */
@@ -272,28 +254,6 @@ int copyfile(const char *from, const char *to)
        return copyfile_mode(from, to, 0755);
 }
 
-unsigned long convert_unit(unsigned long value, char *unit)
-{
-       *unit = ' ';
-
-       if (value > 1000) {
-               value /= 1000;
-               *unit = 'K';
-       }
-
-       if (value > 1000) {
-               value /= 1000;
-               *unit = 'M';
-       }
-
-       if (value > 1000) {
-               value /= 1000;
-               *unit = 'G';
-       }
-
-       return value;
-}
-
 static ssize_t ion(bool is_read, int fd, void *buf, size_t n)
 {
        void *buf_start = buf;
@@ -375,42 +335,6 @@ int hex2u64(const char *ptr, u64 *long_val)
        return p - ptr;
 }
 
-/* Obtain a backtrace and print it to stdout. */
-#ifdef HAVE_BACKTRACE_SUPPORT
-void dump_stack(void)
-{
-       void *array[16];
-       size_t size = backtrace(array, ARRAY_SIZE(array));
-       char **strings = backtrace_symbols(array, size);
-       size_t i;
-
-       printf("Obtained %zd stack frames.\n", size);
-
-       for (i = 0; i < size; i++)
-               printf("%s\n", strings[i]);
-
-       free(strings);
-}
-#else
-void dump_stack(void) {}
-#endif
-
-void sighandler_dump_stack(int sig)
-{
-       psignal(sig, "perf");
-       dump_stack();
-       signal(sig, SIG_DFL);
-       raise(sig);
-}
-
-int timestamp__scnprintf_usec(u64 timestamp, char *buf, size_t sz)
-{
-       u64  sec = timestamp / NSEC_PER_SEC;
-       u64 usec = (timestamp % NSEC_PER_SEC) / NSEC_PER_USEC;
-
-       return scnprintf(buf, sz, "%"PRIu64".%06"PRIu64, sec, usec);
-}
-
 unsigned long parse_tag_value(const char *str, struct parse_tag *tags)
 {
        struct parse_tag *i = tags;
@@ -438,108 +362,6 @@ unsigned long parse_tag_value(const char *str, struct parse_tag *tags)
        return (unsigned long) -1;
 }
 
-int get_stack_size(const char *str, unsigned long *_size)
-{
-       char *endptr;
-       unsigned long size;
-       unsigned long max_size = round_down(USHRT_MAX, sizeof(u64));
-
-       size = strtoul(str, &endptr, 0);
-
-       do {
-               if (*endptr)
-                       break;
-
-               size = round_up(size, sizeof(u64));
-               if (!size || size > max_size)
-                       break;
-
-               *_size = size;
-               return 0;
-
-       } while (0);
-
-       pr_err("callchain: Incorrect stack dump size (max %ld): %s\n",
-              max_size, str);
-       return -1;
-}
-
-int parse_callchain_record(const char *arg, struct callchain_param *param)
-{
-       char *tok, *name, *saveptr = NULL;
-       char *buf;
-       int ret = -1;
-
-       /* We need buffer that we know we can write to. */
-       buf = malloc(strlen(arg) + 1);
-       if (!buf)
-               return -ENOMEM;
-
-       strcpy(buf, arg);
-
-       tok = strtok_r((char *)buf, ",", &saveptr);
-       name = tok ? : (char *)buf;
-
-       do {
-               /* Framepointer style */
-               if (!strncmp(name, "fp", sizeof("fp"))) {
-                       if (!strtok_r(NULL, ",", &saveptr)) {
-                               param->record_mode = CALLCHAIN_FP;
-                               ret = 0;
-                       } else
-                               pr_err("callchain: No more arguments "
-                                      "needed for --call-graph fp\n");
-                       break;
-
-               /* Dwarf style */
-               } else if (!strncmp(name, "dwarf", sizeof("dwarf"))) {
-                       const unsigned long default_stack_dump_size = 8192;
-
-                       ret = 0;
-                       param->record_mode = CALLCHAIN_DWARF;
-                       param->dump_size = default_stack_dump_size;
-
-                       tok = strtok_r(NULL, ",", &saveptr);
-                       if (tok) {
-                               unsigned long size = 0;
-
-                               ret = get_stack_size(tok, &size);
-                               param->dump_size = size;
-                       }
-               } else if (!strncmp(name, "lbr", sizeof("lbr"))) {
-                       if (!strtok_r(NULL, ",", &saveptr)) {
-                               param->record_mode = CALLCHAIN_LBR;
-                               ret = 0;
-                       } else
-                               pr_err("callchain: No more arguments "
-                                       "needed for --call-graph lbr\n");
-                       break;
-               } else {
-                       pr_err("callchain: Unknown --call-graph option "
-                              "value: %s\n", arg);
-                       break;
-               }
-
-       } while (0);
-
-       free(buf);
-       return ret;
-}
-
-const char *get_filename_for_perf_kvm(void)
-{
-       const char *filename;
-
-       if (perf_host && !perf_guest)
-               filename = strdup("perf.data.host");
-       else if (!perf_host && perf_guest)
-               filename = strdup("perf.data.guest");
-       else
-               filename = strdup("perf.data.kvm");
-
-       return filename;
-}
-
 int perf_event_paranoid(void)
 {
        int value;
@@ -714,33 +536,3 @@ out:
 
        return tip;
 }
-
-int fetch_current_timestamp(char *buf, size_t sz)
-{
-       struct timeval tv;
-       struct tm tm;
-       char dt[32];
-
-       if (gettimeofday(&tv, NULL) || !localtime_r(&tv.tv_sec, &tm))
-               return -1;
-
-       if (!strftime(dt, sizeof(dt), "%Y%m%d%H%M%S", &tm))
-               return -1;
-
-       scnprintf(buf, sz, "%s%02u", dt, (unsigned)tv.tv_usec / 10000);
-
-       return 0;
-}
-
-int unit_number__scnprintf(char *buf, size_t size, u64 n)
-{
-       char unit[4] = "BKMG";
-       int i = 0;
-
-       while (((n / 1024) > 1) && (i < 3)) {
-               n /= 1024;
-               i++;
-       }
-
-       return scnprintf(buf, size, "%" PRIu64 "%c", n, unit[i]);
-}