configure: attempt to link against tcmalloc by default if available
[fio.git] / flist.h
diff --git a/flist.h b/flist.h
index d453e791e9072eb67b37c5ff6038bf8ff8eae2fc..5437cd80da85ab7581b2282f52669510ef682d20 100644 (file)
--- a/flist.h
+++ b/flist.h
@@ -2,16 +2,10 @@
 #define _LINUX_FLIST_H
 
 #include <stdlib.h>
+#include <stddef.h>
 
-#undef offsetof
-#ifdef __compiler_offsetof
-#define offsetof(TYPE,MEMBER) __compiler_offsetof(TYPE,MEMBER)
-#else
-#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
-#endif
-
-#define container_of(ptr, type, member) ({                     \
-       const typeof( ((type *)0)->member ) *__mptr = (ptr);    \
+#define container_of(ptr, type, member)  ({                    \
+       const __typeof__( ((type *)0)->member ) *__mptr = (ptr);        \
        (type *)( (char *)__mptr - offsetof(type,member) );})
 
 /*
@@ -177,6 +171,9 @@ static inline void flist_splice_init(struct flist_head *list,
 #define flist_first_entry(ptr, type, member) \
        flist_entry((ptr)->next, type, member)
 
+#define flist_last_entry(ptr, type, member) \
+       flist_entry((ptr)->prev, type, member)
+
 /**
  * flist_for_each      -       iterate over a list
  * @pos:       the &struct flist_head to use as a loop counter.