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 #define container_of_const(p, t, m)	container_of(p, t, m)
10 
11 #define typeof_member(s, e)	typeof(((s *)0)->e)
12 
13 #endif
14