at v3.6 1.5 kB view raw
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 9void __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 25void __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 34void __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 43void __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 55void __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 64void __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 73void __vpr_stat(const char *fmt, va_list ap) 74{ 75 vprintf(fmt, ap); 76 printf("\n"); 77} 78 79void __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 88void __weak vpr_stat(const char *fmt, va_list ap) 89{ 90 __vpr_stat(fmt, ap); 91} 92 93void __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 102void __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}