Move container_of macro to common.h 99/182499/4
authorPaweł Szewczyk <p.szewczyk@samsung.com>
Mon, 25 Jun 2018 10:57:23 +0000 (12:57 +0200)
committerPaweł Szewczyk <p.szewczyk@samsung.com>
Tue, 26 Jun 2018 13:40:14 +0000 (15:40 +0200)
The container_of macro can be used by many modules. This commit moves it
to common header to prevent duplication.

Change-Id: I3d87766b561db8f67354d0abe8784ea62d05016d
Signed-off-by: Paweł Szewczyk <p.szewczyk@samsung.com>
hw/common.h
hw/usb_gadget.h

index 76c88f4..46134b9 100644 (file)
@@ -24,6 +24,7 @@
 extern "C" {
 #endif
 
+#include <stddef.h>
 #include <stdint.h>
 
 #define MAKE_TAG_CONSTANT(A,B,C,D)     (((A) << 24) | ((B) << 16) | ((C) << 8) | (D))
@@ -86,6 +87,13 @@ int hw_get_info(const char *id, const struct hw_info **info);
        __attribute__ ((visibility("default"))) \
        struct hw_info HARDWARE_INFO_SYM
 
+#ifndef container_of
+#define container_of(ptr, type, member) ({                      \
+        const typeof( ((type *)0)->member ) *__mptr = (ptr);    \
+        (type *)( (char *)__mptr - offsetof(type,member) );})
+#endif
+
+
 #ifdef __cplusplus
 }
 #endif
index 48f6aaf..4c49e70 100755 (executable)
  */
 #define USB_GADGET_DEVICE_VERSION      MAKE_VERSION(0,1)
 
-#ifndef container_of
-#define container_of(ptr, type, member) ({                      \
-        const typeof( ((type *)0)->member ) *__mptr = (ptr);    \
-        (type *)( (char *)__mptr - offsetof(type,member) );})
-#endif
-
 #define _HELPER_Y(x) ((x) & -(x))
 
 /* Count number of trailing zeros using Dean Gaudet's algorithm */