1 #ifndef MSG__H__ 2 #define MSG__H__ 3 4 #include "sysdeps.h" 5 #include <stdarg.h> 6 #include "debug.h" 7 8 extern const char program[] __attribute__((__weak__)); 9 extern const int msg_show_pid __attribute__((__weak__)); 10 11 void msg_common(const char* type, const char*, const char*, const char*, const char*, const char*, const char*, int); 12 void msg_commonf(const char* type, int showsys, const char* format, ...); 13 void msg_commonfv(const char* type, int showsys, const char* format, va_list ap); 14 #define msg(a,b,c,d,e,f) msg_common(0,a,b,c,d,e,f,0) 15 void msg_warn(const char*, const char*, const char*, const char*, const char*, const char*, int); 16 void msg_warnf(int showsys, const char* format, ...); 17 void msg_error(const char*, const char*, const char*, const char*, const char*, const char*, int); 18 void msg_errorf(int showsys, const char* format, ...); 19 void msg_die(int code, const char* a, const char* b, const char* c, const char* d, const char* e, const char* f, int showsys) __NORETURN__; 20 void msg_dief(int code, int showsys, const char* format, ...) __NORETURN__; 21 22 #define msg1(a) msg(a,0,0,0,0,0) 23 #define msg2(a,b) msg(a,b,0,0,0,0) 24 #define msg3(a,b,c) msg(a,b,c,0,0,0) 25 #define msg4(a,b,c,d) msg(a,b,c,d,0,0) 26 #define msg5(a,b,c,d,e) msg(a,b,c,d,e,0) 27 #define msg6(a,b,c,d,e,f) msg(a,b,c,d,e,f) 28 #define msgf(f,...) msg_commonf(0,0,f,__VA_ARGS__) 29 30 #define warn1(a) msg_warn(a,0,0,0,0,0,0) 31 #define warn2(a,b) msg_warn(a,b,0,0,0,0,0) 32 #define warn3(a,b,c) msg_warn(a,b,c,0,0,0,0) 33 #define warn4(a,b,c,d) msg_warn(a,b,c,d,0,0,0) 34 #define warn5(a,b,c,d,e) msg_warn(a,b,c,d,e,0,0) 35 #define warn6(a,b,c,d,e,f) msg_warn(a,b,c,d,e,f,0) 36 #define warnf(f,...) msg_warnf(0,f,__VA_ARGS__) 37 38 #define error1(a) msg_error(a,0,0,0,0,0,0) 39 #define error2(a,b) msg_error(a,b,0,0,0,0,0) 40 #define error3(a,b,c) msg_error(a,b,c,0,0,0,0) 41 #define error4(a,b,c,d) msg_error(a,b,c,d,0,0,0) 42 #define error5(a,b,c,d,e) msg_error(a,b,c,d,e,0,0) 43 #define error6(a,b,c,d,e,f) msg_error(a,b,c,d,e,f,0) 44 #define errorf(f,...) msg_errorf(0,f,__VA_ARGS__) 45 46 #define die1(x,a) msg_die(x,a,0,0,0,0,0,0) 47 #define die2(x,a,b) msg_die(x,a,b,0,0,0,0,0) 48 #define die3(x,a,b,c) msg_die(x,a,b,c,0,0,0,0) 49 #define die4(x,a,b,c,d) msg_die(x,a,b,c,d,0,0,0) 50 #define die5(x,a,b,c,d,e) msg_die(x,a,b,c,d,e,0,0) 51 #define die6(x,a,b,c,d,e,f) msg_die(x,a,b,c,d,e,f,0) 52 #define dief(x,f,...) msg_dief(x,0,f,__VA_ARGS__) 53 54 #define warn1sys(a) msg_warn(a,0,0,0,0,0,1) 55 #define warn2sys(a,b) msg_warn(a,b,0,0,0,0,1) 56 #define warn3sys(a,b,c) msg_warn(a,b,c,0,0,0,1) 57 #define warn4sys(a,b,c,d) msg_warn(a,b,c,d,0,0,1) 58 #define warn5sys(a,b,c,d,e) msg_warn(a,b,c,d,e,0,1) 59 #define warn6sys(a,b,c,d,e,f) msg_warn(a,b,c,d,e,f,1) 60 #define warnfsys(f,...) msg_warnf(1,f,__VA_ARGS__) 61 62 #define error1sys(a) msg_error(a,0,0,0,0,0,1) 63 #define error2sys(a,b) msg_error(a,b,0,0,0,0,1) 64 #define error3sys(a,b,c) msg_error(a,b,c,0,0,0,1) 65 #define error4sys(a,b,c,d) msg_error(a,b,c,d,0,0,1) 66 #define error5sys(a,b,c,d,e) msg_error(a,b,c,d,e,0,1) 67 #define error6sys(a,b,c,d,e,f) msg_error(a,b,c,d,e,f,1) 68 #define errorfsys(f,...) msg_errorf(1,f,__VA_ARGS__) 69 70 #define die1sys(x,a) msg_die(x,a,0,0,0,0,0,1) 71 #define die2sys(x,a,b) msg_die(x,a,b,0,0,0,0,1) 72 #define die3sys(x,a,b,c) msg_die(x,a,b,c,0,0,0,1) 73 #define die4sys(x,a,b,c,d) msg_die(x,a,b,c,d,0,0,1) 74 #define die5sys(x,a,b,c,d,e) msg_die(x,a,b,c,d,e,0,1) 75 #define die6sys(x,a,b,c,d,e,f) msg_die(x,a,b,c,d,e,f,1) 76 #define diefsys(x,f,...) msg_dief(x,1,f,__VA_ARGS__) 77 78 extern void die_oom(int); 79 80 #endif 81