blob: eda07fa31dca1058a72989669e1cc99bc5958ab3 [file] [log] [blame]
Jon Stanley2d2481d2012-09-08 14:00:51 -04001/*
2 * Copyright (C) 2010 Red Hat Inc, Steven Rostedt <srostedt@redhat.com>
3 *
4 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation;
8 * version 2.1 of the License (not later!)
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this program; if not, see <http://www.gnu.org/licenses>
17 *
18 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
19 */
Steven Rostedtf7d82352012-04-06 00:47:53 +020020#include <stdio.h>
21#include <stdlib.h>
22#include <string.h>
23#include <stdarg.h>
24#include <errno.h>
25
26#define __weak __attribute__((weak))
27
Steven Rostedtf7d82352012-04-06 00:47:53 +020028void __vwarning(const char *fmt, va_list ap)
29{
30 if (errno)
31 perror("trace-cmd");
32 errno = 0;
33
34 fprintf(stderr, " ");
35 vfprintf(stderr, fmt, ap);
36
37 fprintf(stderr, "\n");
38}
39
40void __warning(const char *fmt, ...)
41{
42 va_list ap;
43
44 va_start(ap, fmt);
45 __vwarning(fmt, ap);
46 va_end(ap);
47}
48
49void __weak warning(const char *fmt, ...)
50{
51 va_list ap;
52
53 va_start(ap, fmt);
54 __vwarning(fmt, ap);
55 va_end(ap);
56}
57
58void __vpr_stat(const char *fmt, va_list ap)
59{
60 vprintf(fmt, ap);
61 printf("\n");
62}
63
64void __pr_stat(const char *fmt, ...)
65{
66 va_list ap;
67
68 va_start(ap, fmt);
69 __vpr_stat(fmt, ap);
70 va_end(ap);
71}
72
73void __weak vpr_stat(const char *fmt, va_list ap)
74{
75 __vpr_stat(fmt, ap);
76}
77
78void __weak pr_stat(const char *fmt, ...)
79{
80 va_list ap;
81
82 va_start(ap, fmt);
83 __vpr_stat(fmt, ap);
84 va_end(ap);
85}