aboutsummaryrefslogtreecommitdiff
path: root/include/gcc/ck_cc.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/gcc/ck_cc.h')
-rw-r--r--include/gcc/ck_cc.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/gcc/ck_cc.h b/include/gcc/ck_cc.h
index 6ebc59cb5921..0a6d17b93569 100644
--- a/include/gcc/ck_cc.h
+++ b/include/gcc/ck_cc.h
@@ -39,6 +39,15 @@
#define CK_CC_UNUSED __attribute__((unused))
#define CK_CC_USED __attribute__((used))
#define CK_CC_IMM "i"
+
+#define CK_CC_CONTAINER(F, T, M, N) \
+ CK_CC_INLINE static T * \
+ N(F *p) \
+ { \
+ \
+ return (T *)(void *)((char *)p - __builtin_offsetof(T, M)); \
+ }
+
#if defined(__x86_64__) || defined(__x86__)
#define CK_CC_IMM_U32 "Z"
#define CK_CC_IMM_S32 "e"