summaryrefslogtreecommitdiffstats
path: root/cpukit/score/include/rtems/score/basedefs.h
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2014-08-02 16:22:31 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2014-08-05 09:30:33 +0200
commit40dcafaf80a29c20d74594853a8ff04441eabd9c (patch)
tree1541f69ee011198bd995f38069a2b1300fc4de76 /cpukit/score/include/rtems/score/basedefs.h
parentrbtree: Rename find header in find control (diff)
downloadrtems-40dcafaf80a29c20d74594853a8ff04441eabd9c.tar.bz2
Add and use RTEMS_CONTAINER_OF()
Diffstat (limited to 'cpukit/score/include/rtems/score/basedefs.h')
-rw-r--r--cpukit/score/include/rtems/score/basedefs.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/cpukit/score/include/rtems/score/basedefs.h b/cpukit/score/include/rtems/score/basedefs.h
index 382a97ac10..ec93951a4f 100644
--- a/cpukit/score/include/rtems/score/basedefs.h
+++ b/cpukit/score/include/rtems/score/basedefs.h
@@ -217,6 +217,16 @@
*/
#define RTEMS_ZERO_LENGTH_ARRAY 0
+/**
+ * @brief Returns a pointer to the container of a specified member pointer.
+ *
+ * @param[in] _m The pointer to a member of the container.
+ * @param[in] _type The type of the container.
+ * @param[in] _member_name The designator name of the container member.
+ */
+#define RTEMS_CONTAINER_OF( _m, _type, _member_name ) \
+ ( (_type *) ( (uintptr_t) ( _m ) - offsetof( _type, _member_name ) ) )
+
#ifndef ASM
#ifdef RTEMS_DEPRECATED_TYPES
typedef bool boolean;