1 /* 2 * Taken from perf which in turn take it from GIT 3 */ 4 5 #include "kvm/util.h" 6 7 static void report(const char *prefix, const char *err, va_list params) 8 { 9 char msg[1024]; 10 vsnprintf(msg, sizeof(msg), err, params); 11 fprintf(stderr, " %s%s\n", prefix, msg); 12 } 13 14 static NORETURN void die_builtin(const char *err, va_list params) 15 { 16 report(" Fatal: ", err, params); 17 exit(128); 18 } 19 20 static void error_builtin(const char *err, va_list params) 21 { 22 report(" Error: ", err, params); 23 } 24 25 static void warn_builtin(const char *warn, va_list params) 26 { 27 report(" Warning: ", warn, params); 28 } 29 30 static void info_builtin(const char *info, va_list params) 31 { 32 report(" Info: ", info, params); 33 } 34 35 void die(const char *err, ...) 36 { 37 va_list params; 38 39 va_start(params, err); 40 die_builtin(err, params); 41 va_end(params); 42 } 43 44 int pr_error(const char *err, ...) 45 { 46 va_list params; 47 48 va_start(params, err); 49 error_builtin(err, params); 50 va_end(params); 51 return -1; 52 } 53 54 void pr_warning(const char *warn, ...) 55 { 56 va_list params; 57 58 va_start(params, warn); 59 warn_builtin(warn, params); 60 va_end(params); 61 } 62 63 void pr_info(const char *info, ...) 64 { 65 va_list params; 66 67 va_start(params, info); 68 info_builtin(info, params); 69 va_end(params); 70 } 71 72 void die_perror(const char *s) 73 { 74 perror(s); 75 exit(1); 76 } 77