/* SPDX-License-Identifier: GPL-2.0 */ #ifndef _TOOLS_LINUX_CONTAINER_OF_H #define _TOOLS_LINUX_CONTAINER_OF_H #ifndef container_of /** * 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)); }) #endif #endif /* _TOOLS_LINUX_CONTAINER_OF_H */