Fix: liblttng-ctl comm: lttng_channel is not packed
[lttng-tools.git] / src / common / macros.h
index af9cb7e19bca6ac8eb632e2a5b6941d04aff285c..43a4d692b80fbad0a5a42f03f2ceffc3450c63a1 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011 David Goulet <david.goulet@polymtl.ca>
+ * Copyright (C) 2011 EfficiOS Inc.
  * Copyright (C) 2011 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
  *
  * SPDX-License-Identifier: GPL-2.0-only
@@ -74,6 +74,7 @@ void *zmalloc(size_t len)
 #define member_sizeof(type, field)     sizeof(((type *) 0)->field)
 
 #define ASSERT_LOCKED(lock) LTTNG_ASSERT(pthread_mutex_trylock(&lock))
+#define ASSERT_RCU_READ_LOCKED(lock) LTTNG_ASSERT(rcu_read_ongoing())
 
 /* Attribute suitable to tag functions as having printf()-like arguments. */
 #define ATTR_FORMAT_PRINTF(_string_index, _first_to_check) \
@@ -101,6 +102,13 @@ void *zmalloc(size_t len)
        _Pragma("GCC diagnostic ignored \"-Wformat-nonliteral\"")
 #endif
 
+/* Used to make specific C++ functions to C code. */
+#ifdef __cplusplus
+#define C_LINKAGE extern "C"
+#else
+#define C_LINKAGE
+#endif
+
 /*
  * lttng_strncpy returns 0 on success, or nonzero on failure.
  * It checks that the @src string fits into @dst_len before performing
This page took 0.023419 seconds and 4 git commands to generate.