diff options
Diffstat (limited to 'include/common.h')
| -rw-r--r-- | include/common.h | 11 | 
1 files changed, 11 insertions, 0 deletions
| diff --git a/include/common.h b/include/common.h index d0f57040e..26e1b469a 100644 --- a/include/common.h +++ b/include/common.h @@ -176,6 +176,17 @@ typedef void (interrupt_handler_t)(void *);  		(__x > __y) ? __x : __y; }) +/** + * container_of - cast a member of a structure out to the containing structure + * @ptr:	the pointer to the member. + * @type:	the type of the container struct this is embedded in. + * @member:	the name of the member within the struct. + * + */ +#define container_of(ptr, type, member) ({			\ +	const typeof( ((type *)0)->member ) *__mptr = (ptr);	\ +	(type *)( (char *)__mptr - offsetof(type,member) );}) +  /*   * Function Prototypes   */ |