/* This is a private header, never even think of including this directly! */
+#if __INCLUDE_LEVEL__ <= 1
+#error "Do not include _sd-common.h directly, it is a private header."
+#endif
+
#ifndef _sd_printf_
# if __GNUC__ >= 4
# define _sd_printf_(a,b) __attribute__ ((format (printf, a, b)))
# define _sd_packed_ __attribute__((packed))
#endif
-#ifndef _sd_stringify
-# define _sd_xstringify(x) #x
-# define _sd_stringify(x) _sd_xstringify(x)
+#ifndef _sd_pure_
+# define _sd_pure_ __attribute__((pure))
+#endif
+
+#ifndef _SD_STRINGIFY
+# define _SD_XSTRINGIFY(x) #x
+# define _SD_STRINGIFY(x) _SD_XSTRINGIFY(x)
+#endif
+
+#ifndef _SD_BEGIN_DECLARATIONS
+# ifdef __cplusplus
+# define _SD_BEGIN_DECLARATIONS \
+ extern "C" { \
+ struct __useless_struct_to_allow_trailing_semicolon__
+# else
+# define _SD_BEGIN_DECLARATIONS \
+ struct __useless_struct_to_allow_trailing_semicolon__
+# endif
+#endif
+
+#ifndef _SD_END_DECLARATIONS
+# ifdef __cplusplus
+# define _SD_END_DECLARATIONS \
+ } \
+ struct __useless_struct_to_allow_trailing_semicolon__
+# else
+# define _SD_END_DECLARATIONS \
+ struct __useless_struct_to_allow_trailing_semicolon__
+# endif
#endif
#endif