chiark / gitweb /
api: replace manual C++ guards by macros
[elogind.git] / src / systemd / _sd-common.h
index b861e335442f4b6dea2c033e8eda429619479f6a..b0c48aab9b2e7ff2ba6cd38548cf7abf3d8614b3 100644 (file)
 #  define _sd_packed_ __attribute__((packed))
 #endif
 
-#ifndef _sd_stringify
-#  define _sd_xstringify(x) #x
-#  define _sd_stringify(x) _sd_xstringify(x)
+#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