From: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp> This also fixes a compiler error which happens when NDEBUG is not defined. Signed-off-by: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp> --- collie/farm/farm.h | 1 - include/compiler.h | 3 +++ include/logger.h | 54 +++++++++++++++------------------------------- include/sheep.h | 1 - include/sheepdog_proto.h | 3 ++- include/strbuf.h | 1 - include/util.h | 20 ++++++++--------- lib/event.c | 1 - lib/logger.c | 1 - lib/net.c | 1 - lib/util.c | 2 -- lib/work.c | 1 - sheep/cluster.h | 1 - sheep/sheep_priv.h | 2 +- sheepfs/volume.c | 1 - shepherd/shepherd.c | 1 - 16 files changed, 32 insertions(+), 62 deletions(-) diff --git a/collie/farm/farm.h b/collie/farm/farm.h index 5aca4d8..b2d82ed 100644 --- a/collie/farm/farm.h +++ b/collie/farm/farm.h @@ -15,7 +15,6 @@ #include "collie.h" #include "sheep.h" -#include "logger.h" #include "strbuf.h" #include "sha1.h" diff --git a/include/compiler.h b/include/compiler.h index 1cd2440..b2ae002 100644 --- a/include/compiler.h +++ b/include/compiler.h @@ -17,4 +17,7 @@ #define __printf(a, b) __attribute__((format(printf, a, b))) +/* Force a compilation error if the condition is true */ +#define BUILD_BUG_ON(condition) ((void)sizeof(struct { int: -!!(condition); })) + #endif /* SD_COMPILER_H */ diff --git a/include/logger.h b/include/logger.h index c2c4237..79eb108 100644 --- a/include/logger.h +++ b/include/logger.h @@ -46,45 +46,25 @@ int __sd_dump_variable(const char *var, const void *base_sp); void sd_backtrace(void); /* sheep log priorities, comliant with syslog spec */ -#define SDOG_EMERG LOG_EMERG -#define SDOG_ALERT LOG_ALERT -#define SDOG_CRIT LOG_CRIT -#define SDOG_ERR LOG_ERR +#define SDOG_EMERG LOG_EMERG +#define SDOG_ALERT LOG_ALERT +#define SDOG_CRIT LOG_CRIT +#define SDOG_ERR LOG_ERR #define SDOG_WARNING LOG_WARNING -#define SDOG_NOTICE LOG_NOTICE -#define SDOG_INFO LOG_INFO -#define SDOG_DEBUG LOG_DEBUG +#define SDOG_NOTICE LOG_NOTICE +#define SDOG_INFO LOG_INFO +#define SDOG_DEBUG LOG_DEBUG -#define sd_printf(level, fmt, args...) \ - do { \ - log_write(level, __func__, __LINE__, fmt, ##args); \ - } while (0) +#define sd_printf(level, fmt, args...) \ + log_write(level, __func__, __LINE__, fmt, ##args) +#define sd_iprintf(fmt, args...) sd_printf(SDOG_INFO, fmt, ##args) +#define sd_eprintf(fmt, args...) sd_printf(SDOG_ERR, fmt, ##args) +#define sd_dprintf(fmt, args...) sd_printf(SDOG_DEBUG, fmt, ##args) -#define panic(fmt, args...) \ - ({ \ - sd_printf(SDOG_EMERG, "PANIC: " fmt, ##args); \ - abort(); \ - }) - -#define sd_iprintf(fmt, args...) \ - do { \ - log_write(SDOG_INFO, __func__, __LINE__, fmt, ##args); \ - } while (0) - -#define sd_eprintf(fmt, args...) \ - do { \ - log_write(SDOG_ERR, __func__, __LINE__, fmt, ##args); \ - } while (0) - -#define sd_dprintf(fmt, args...) \ - do { \ - log_write(SDOG_DEBUG, __func__, __LINE__, fmt, ##args); \ - } while (0) - -static inline void do_assert(const char *expr, const char *func, int line) -{ - log_write(SDOG_EMERG, func, line, "Asserting `%s' failed.", expr); - abort(); -} +#define panic(fmt, args...) \ +({ \ + sd_printf(SDOG_EMERG, "PANIC: " fmt, ##args); \ + abort(); \ +}) #endif /* LOG_H */ diff --git a/include/sheep.h b/include/sheep.h index 9c7f96d..b8d7901 100644 --- a/include/sheep.h +++ b/include/sheep.h @@ -16,7 +16,6 @@ #include "util.h" #include "list.h" #include "net.h" -#include "logger.h" struct sd_vnode { struct node_id nid; diff --git a/include/sheepdog_proto.h b/include/sheepdog_proto.h index 156457a..4e302e9 100644 --- a/include/sheepdog_proto.h +++ b/include/sheepdog_proto.h @@ -13,9 +13,10 @@ #include <inttypes.h> #include <stdint.h> +#include <stdbool.h> #include <linux/limits.h> -#include "util.h" +#include "compiler.h" #define SD_PROTO_VER 0x02 diff --git a/include/strbuf.h b/include/strbuf.h index 62eada1..5f599a2 100644 --- a/include/strbuf.h +++ b/include/strbuf.h @@ -7,7 +7,6 @@ #include <stdio.h> #include <stdlib.h> -#include "logger.h" #include "util.h" struct strbuf { diff --git a/include/util.h b/include/util.h index 4611cae..b2c5395 100644 --- a/include/util.h +++ b/include/util.h @@ -11,6 +11,7 @@ #include <search.h> #include <urcu/uatomic.h> +#include "logger.h" #include "bitops.h" #include "list.h" #include "compiler.h" @@ -159,18 +160,19 @@ int atomic_create_and_write(const char *path, char *buf, size_t len, }) #ifdef assert -#undef assert +#error "Don't include assert.h, use util.h for assert()" #endif #ifndef NDEBUG - -#define assert(expr) ((expr) ? \ - (void)0 : do_assert(#expr, __func__, __LINE__)) - +#define assert(expr) \ +({ \ + if (!(expr)) { \ + sd_printf(SDOG_EMERG, "Asserting `%s' failed.", #expr); \ + abort(); \ + } \ +}) #else - #define assert(expr) ((void)0) - #endif /* NDEBUG */ /* urcu helpers */ @@ -266,8 +268,4 @@ static inline bool is_stdout_console(void) extern mode_t sd_def_fmode; extern mode_t sd_def_dmode; - -/* Force a compilation error if the condition is true */ -#define BUILD_BUG_ON(condition) ((void)sizeof(struct { int: -!!(condition); })) - #endif diff --git a/lib/event.c b/lib/event.c index 3f29d97..0c69ac8 100644 --- a/lib/event.c +++ b/lib/event.c @@ -19,7 +19,6 @@ #include "list.h" #include "util.h" #include "event.h" -#include "logger.h" static int efd; static LIST_HEAD(events_list); diff --git a/lib/logger.c b/lib/logger.c index e957706..ad2bc6a 100644 --- a/lib/logger.c +++ b/lib/logger.c @@ -35,7 +35,6 @@ #include <execinfo.h> #include <linux/limits.h> -#include "logger.h" #include "util.h" static bool colorize; diff --git a/lib/net.c b/lib/net.c index d3e8e91..97be3df 100644 --- a/lib/net.c +++ b/lib/net.c @@ -32,7 +32,6 @@ #include "util.h" #include "event.h" #include "net.h" -#include "logger.h" int conn_tx_off(struct connection *conn) { diff --git a/lib/util.c b/lib/util.c index 417328b..69bedfb 100644 --- a/lib/util.c +++ b/lib/util.c @@ -18,14 +18,12 @@ #include <sys/stat.h> #include <unistd.h> #include <stdio.h> -#include <assert.h> #include <ctype.h> #include <signal.h> #include <sys/xattr.h> #include <fcntl.h> #include "util.h" -#include "logger.h" mode_t sd_def_dmode = S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IWGRP | S_IXGRP; mode_t sd_def_fmode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP; diff --git a/lib/work.c b/lib/work.c index b09c0db..49364c7 100644 --- a/lib/work.c +++ b/lib/work.c @@ -30,7 +30,6 @@ #include "list.h" #include "util.h" #include "work.h" -#include "logger.h" #include "event.h" /* diff --git a/sheep/cluster.h b/sheep/cluster.h index 041578b..2c9c779 100644 --- a/sheep/cluster.h +++ b/sheep/cluster.h @@ -21,7 +21,6 @@ #include "sheepdog_proto.h" #include "sheep.h" -#include "logger.h" #include "config.h" /* maximum payload size sent in ->notify and ->unblock */ diff --git a/sheep/sheep_priv.h b/sheep/sheep_priv.h index ab7778b..4d7f28e 100644 --- a/sheep/sheep_priv.h +++ b/sheep/sheep_priv.h @@ -33,7 +33,7 @@ #include "sheepdog_proto.h" #include "event.h" -#include "logger.h" +#include "util.h" #include "work.h" #include "net.h" #include "sheep.h" diff --git a/sheepfs/volume.c b/sheepfs/volume.c index 4000e97..f387962 100644 --- a/sheepfs/volume.c +++ b/sheepfs/volume.c @@ -18,7 +18,6 @@ #include <stdlib.h> #include <stdio.h> #include <time.h> -#include <assert.h> #include <urcu/uatomic.h> #include <pthread.h> diff --git a/shepherd/shepherd.c b/shepherd/shepherd.c index 6e102b3..f85832f 100644 --- a/shepherd/shepherd.c +++ b/shepherd/shepherd.c @@ -15,7 +15,6 @@ #include <stdbool.h> #include <stdint.h> #include <errno.h> -#include <assert.h> #include <getopt.h> #include <unistd.h> -- 1.7.9.5 |