#include #include #include #include #include #define __weak __attribute__((weak)) void __vdie(const char *fmt, va_list ap) { int ret = errno; if (errno) perror("trace-cmd"); else ret = -1; fprintf(stderr, " "); vfprintf(stderr, fmt, ap); fprintf(stderr, "\n"); exit(ret); } void __die(const char *fmt, ...) { va_list ap; va_start(ap, fmt); __vdie(fmt, ap); va_end(ap); } void __weak die(const char *fmt, ...) { va_list ap; va_start(ap, fmt); __vdie(fmt, ap); va_end(ap); } void __vwarning(const char *fmt, va_list ap) { if (errno) perror("trace-cmd"); errno = 0; fprintf(stderr, " "); vfprintf(stderr, fmt, ap); fprintf(stderr, "\n"); } void __warning(const char *fmt, ...) { va_list ap; va_start(ap, fmt); __vwarning(fmt, ap); va_end(ap); } void __weak warning(const char *fmt, ...) { va_list ap; va_start(ap, fmt); __vwarning(fmt, ap); va_end(ap); } void __vpr_stat(const char *fmt, va_list ap) { vprintf(fmt, ap); printf("\n"); } void __pr_stat(const char *fmt, ...) { va_list ap; va_start(ap, fmt); __vpr_stat(fmt, ap); va_end(ap); } void __weak vpr_stat(const char *fmt, va_list ap) { __vpr_stat(fmt, ap); } void __weak pr_stat(const char *fmt, ...) { va_list ap; va_start(ap, fmt); __vpr_stat(fmt, ap); va_end(ap); } void __weak *malloc_or_die(unsigned int size) { void *data; data = malloc(size); if (!data) die("malloc"); return data; }