Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
parse-utils.c
Go to the documentation of this file.
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 }