lttng-ctl: add an lttng_event_extended distinct from communication structures
[lttng-tools.git] / src / common / macros.h
index 90849ed30ae5e543a577f9214bc33152864751f8..28c21d5b8188ebd786d710cba5c1ceba8132154e 100644 (file)
@@ -20,6 +20,7 @@
 #define _MACROS_H
 
 #include <stdlib.h>
+#include <stddef.h>
 #include <string.h>
 #include <common/compat/string.h>
 
@@ -58,6 +59,14 @@ void *zmalloc(size_t len)
 #define ARRAY_SIZE(array)   (sizeof(array) / (sizeof((array)[0])))
 #endif
 
+#ifndef container_of
+#define container_of(ptr, type, member)                                        \
+       ({                                                              \
+               const typeof(((type *)NULL)->member) * __ptr = (ptr);   \
+               (type *)((char *)__ptr - offsetof(type, member));       \
+       })
+#endif
+
 #ifndef max
 #define max(a, b) ((a) > (b) ? (a) : (b))
 #endif
@@ -97,17 +106,11 @@ void *zmalloc(size_t len)
 static inline
 int lttng_strncpy(char *dst, const char *src, size_t dst_len)
 {
-       if (lttng_strnlen(src, dst_len) == dst_len) {
+       if (lttng_strnlen(src, dst_len) >= dst_len) {
                /* Fail since copying would result in truncation. */
                return -1;
        }
-       strncpy(dst, src, dst_len);
-       /*
-        * Be extra careful and put final \0 at the end after strncpy(),
-        * even though we checked the length before. This makes Coverity
-        * happy.
-        */
-       dst[dst_len - 1] = '\0';
+       strcpy(dst, src);
        return 0;
 }
 
This page took 0.02383 seconds and 4 git commands to generate.