1 /* Public domain. */ 2 3 #ifndef _LINUX_CONTAINER_OF_H 4 #define _LINUX_CONTAINER_OF_H 5 6 #define container_of(ptr, type, member) ({ \ 7 const __typeof( ((type *)0)->member ) *__mptr = (ptr); \ 8 (type *)( (char *)__mptr - offsetof(type,member) );}) 9 10 #define typeof_member(s, e) typeof(((s *)0)->e) 11 12 #endif 13