27 lines
616 B
C
27 lines
616 B
C
#ifndef _EXT2FS_COMPILER_H
|
|
#define _EXT2FS_COMPILER_H
|
|
|
|
#include <stddef.h>
|
|
|
|
#ifdef __GNUC__
|
|
|
|
#ifndef __GNUC_PREREQ
|
|
#if defined(__GNUC__) && defined(__GNUC_MINOR__)
|
|
#define __GNUC_PREREQ(maj, min) \
|
|
((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
|
|
#else
|
|
#define __GNUC_PREREQ(maj, min) 0
|
|
#endif
|
|
#endif
|
|
|
|
#define container_of(ptr, type, member) ({ \
|
|
__typeof__( ((type *)0)->member ) *__mptr = (ptr); \
|
|
(type *)( (char *)__mptr - offsetof(type,member) );})
|
|
#else
|
|
#define container_of(ptr, type, member) \
|
|
((type *)((char *)(ptr) - offsetof(type, member)))
|
|
#endif
|
|
|
|
|
|
#endif /* _EXT2FS_COMPILER_H */
|