vdso
This commit is contained in:
@@ -14,19 +14,19 @@
|
||||
#if defined(__has_builtin)
|
||||
#if __has_builtin(__builtin_types_compatible_p)
|
||||
// Get pointer to parent object given pointer to a struct or union member.
|
||||
#define CONTAINER_OF(ptr, type, member) \
|
||||
#define containerof(ptr, type, member) \
|
||||
({ \
|
||||
_Static_assert( \
|
||||
__builtin_types_compatible_p(__typeof__(*(ptr)), __typeof__(((type*)0)->member)), \
|
||||
"Incompatible types for CONTAINER_OF" \
|
||||
static_assert( \
|
||||
__builtin_types_compatible_p(typeof(*(ptr)), typeof(((type*)0)->member)), \
|
||||
"Incompatible types for containerof" \
|
||||
); \
|
||||
(type*)((size_t)ptr - offsetof(type, member)); \
|
||||
})
|
||||
#endif
|
||||
#endif
|
||||
#ifndef CONTAINER_OF
|
||||
#ifndef containerof
|
||||
// Get pointer to parent object given pointer to a struct or union member.
|
||||
#define CONTAINER_OF(ptr, type, member) (type*)((size_t)ptr - offsetof(type, member))
|
||||
#define containerof(ptr, type, member) (type*)((size_t)ptr - offsetof(type, member))
|
||||
#endif
|
||||
|
||||
#define CONCAT(A, B) _CONCAT(A, B)
|
||||
|
||||
Reference in New Issue
Block a user