sm_print_msg
#define sm_msg(msg...) do { sm_print_msg(0, msg); } while (0)
#define sm_warning(msg...) do { sm_print_msg(1, msg); } while (0)
#define sm_error(msg...) do { sm_print_msg(2, msg); } while (0)
#define sm_perror(msg...) do { sm_print_msg(3, msg); } while (0)