Fix: kernel tracing: flush after stop
[lttng-tools.git] / src / common / error.h
index 1ee6e675a5b752eb600c0e2f4d19dc2891fcd6e7..f2a31dfa1389bf5c176b3b9645be2c4600452d43 100644 (file)
 #include <lttng/lttng-error.h>
 #include <common/compat/tid.h>
 
+/* Avoid conflict with Solaris <sys/regset.h> */
+#if defined(ERR) && defined(__sun__)
+#undef ERR
+#endif
+
 /* Stringify the expansion of a define */
 #define XSTR(d) STR(d)
 #define STR(s) #s
@@ -68,23 +73,22 @@ extern int lttng_opt_mi;
  * want any nested msg to show up when printing mi to stdout(if it's the case).
  * All warnings and errors should be printed to stderr as normal.
  */
-#define __lttng_print(type, fmt, args...)                           \
-       do {                                                            \
-               if (lttng_opt_quiet == 0 && lttng_opt_mi == 0 &&            \
-                               type == PRINT_MSG) {                                \
-                       fprintf(stdout, fmt, ## args);                          \
-               } else if (lttng_opt_quiet == 0 && lttng_opt_mi == 0 &&     \
-                               (((type & PRINT_DBG) && lttng_opt_verbose == 1) ||  \
-                               ((type & (PRINT_DBG | PRINT_DBG2)) &&               \
-                                       lttng_opt_verbose == 2) ||                      \
-                               ((type & (PRINT_DBG | PRINT_DBG2 | PRINT_DBG3)) &&  \
-                                       lttng_opt_verbose == 3))) {                     \
-                       fprintf(stderr, fmt, ## args);                          \
-               } else if (lttng_opt_quiet == 0 && (type & (PRINT_WARN))) { \
-                       fprintf(stderr, fmt, ## args);                          \
-               } else if (type & (PRINT_ERR | PRINT_BUG)) {                \
-                       fprintf(stderr, fmt, ## args);                          \
-               }                                                           \
+#define __lttng_print(type, fmt, args...)                                          \
+       do {                                                                       \
+               if (!lttng_opt_quiet&& !lttng_opt_mi &&                            \
+                               type == PRINT_MSG) {                               \
+                       fprintf(stdout, fmt, ## args);                             \
+               } else if (!lttng_opt_quiet && !lttng_opt_mi &&                    \
+                               (((type & PRINT_DBG) && lttng_opt_verbose == 1) || \
+                               ((type & (PRINT_DBG | PRINT_DBG2)) &&              \
+                                       lttng_opt_verbose == 2) ||                 \
+                               ((type & (PRINT_DBG | PRINT_DBG2 | PRINT_DBG3)) && \
+                                       lttng_opt_verbose == 3))) {                \
+                       fprintf(stderr, fmt, ## args);                             \
+               } else if (!lttng_opt_quiet &&                                     \
+                               (type & (PRINT_WARN | PRINT_ERR | PRINT_BUG))) {   \
+                       fprintf(stderr, fmt, ## args);                             \
+               }                                                                  \
        } while (0);
 
 /* Three level of debug. Use -v, -vv or -vvv for the levels */
@@ -106,6 +110,34 @@ extern int lttng_opt_mi;
 #define DBG(fmt, args...) _ERRMSG("DEBUG1", PRINT_DBG, fmt, ## args)
 #define DBG2(fmt, args...) _ERRMSG("DEBUG2", PRINT_DBG2, fmt, ## args)
 #define DBG3(fmt, args...) _ERRMSG("DEBUG3", PRINT_DBG3, fmt, ## args)
+#define LOG(type, fmt, args...)                        \
+       do {                                    \
+               switch (type) {                 \
+               case PRINT_ERR:                 \
+                       ERR(fmt, ## args);      \
+                       break;                  \
+               case PRINT_WARN:                \
+                       WARN(fmt, ## args);     \
+                       break;                  \
+               case PRINT_BUG:                 \
+                       BUG(fmt, ## args);      \
+                       break;                  \
+               case PRINT_MSG:                 \
+                       MSG(fmt, ## args);      \
+                       break;                  \
+               case PRINT_DBG:                 \
+                       DBG(fmt, ## args);      \
+                       break;                  \
+               case PRINT_DBG2:                \
+                       DBG2(fmt, ## args);     \
+                       break;                  \
+               case PRINT_DBG3:                \
+                       DBG3(fmt, ## args);     \
+                       break;                  \
+               default:                        \
+                       assert(0);              \
+               }                               \
+       } while(0);
 
 #define _PERROR(fmt, args...) _ERRMSG("PERROR", PRINT_ERR, fmt, ## args)
 
This page took 0.024882 seconds and 4 git commands to generate.