]> Pileus Git - ~andy/linux/blob - tools/lib/traceevent/parse-utils.c
Merge branch 'master' of git://gitorious.org/linux-can/linux-can-next
[~andy/linux] / tools / lib / traceevent / parse-utils.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 #include <stdarg.h>
5 #include <errno.h>
6
7 #define __weak __attribute__((weak))
8
9 void __vdie(const char *fmt, va_list ap)
10 {
11         int ret = errno;
12
13         if (errno)
14                 perror("trace-cmd");
15         else
16                 ret = -1;
17
18         fprintf(stderr, "  ");
19         vfprintf(stderr, fmt, ap);
20
21         fprintf(stderr, "\n");
22         exit(ret);
23 }
24
25 void __die(const char *fmt, ...)
26 {
27         va_list ap;
28
29         va_start(ap, fmt);
30         __vdie(fmt, ap);
31         va_end(ap);
32 }
33
34 void __weak die(const char *fmt, ...)
35 {
36         va_list ap;
37
38         va_start(ap, fmt);
39         __vdie(fmt, ap);
40         va_end(ap);
41 }
42
43 void __vwarning(const char *fmt, va_list ap)
44 {
45         if (errno)
46                 perror("trace-cmd");
47         errno = 0;
48
49         fprintf(stderr, "  ");
50         vfprintf(stderr, fmt, ap);
51
52         fprintf(stderr, "\n");
53 }
54
55 void __warning(const char *fmt, ...)
56 {
57         va_list ap;
58
59         va_start(ap, fmt);
60         __vwarning(fmt, ap);
61         va_end(ap);
62 }
63
64 void __weak warning(const char *fmt, ...)
65 {
66         va_list ap;
67
68         va_start(ap, fmt);
69         __vwarning(fmt, ap);
70         va_end(ap);
71 }
72
73 void __vpr_stat(const char *fmt, va_list ap)
74 {
75         vprintf(fmt, ap);
76         printf("\n");
77 }
78
79 void __pr_stat(const char *fmt, ...)
80 {
81         va_list ap;
82
83         va_start(ap, fmt);
84         __vpr_stat(fmt, ap);
85         va_end(ap);
86 }
87
88 void __weak vpr_stat(const char *fmt, va_list ap)
89 {
90         __vpr_stat(fmt, ap);
91 }
92
93 void __weak pr_stat(const char *fmt, ...)
94 {
95         va_list ap;
96
97         va_start(ap, fmt);
98         __vpr_stat(fmt, ap);
99         va_end(ap);
100 }
101
102 void __weak *malloc_or_die(unsigned int size)
103 {
104         void *data;
105
106         data = malloc(size);
107         if (!data)
108                 die("malloc");
109         return data;
110 }