mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-02 06:26:39 +07:00
5f05182fab
The traceevent lib is used by the perf tool, and when executing perf test -v 6 it outputs error log on the ARM64 platform: running test 33 '*:*'trace-cmd: No such file or directory [...] trace-cmd: Invalid argument The trace event parsing code originally came from trace-cmd so it keeps the tag string "trace-cmd" for errors, this easily introduces the impression that the perf tool launches trace-cmd command for trace event parsing, but in fact the related parsing is accomplished by the traceevent lib. This patch changes the tag string to "libtraceevent" so that we can avoid confusion and let users to more easily connect the error with traceevent lib. Signed-off-by: Leo Yan <leo.yan@linaro.org> Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org> Link: http://lkml.kernel.org/r/20190424013802.27569-1-leo.yan@linaro.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
72 lines
1.0 KiB
C
72 lines
1.0 KiB
C
// SPDX-License-Identifier: LGPL-2.1
|
|
/*
|
|
* Copyright (C) 2010 Red Hat Inc, Steven Rostedt <srostedt@redhat.com>
|
|
*
|
|
*/
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <stdarg.h>
|
|
#include <errno.h>
|
|
|
|
#define __weak __attribute__((weak))
|
|
|
|
void __vwarning(const char *fmt, va_list ap)
|
|
{
|
|
if (errno)
|
|
perror("libtraceevent");
|
|
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);
|
|
}
|