Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _TOOLS_LINUX_CONTAINER_OF_H
3#define _TOOLS_LINUX_CONTAINER_OF_H
4
5#ifndef container_of
6/**
7 * container_of - cast a member of a structure out to the containing structure
8 * @ptr: the pointer to the member.
9 * @type: the type of the container struct this is embedded in.
10 * @member: the name of the member within the struct.
11 *
12 */
13#define container_of(ptr, type, member) ({ \
14 const typeof(((type *)0)->member) * __mptr = (ptr); \
15 (type *)((char *)__mptr - offsetof(type, member)); })
16#endif
17
18#endif /* _TOOLS_LINUX_CONTAINER_OF_H */