Mirror of the lttng-dev mailing list
 help / color / mirror / Atom feed
From: mathieu.desnoyers@efficios.com (Mathieu Desnoyers)
Subject: [lttng-dev] [PATCH 04/20] lttng: BUILD_RUNTIME_BUG_ON
Date: Mon, 28 Nov 2011 07:42:11 -0500	[thread overview]
Message-ID: <1322484147-30598-5-git-send-email-mathieu.desnoyers@efficios.com> (raw)
In-Reply-To: <1322484147-30598-1-git-send-email-mathieu.desnoyers@efficios.com>

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
---
 drivers/staging/lttng/lib/bug.h |   29 +++++++++++++++++++++++++++++
 1 files changed, 29 insertions(+), 0 deletions(-)
 create mode 100644 drivers/staging/lttng/lib/bug.h

diff --git a/drivers/staging/lttng/lib/bug.h b/drivers/staging/lttng/lib/bug.h
new file mode 100644
index 0000000..8243cc9
--- /dev/null
+++ b/drivers/staging/lttng/lib/bug.h
@@ -0,0 +1,29 @@
+#ifndef _LTTNG_BUG_H
+#define _LTTNG_BUG_H
+
+/*
+ * lib/bug.h
+ *
+ * (C) Copyright 2010-2011 - Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
+ *
+ * Dual LGPL v2.1/GPL v2 license.
+ */
+
+/**
+ * BUILD_RUNTIME_BUG_ON - check condition at build (if constant) or runtime
+ * @condition: the condition which should be false.
+ *
+ * If the condition is a constant and true, the compiler will generate a build
+ * error. If the condition is not constant, a BUG will be triggered at runtime
+ * if the condition is ever true. If the condition is constant and false, no
+ * code is emitted.
+ */
+#define BUILD_RUNTIME_BUG_ON(condition)				\
+	do {							\
+		if (__builtin_constant_p(condition))		\
+			BUILD_BUG_ON(condition);		\
+		else						\
+			BUG_ON(condition);			\
+	} while (0)
+
+#endif
-- 
1.7.2.5




  parent reply	other threads:[~2011-11-28 12:42 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-28 12:42 [lttng-dev] LTTng driver submission for staging (2nd attempt) Mathieu Desnoyers
2011-11-28 12:42 ` [lttng-dev] [PATCH 01/20] lttng lib: lttng priority heap Mathieu Desnoyers
2011-11-28 12:42 ` [lttng-dev] [PATCH 02/20] lttng lib: ring buffer Mathieu Desnoyers
2011-11-28 12:42 ` [lttng-dev] [PATCH 03/20] lttng lib: portable bitfield read/write header Mathieu Desnoyers
2011-11-28 12:42 ` Mathieu Desnoyers [this message]
2011-11-28 12:42 ` [lttng-dev] [PATCH 05/20] lttng: offset alignment header Mathieu Desnoyers
2011-11-28 12:42 ` [lttng-dev] [PATCH 06/20] lttng libs: add Makefile Mathieu Desnoyers
2011-11-28 12:42 ` [lttng-dev] [PATCH 07/20] lttng wrappers Mathieu Desnoyers
2011-11-29  1:04   ` Greg KH
2011-11-29  2:22     ` Mathieu Desnoyers
2011-11-30  6:23       ` Greg KH
2011-11-28 12:42 ` [lttng-dev] [PATCH 08/20] lttng instrumentation: tracepoint events Mathieu Desnoyers
2011-11-28 12:42 ` [lttng-dev] [PATCH 09/20] lttng: syscall instrumentation Mathieu Desnoyers
2011-11-28 12:42 ` [lttng-dev] [PATCH 10/20] lttng: lib ring buffer clients Mathieu Desnoyers
2011-11-28 12:42 ` [lttng-dev] [PATCH 11/20] lttng: tracer control and core structures Mathieu Desnoyers
2011-11-28 12:42 ` [lttng-dev] [PATCH 12/20] lttng: dynamically selectable context information Mathieu Desnoyers
2011-11-28 12:42 ` [lttng-dev] [PATCH 13/20] lttng: timing calibration feature Mathieu Desnoyers
2011-11-28 12:42 ` [lttng-dev] [PATCH 14/20] lttng: debugfs and procfs ABI Mathieu Desnoyers
2011-11-28 12:42 ` [lttng-dev] [PATCH 15/20] lttng: Add documentation and TODO files Mathieu Desnoyers
2011-11-28 12:42 ` [lttng-dev] [PATCH 16/20] lttng: add system call instrumentation probe Mathieu Desnoyers
2011-11-28 12:42 ` [lttng-dev] [PATCH 17/20] lttng: probe callbacks Mathieu Desnoyers
2011-11-28 12:42 ` [lttng-dev] [PATCH 18/20] lttng: toplevel Makefile and Kconfig Mathieu Desnoyers
2011-11-28 12:42 ` [lttng-dev] [PATCH 19/20] staging: add LTTng to build Mathieu Desnoyers
2011-11-28 12:42 ` [lttng-dev] [PATCH 20/20] Add LTTng entry to MAINTAINERS file Mathieu Desnoyers
2011-11-29  1:07 ` [lttng-dev] LTTng driver submission for staging (2nd attempt) Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1322484147-30598-5-git-send-email-mathieu.desnoyers@efficios.com \
    --to=mathieu.desnoyers@efficios.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox