PatchworkOS
Loading...
Searching...
No Matches
CONTAINER_OF.h
Go to the documentation of this file.
1#ifndef _AUX_CONTAINER_OF_H
2#define _AUX_CONTAINER_OF_H 1
3
4#include <stddef.h>
5
18#define CONTAINER_OF(ptr, type, member) ((type*)((char*)(ptr) - offsetof(type, member)))
19
31#define CONTAINER_OF_SAFE(ptr, type, member) \
32 ({ \
33 void* p = ptr; \
34 ((p != NULL) ? CONTAINER_OF(p, type, member) : NULL); \
35 })
36
37#endif