mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-02 18:56:44 +07:00
f7d82350e5
Copy over the files from trace-cmd to the Linux tools directory such that applications like perf and latencytrace can use the more advanced parsing code. Because some of the file names of perf conflict with trace-cmd file names, the trace-cmd files have been renamed as follows: parse-events.c ==> event-parse.c parse-events.h ==> event-parse.h utils.h ==> event-utils.h The files have been updated to handle the changes to the header files but other than that, they are identical to what was in the trace-cmd repository. The history of these files, including authorship is available at the git repo: git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git The Makefile was also copied over, but most of it was removed to focus on the parse-events code first. The parts of the Makefile for the plugins have also been removed, but will be added back when the plugin code is copied over as well. But that may be in its own separate directory. Signed-off-by: Steven Rostedt <rostedt@goodmis.org> Cc: Ingo Molnar <mingo@kernel.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Arnaldo Carvalho de Melo <acme@infradead.org> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Borislav Petkov <bp@alien8.de> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Arun Sharma <asharma@fb.com> Cc: Namhyung Kim <namhyung.kim@lge.com> Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
111 lines
1.4 KiB
C
111 lines
1.4 KiB
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <stdarg.h>
|
|
#include <errno.h>
|
|
|
|
#define __weak __attribute__((weak))
|
|
|
|
void __vdie(const char *fmt, va_list ap)
|
|
{
|
|
int ret = errno;
|
|
|
|
if (errno)
|
|
perror("trace-cmd");
|
|
else
|
|
ret = -1;
|
|
|
|
fprintf(stderr, " ");
|
|
vfprintf(stderr, fmt, ap);
|
|
|
|
fprintf(stderr, "\n");
|
|
exit(ret);
|
|
}
|
|
|
|
void __die(const char *fmt, ...)
|
|
{
|
|
va_list ap;
|
|
|
|
va_start(ap, fmt);
|
|
__vdie(fmt, ap);
|
|
va_end(ap);
|
|
}
|
|
|
|
void __weak die(const char *fmt, ...)
|
|
{
|
|
va_list ap;
|
|
|
|
va_start(ap, fmt);
|
|
__vdie(fmt, ap);
|
|
va_end(ap);
|
|
}
|
|
|
|
void __vwarning(const char *fmt, va_list ap)
|
|
{
|
|
if (errno)
|
|
perror("trace-cmd");
|
|
errno = 0;
|
|
|
|
fprintf(stderr, " ");
|
|
vfprintf(stderr, fmt, ap);
|
|
|
|
fprintf(stderr, "\n");
|
|
}
|
|
|
|
void __warning(const char *fmt, ...)
|
|
{
|
|
va_list ap;
|
|
|
|
va_start(ap, fmt);
|
|
__vwarning(fmt, ap);
|
|
va_end(ap);
|
|
}
|
|
|
|
void __weak warning(const char *fmt, ...)
|
|
{
|
|
va_list ap;
|
|
|
|
va_start(ap, fmt);
|
|
__vwarning(fmt, ap);
|
|
va_end(ap);
|
|
}
|
|
|
|
void __vpr_stat(const char *fmt, va_list ap)
|
|
{
|
|
vprintf(fmt, ap);
|
|
printf("\n");
|
|
}
|
|
|
|
void __pr_stat(const char *fmt, ...)
|
|
{
|
|
va_list ap;
|
|
|
|
va_start(ap, fmt);
|
|
__vpr_stat(fmt, ap);
|
|
va_end(ap);
|
|
}
|
|
|
|
void __weak vpr_stat(const char *fmt, va_list ap)
|
|
{
|
|
__vpr_stat(fmt, ap);
|
|
}
|
|
|
|
void __weak pr_stat(const char *fmt, ...)
|
|
{
|
|
va_list ap;
|
|
|
|
va_start(ap, fmt);
|
|
__vpr_stat(fmt, ap);
|
|
va_end(ap);
|
|
}
|
|
|
|
void __weak *malloc_or_die(unsigned int size)
|
|
{
|
|
void *data;
|
|
|
|
data = malloc(size);
|
|
if (!data)
|
|
die("malloc");
|
|
return data;
|
|
}
|