1*4882a593Smuzhiyun // SPDX-License-Identifier: LGPL-2.1
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun * Copyright (C) 2010 Red Hat Inc, Steven Rostedt <srostedt@redhat.com>
4*4882a593Smuzhiyun *
5*4882a593Smuzhiyun */
6*4882a593Smuzhiyun #include <stdio.h>
7*4882a593Smuzhiyun #include <stdlib.h>
8*4882a593Smuzhiyun #include <string.h>
9*4882a593Smuzhiyun #include <stdarg.h>
10*4882a593Smuzhiyun #include <errno.h>
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun #define __weak __attribute__((weak))
13*4882a593Smuzhiyun
__vwarning(const char * fmt,va_list ap)14*4882a593Smuzhiyun void __vwarning(const char *fmt, va_list ap)
15*4882a593Smuzhiyun {
16*4882a593Smuzhiyun if (errno)
17*4882a593Smuzhiyun perror("libtraceevent");
18*4882a593Smuzhiyun errno = 0;
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun fprintf(stderr, " ");
21*4882a593Smuzhiyun vfprintf(stderr, fmt, ap);
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun fprintf(stderr, "\n");
24*4882a593Smuzhiyun }
25*4882a593Smuzhiyun
__warning(const char * fmt,...)26*4882a593Smuzhiyun void __warning(const char *fmt, ...)
27*4882a593Smuzhiyun {
28*4882a593Smuzhiyun va_list ap;
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun va_start(ap, fmt);
31*4882a593Smuzhiyun __vwarning(fmt, ap);
32*4882a593Smuzhiyun va_end(ap);
33*4882a593Smuzhiyun }
34*4882a593Smuzhiyun
warning(const char * fmt,...)35*4882a593Smuzhiyun void __weak warning(const char *fmt, ...)
36*4882a593Smuzhiyun {
37*4882a593Smuzhiyun va_list ap;
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun va_start(ap, fmt);
40*4882a593Smuzhiyun __vwarning(fmt, ap);
41*4882a593Smuzhiyun va_end(ap);
42*4882a593Smuzhiyun }
43*4882a593Smuzhiyun
__vpr_stat(const char * fmt,va_list ap)44*4882a593Smuzhiyun void __vpr_stat(const char *fmt, va_list ap)
45*4882a593Smuzhiyun {
46*4882a593Smuzhiyun vprintf(fmt, ap);
47*4882a593Smuzhiyun printf("\n");
48*4882a593Smuzhiyun }
49*4882a593Smuzhiyun
__pr_stat(const char * fmt,...)50*4882a593Smuzhiyun void __pr_stat(const char *fmt, ...)
51*4882a593Smuzhiyun {
52*4882a593Smuzhiyun va_list ap;
53*4882a593Smuzhiyun
54*4882a593Smuzhiyun va_start(ap, fmt);
55*4882a593Smuzhiyun __vpr_stat(fmt, ap);
56*4882a593Smuzhiyun va_end(ap);
57*4882a593Smuzhiyun }
58*4882a593Smuzhiyun
vpr_stat(const char * fmt,va_list ap)59*4882a593Smuzhiyun void __weak vpr_stat(const char *fmt, va_list ap)
60*4882a593Smuzhiyun {
61*4882a593Smuzhiyun __vpr_stat(fmt, ap);
62*4882a593Smuzhiyun }
63*4882a593Smuzhiyun
pr_stat(const char * fmt,...)64*4882a593Smuzhiyun void __weak pr_stat(const char *fmt, ...)
65*4882a593Smuzhiyun {
66*4882a593Smuzhiyun va_list ap;
67*4882a593Smuzhiyun
68*4882a593Smuzhiyun va_start(ap, fmt);
69*4882a593Smuzhiyun __vpr_stat(fmt, ap);
70*4882a593Smuzhiyun va_end(ap);
71*4882a593Smuzhiyun }
72