* [lttng-dev] [PATCH lttng-tools 0/4] error.h message printing fixes
@ 2016-05-19 15:57 Mathieu Desnoyers
2016-05-19 15:57 ` [lttng-dev] [PATCH lttng-tools 1/4] Fix: add missing semicolons after MSG, DBG, ERR print macros Mathieu Desnoyers
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Mathieu Desnoyers @ 2016-05-19 15:57 UTC (permalink / raw)
Mathieu Desnoyers (4):
Fix: add missing semicolons after MSG, DBG, ERR print macros
Fix: coding style document has erroneous semicolon at end of macro
Update coding style document for macro style
Cleanup error.h __lttng_print() used for message printing
CodingStyle | 20 +++++--
src/bin/lttng/commands/add_context.c | 2 +-
src/common/consumer/consumer.c | 2 +-
src/common/error.h | 110 ++++++++++++++++++++++++++---------
src/common/runas.c | 2 +-
5 files changed, 98 insertions(+), 38 deletions(-)
--
2.1.4
^ permalink raw reply [flat|nested] 6+ messages in thread* [lttng-dev] [PATCH lttng-tools 1/4] Fix: add missing semicolons after MSG, DBG, ERR print macros 2016-05-19 15:57 [lttng-dev] [PATCH lttng-tools 0/4] error.h message printing fixes Mathieu Desnoyers @ 2016-05-19 15:57 ` Mathieu Desnoyers 2016-05-19 18:02 ` Jérémie Galarneau 2016-05-19 15:57 ` [lttng-dev] [PATCH lttng-tools 2/4] Fix: coding style document has erroneous semicolon at end of macro Mathieu Desnoyers ` (2 subsequent siblings) 3 siblings, 1 reply; 6+ messages in thread From: Mathieu Desnoyers @ 2016-05-19 15:57 UTC (permalink / raw) Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers at efficios.com> --- src/bin/lttng/commands/add_context.c | 2 +- src/common/consumer/consumer.c | 2 +- src/common/runas.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/bin/lttng/commands/add_context.c b/src/bin/lttng/commands/add_context.c index 8f8aa30..2f43dc7 100644 --- a/src/bin/lttng/commands/add_context.c +++ b/src/bin/lttng/commands/add_context.c @@ -609,7 +609,7 @@ static int add_context(char *session_name) opt_channel_name); } else { MSG("%s context %s added to all channels", - get_domain_str(dom.type), type->opt->symbol) + get_domain_str(dom.type), type->opt->symbol); } success = 1; } diff --git a/src/common/consumer/consumer.c b/src/common/consumer/consumer.c index 8b8e74c..7ce294e 100644 --- a/src/common/consumer/consumer.c +++ b/src/common/consumer/consumer.c @@ -1021,7 +1021,7 @@ struct lttng_consumer_channel *consumer_allocate_channel(uint64_t key, CDS_INIT_LIST_HEAD(&channel->streams.head); - DBG("Allocated channel (key %" PRIu64 ")", channel->key) + DBG("Allocated channel (key %" PRIu64 ")", channel->key); end: return channel; diff --git a/src/common/runas.c b/src/common/runas.c index b4828ad..2a71f58 100644 --- a/src/common/runas.c +++ b/src/common/runas.c @@ -171,7 +171,7 @@ run_as_fct run_as_enum_to_fct(enum run_as_cmd cmd) case RUN_AS_MKDIR_RECURSIVE: return _mkdir_recursive; default: - ERR("Unknown command %d", (int) cmd) + ERR("Unknown command %d", (int) cmd); return NULL; } } -- 2.1.4 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [lttng-dev] [PATCH lttng-tools 1/4] Fix: add missing semicolons after MSG, DBG, ERR print macros 2016-05-19 15:57 ` [lttng-dev] [PATCH lttng-tools 1/4] Fix: add missing semicolons after MSG, DBG, ERR print macros Mathieu Desnoyers @ 2016-05-19 18:02 ` Jérémie Galarneau 0 siblings, 0 replies; 6+ messages in thread From: Jérémie Galarneau @ 2016-05-19 18:02 UTC (permalink / raw) [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain, Size: 2217 bytes --] All four patches merged, thanks! Jérémie On Thu, May 19, 2016 at 11:57 AM, Mathieu Desnoyers <mathieu.desnoyers at efficios.com> wrote: > Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers at efficios.com> > --- > src/bin/lttng/commands/add_context.c | 2 +- > src/common/consumer/consumer.c | 2 +- > src/common/runas.c | 2 +- > 3 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/src/bin/lttng/commands/add_context.c b/src/bin/lttng/commands/add_context.c > index 8f8aa30..2f43dc7 100644 > --- a/src/bin/lttng/commands/add_context.c > +++ b/src/bin/lttng/commands/add_context.c > @@ -609,7 +609,7 @@ static int add_context(char *session_name) > opt_channel_name); > } else { > MSG("%s context %s added to all channels", > - get_domain_str(dom.type), type->opt->symbol) > + get_domain_str(dom.type), type->opt->symbol); > } > success = 1; > } > diff --git a/src/common/consumer/consumer.c b/src/common/consumer/consumer.c > index 8b8e74c..7ce294e 100644 > --- a/src/common/consumer/consumer.c > +++ b/src/common/consumer/consumer.c > @@ -1021,7 +1021,7 @@ struct lttng_consumer_channel *consumer_allocate_channel(uint64_t key, > > CDS_INIT_LIST_HEAD(&channel->streams.head); > > - DBG("Allocated channel (key %" PRIu64 ")", channel->key) > + DBG("Allocated channel (key %" PRIu64 ")", channel->key); > > end: > return channel; > diff --git a/src/common/runas.c b/src/common/runas.c > index b4828ad..2a71f58 100644 > --- a/src/common/runas.c > +++ b/src/common/runas.c > @@ -171,7 +171,7 @@ run_as_fct run_as_enum_to_fct(enum run_as_cmd cmd) > case RUN_AS_MKDIR_RECURSIVE: > return _mkdir_recursive; > default: > - ERR("Unknown command %d", (int) cmd) > + ERR("Unknown command %d", (int) cmd); > return NULL; > } > } > -- > 2.1.4 > -- Jérémie Galarneau EfficiOS Inc. http://www.efficios.com ^ permalink raw reply [flat|nested] 6+ messages in thread
* [lttng-dev] [PATCH lttng-tools 2/4] Fix: coding style document has erroneous semicolon at end of macro 2016-05-19 15:57 [lttng-dev] [PATCH lttng-tools 0/4] error.h message printing fixes Mathieu Desnoyers 2016-05-19 15:57 ` [lttng-dev] [PATCH lttng-tools 1/4] Fix: add missing semicolons after MSG, DBG, ERR print macros Mathieu Desnoyers @ 2016-05-19 15:57 ` Mathieu Desnoyers 2016-05-19 15:57 ` [lttng-dev] [PATCH lttng-tools 3/4] Update coding style document for macro style Mathieu Desnoyers 2016-05-19 15:57 ` [lttng-dev] [PATCH lttng-tools 4/4] Cleanup error.h __lttng_print() used for message printing Mathieu Desnoyers 3 siblings, 0 replies; 6+ messages in thread From: Mathieu Desnoyers @ 2016-05-19 15:57 UTC (permalink / raw) Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers at efficios.com> --- CodingStyle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CodingStyle b/CodingStyle index 8833180..1d8bd9b 100644 --- a/CodingStyle +++ b/CodingStyle @@ -36,7 +36,7 @@ Use space to indent the '\' at the end but tabs at the beginning. #define a_macro(x) \ do { \ fsync(); \ - } while (0); \ + } while (0) It's really the only time we use spaces. For everything else, there is TABS! :) -- 2.1.4 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [lttng-dev] [PATCH lttng-tools 3/4] Update coding style document for macro style 2016-05-19 15:57 [lttng-dev] [PATCH lttng-tools 0/4] error.h message printing fixes Mathieu Desnoyers 2016-05-19 15:57 ` [lttng-dev] [PATCH lttng-tools 1/4] Fix: add missing semicolons after MSG, DBG, ERR print macros Mathieu Desnoyers 2016-05-19 15:57 ` [lttng-dev] [PATCH lttng-tools 2/4] Fix: coding style document has erroneous semicolon at end of macro Mathieu Desnoyers @ 2016-05-19 15:57 ` Mathieu Desnoyers 2016-05-19 15:57 ` [lttng-dev] [PATCH lttng-tools 4/4] Cleanup error.h __lttng_print() used for message printing Mathieu Desnoyers 3 siblings, 0 replies; 6+ messages in thread From: Mathieu Desnoyers @ 2016-05-19 15:57 UTC (permalink / raw) Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers at efficios.com> --- CodingStyle | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/CodingStyle b/CodingStyle index 1d8bd9b..6ff931b 100644 --- a/CodingStyle +++ b/CodingStyle @@ -31,14 +31,22 @@ enum my_enum { #define DEFAULT_VALUE_OF_SOME_SORT 6 #define THE_ANSWER 42 -Use space to indent the '\' at the end but tabs at the beginning. +Use either a single space or tabs to indent the '\' at the end of lines. +Use tabs at the beginning of lines. -#define a_macro(x) \ - do { \ - fsync(); \ +Either: + +#define a_macro(x) \ + do { \ + fsync(); \ } while (0) -It's really the only time we use spaces. For everything else, there is TABS! :) +or + +#define a_macro(x) \ + do { \ + fsync(); \ + } while (0) Here is a pretty cool vim macro that will highlight your whitespaces and spaces before tab. This helps a *LOT* when coding. -- 2.1.4 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [lttng-dev] [PATCH lttng-tools 4/4] Cleanup error.h __lttng_print() used for message printing 2016-05-19 15:57 [lttng-dev] [PATCH lttng-tools 0/4] error.h message printing fixes Mathieu Desnoyers ` (2 preceding siblings ...) 2016-05-19 15:57 ` [lttng-dev] [PATCH lttng-tools 3/4] Update coding style document for macro style Mathieu Desnoyers @ 2016-05-19 15:57 ` Mathieu Desnoyers 3 siblings, 0 replies; 6+ messages in thread From: Mathieu Desnoyers @ 2016-05-19 15:57 UTC (permalink / raw) The loglevels have never really been a mask, and it is useless to try to use them as masks, because the compiler statically knows the value of the loglevel requested, and can therefore optimise away all the logic. This takes care of Coverity warning about mixed bitwise and boolean logic, which was technically correct, but more complex than needed. Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers at efficios.com> --- src/common/error.h | 110 +++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 81 insertions(+), 29 deletions(-) diff --git a/src/common/error.h b/src/common/error.h index 6c239fe..ad6113f 100644 --- a/src/common/error.h +++ b/src/common/error.h @@ -22,6 +22,7 @@ #include <stdio.h> #include <stdint.h> #include <string.h> +#include <stdbool.h> #include <urcu/tls-compat.h> #include <time.h> @@ -57,13 +58,79 @@ extern int lttng_opt_verbose; extern int lttng_opt_mi; /* Error type. */ -#define PRINT_ERR (1 << 0) -#define PRINT_WARN (1 << 1) -#define PRINT_BUG (1 << 2) -#define PRINT_MSG (1 << 3) -#define PRINT_DBG (1 << 4) -#define PRINT_DBG2 (1 << 5) -#define PRINT_DBG3 (1 << 6) +enum lttng_error_type { + PRINT_ERR = 0, + PRINT_BUG = 1, + PRINT_WARN = 2, + PRINT_MSG = 3, + PRINT_DBG = 4, + PRINT_DBG2 = 5, + PRINT_DBG3 = 6, +}; + +static inline bool __lttng_print_check_opt(enum lttng_error_type type) +{ + /* lttng_opt_mi and lttng_opt_quiet. */ + switch (type) { + case PRINT_DBG3: + case PRINT_DBG2: + case PRINT_DBG: + case PRINT_MSG: + if (lttng_opt_mi) { + return false; + } + /* Fall-through. */ + case PRINT_WARN: + case PRINT_BUG: + case PRINT_ERR: + if (lttng_opt_quiet) { + return false; + } + } + + /* lttng_opt_verbose */ + switch (type) { + case PRINT_DBG3: + if (lttng_opt_verbose < 3) { + return false; + } + break; + case PRINT_DBG2: + if (lttng_opt_verbose < 2) { + return false; + } + break; + case PRINT_DBG: + if (lttng_opt_verbose < 1) { + return false; + } + break; + case PRINT_MSG: + case PRINT_WARN: + case PRINT_BUG: + case PRINT_ERR: + break; + } + + return true; +} + +void lttng_abort_on_error(void); + +static inline void __lttng_print_check_abort(enum lttng_error_type type) +{ + switch (type) { + case PRINT_DBG3: + case PRINT_DBG2: + case PRINT_DBG: + case PRINT_MSG: + case PRINT_WARN: + break; + case PRINT_BUG: + case PRINT_ERR: + lttng_abort_on_error(); + } +} /* * Macro for printing message depending on command line option and verbosity. @@ -73,26 +140,13 @@ 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 && !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); \ - } \ - if ((type) & (PRINT_ERR | PRINT_BUG)) { \ - lttng_abort_on_error(); \ - } \ - } while (0); +#define __lttng_print(type, fmt, args...) \ + do { \ + if (__lttng_print_check_opt(type)) { \ + fprintf((type) == PRINT_MSG ? stdout : stderr, fmt, ## args); \ + } \ + __lttng_print_check_abort(type); \ + } while (0) /* Three level of debug. Use -v, -vv or -vvv for the levels */ #define _ERRMSG(msg, type, fmt, args...) __lttng_print(type, msg \ @@ -177,6 +231,4 @@ const char *error_get_str(int32_t code); */ const char *log_add_time(); -void lttng_abort_on_error(void); - #endif /* _ERROR_H */ -- 2.1.4 ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2016-05-19 18:02 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2016-05-19 15:57 [lttng-dev] [PATCH lttng-tools 0/4] error.h message printing fixes Mathieu Desnoyers 2016-05-19 15:57 ` [lttng-dev] [PATCH lttng-tools 1/4] Fix: add missing semicolons after MSG, DBG, ERR print macros Mathieu Desnoyers 2016-05-19 18:02 ` Jérémie Galarneau 2016-05-19 15:57 ` [lttng-dev] [PATCH lttng-tools 2/4] Fix: coding style document has erroneous semicolon at end of macro Mathieu Desnoyers 2016-05-19 15:57 ` [lttng-dev] [PATCH lttng-tools 3/4] Update coding style document for macro style Mathieu Desnoyers 2016-05-19 15:57 ` [lttng-dev] [PATCH lttng-tools 4/4] Cleanup error.h __lttng_print() used for message printing Mathieu Desnoyers
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox