summaryrefslogtreecommitdiff
path: root/src/systemd
diff options
context:
space:
mode:
Diffstat (limited to 'src/systemd')
-rw-r--r--src/systemd/_sd-common.h28
-rw-r--r--src/systemd/sd-bus-protocol.h10
-rw-r--r--src/systemd/sd-bus-vtable.h10
-rw-r--r--src/systemd/sd-bus.h8
-rw-r--r--src/systemd/sd-event.h10
-rw-r--r--src/systemd/sd-id128.h10
-rw-r--r--src/systemd/sd-journal.h20
-rw-r--r--src/systemd/sd-login.h10
-rw-r--r--src/systemd/sd-memfd.h10
-rw-r--r--src/systemd/sd-messages.h9
-rw-r--r--src/systemd/sd-rtnl.h10
-rw-r--r--src/systemd/sd-utf8.h10
12 files changed, 70 insertions, 75 deletions
diff --git a/src/systemd/_sd-common.h b/src/systemd/_sd-common.h
index b861e33544..b0c48aab9b 100644
--- a/src/systemd/_sd-common.h
+++ b/src/systemd/_sd-common.h
@@ -40,9 +40,31 @@
# 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
diff --git a/src/systemd/sd-bus-protocol.h b/src/systemd/sd-bus-protocol.h
index ff2bcc93b8..07fade6039 100644
--- a/src/systemd/sd-bus-protocol.h
+++ b/src/systemd/sd-bus-protocol.h
@@ -24,9 +24,9 @@
#include <endian.h>
-#ifdef __cplusplus
-extern "C" {
-#endif
+#include "_sd-common.h"
+
+_SD_BEGIN_DECLARATIONS;
/* Types of message */
@@ -213,8 +213,6 @@ enum {
#define SD_BUS_ERROR_INVALID_SIGNATURE "org.freedesktop.DBus.Error.InvalidSignature"
#define SD_BUS_ERROR_INCONSISTENT_MESSAGE "org.freedesktop.DBus.Error.InconsistentMessage"
-#ifdef __cplusplus
-}
-#endif
+_SD_END_DECLARATIONS;
#endif
diff --git a/src/systemd/sd-bus-vtable.h b/src/systemd/sd-bus-vtable.h
index d1642bae5e..18fc30bd20 100644
--- a/src/systemd/sd-bus-vtable.h
+++ b/src/systemd/sd-bus-vtable.h
@@ -22,9 +22,9 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
-#ifdef __cplusplus
-extern "C" {
-#endif
+#include "_sd-common.h"
+
+_SD_BEGIN_DECLARATIONS;
typedef struct sd_bus_vtable sd_bus_vtable;
@@ -128,8 +128,6 @@ struct sd_bus_vtable {
.type = _SD_BUS_VTABLE_END, \
}
-#ifdef __cplusplus
-}
-#endif
+_SD_END_DECLARATIONS;
#endif
diff --git a/src/systemd/sd-bus.h b/src/systemd/sd-bus.h
index 48edc59188..e6264074e0 100644
--- a/src/systemd/sd-bus.h
+++ b/src/systemd/sd-bus.h
@@ -30,9 +30,7 @@
#include "sd-memfd.h"
#include "_sd-common.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
+_SD_BEGIN_DECLARATIONS;
/* Types */
@@ -269,8 +267,6 @@ int sd_bus_error_has_name(const sd_bus_error *e, const char *name);
&(x).bytes[8], &(x).bytes[9], &(x).bytes[10], &(x).bytes[11], \
&(x).bytes[12], &(x).bytes[13], &(x).bytes[14], &(x).bytes[15]
-#ifdef __cplusplus
-}
-#endif
+_SD_END_DECLARATIONS;
#endif
diff --git a/src/systemd/sd-event.h b/src/systemd/sd-event.h
index bc4c01db0b..8262e139ac 100644
--- a/src/systemd/sd-event.h
+++ b/src/systemd/sd-event.h
@@ -28,6 +28,8 @@
#include <inttypes.h>
#include <signal.h>
+#include "_sd-common.h"
+
/*
Why is this better than pure epoll?
@@ -37,9 +39,7 @@
- Handles signals and child PIDs
*/
-#ifdef __cplusplus
-extern "C" {
-#endif
+_SD_BEGIN_DECLARATIONS;
typedef struct sd_event sd_event;
typedef struct sd_event_source sd_event_source;
@@ -115,8 +115,6 @@ int sd_event_source_get_time_accuracy(sd_event_source *s, uint64_t *usec);
int sd_event_source_get_signal(sd_event_source *s);
int sd_event_source_get_child_pid(sd_event_source *s, pid_t *pid);
-#ifdef __cplusplus
-}
-#endif
+_SD_END_DECLARATIONS;
#endif
diff --git a/src/systemd/sd-id128.h b/src/systemd/sd-id128.h
index 6066f395fa..5bae9655cc 100644
--- a/src/systemd/sd-id128.h
+++ b/src/systemd/sd-id128.h
@@ -25,9 +25,9 @@
#include <inttypes.h>
#include <string.h>
-#ifdef __cplusplus
-extern "C" {
-#endif
+#include "_sd-common.h"
+
+_SD_BEGIN_DECLARATIONS;
/* 128 Bit ID APIs. See sd-id128(3) for more information. */
@@ -102,8 +102,6 @@ static inline int sd_id128_equal(sd_id128_t a, sd_id128_t b) {
#define SD_ID128_NULL ((sd_id128_t) { .qwords = { 0, 0 }})
-#ifdef __cplusplus
-}
-#endif
+_SD_END_DECLARATIONS;
#endif
diff --git a/src/systemd/sd-journal.h b/src/systemd/sd-journal.h
index e319c6e58c..751e7f9ea7 100644
--- a/src/systemd/sd-journal.h
+++ b/src/systemd/sd-journal.h
@@ -31,12 +31,10 @@
#include "sd-id128.h"
#include "_sd-common.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* Journal APIs. See sd-journal(3) for more information. */
+_SD_BEGIN_DECLARATIONS;
+
/* Write to daemon */
int sd_journal_print(int priority, const char *format, ...) _sd_printf_(2, 3);
int sd_journal_printv(int priority, const char *format, va_list ap) _sd_printf_(2, 0);
@@ -54,11 +52,11 @@ int sd_journal_perror_with_location(const char *file, const char *line, const ch
/* implicitly add code location to messages sent, if this is enabled */
#ifndef SD_JOURNAL_SUPPRESS_LOCATION
-#define sd_journal_print(priority, ...) sd_journal_print_with_location(priority, "CODE_FILE=" __FILE__, "CODE_LINE=" _sd_stringify(__LINE__), __func__, __VA_ARGS__)
-#define sd_journal_printv(priority, format, ap) sd_journal_printv_with_location(priority, "CODE_FILE=" __FILE__, "CODE_LINE=" _sd_stringify(__LINE__), __func__, format, ap)
-#define sd_journal_send(...) sd_journal_send_with_location("CODE_FILE=" __FILE__, "CODE_LINE=" _sd_stringify(__LINE__), __func__, __VA_ARGS__)
-#define sd_journal_sendv(iovec, n) sd_journal_sendv_with_location("CODE_FILE=" __FILE__, "CODE_LINE=" _sd_stringify(__LINE__), __func__, iovec, n)
-#define sd_journal_perror(message) sd_journal_perror_with_location("CODE_FILE=" __FILE__, "CODE_LINE=" _sd_stringify(__LINE__), __func__, message)
+#define sd_journal_print(priority, ...) sd_journal_print_with_location(priority, "CODE_FILE=" __FILE__, "CODE_LINE=" _SD_STRINGIFY(__LINE__), __func__, __VA_ARGS__)
+#define sd_journal_printv(priority, format, ap) sd_journal_printv_with_location(priority, "CODE_FILE=" __FILE__, "CODE_LINE=" _SD_STRINGIFY(__LINE__), __func__, format, ap)
+#define sd_journal_send(...) sd_journal_send_with_location("CODE_FILE=" __FILE__, "CODE_LINE=" _SD_STRINGIFY(__LINE__), __func__, __VA_ARGS__)
+#define sd_journal_sendv(iovec, n) sd_journal_sendv_with_location("CODE_FILE=" __FILE__, "CODE_LINE=" _SD_STRINGIFY(__LINE__), __func__, iovec, n)
+#define sd_journal_perror(message) sd_journal_perror_with_location("CODE_FILE=" __FILE__, "CODE_LINE=" _SD_STRINGIFY(__LINE__), __func__, message)
#endif
@@ -153,8 +151,6 @@ int sd_journal_get_catalog_for_message_id(sd_id128_t id, char **ret);
#define SD_JOURNAL_FOREACH_UNIQUE(j, data, l) \
for (sd_journal_restart_unique(j); sd_journal_enumerate_unique((j), &(data), &(l)) > 0; )
-#ifdef __cplusplus
-}
-#endif
+_SD_END_DECLARATIONS;
#endif
diff --git a/src/systemd/sd-login.h b/src/systemd/sd-login.h
index 961bd88ec7..a230aff4c5 100644
--- a/src/systemd/sd-login.h
+++ b/src/systemd/sd-login.h
@@ -25,9 +25,7 @@
#include <sys/types.h>
#include <inttypes.h>
-#ifdef __cplusplus
-extern "C" {
-#endif
+#include "_sd-common.h"
/*
* A few points:
@@ -49,6 +47,8 @@ extern "C" {
* See sd-login(3) for more information.
*/
+_SD_BEGIN_DECLARATIONS;
+
/* Get session from PID. Note that 'shared' processes of a user are
* not attached to a session, but only attached to a user. This will
* return an error for system processes and 'shared' processes of a
@@ -182,8 +182,6 @@ int sd_login_monitor_get_events(sd_login_monitor *m);
/* Get timeout for poll(), as usec value relative to CLOCK_MONOTONIC's epoch */
int sd_login_monitor_get_timeout(sd_login_monitor *m, uint64_t *timeout_usec);
-#ifdef __cplusplus
-}
-#endif
+_SD_END_DECLARATIONS;
#endif
diff --git a/src/systemd/sd-memfd.h b/src/systemd/sd-memfd.h
index ee140e48d3..f4ef8f1023 100644
--- a/src/systemd/sd-memfd.h
+++ b/src/systemd/sd-memfd.h
@@ -26,9 +26,9 @@
#include <sys/types.h>
#include <stdio.h>
-#ifdef __cplusplus
-extern "C" {
-#endif
+#include "_sd-common.h"
+
+_SD_BEGIN_DECLARATIONS;
typedef struct sd_memfd sd_memfd;
@@ -51,8 +51,6 @@ int sd_memfd_get_sealed(sd_memfd *m);
int sd_memfd_get_size(sd_memfd *m, uint64_t *sz);
int sd_memfd_set_size(sd_memfd *m, uint64_t sz);
-#ifdef __cplusplus
-}
-#endif
+_SD_END_DECLARATIONS;
#endif
diff --git a/src/systemd/sd-messages.h b/src/systemd/sd-messages.h
index 775aa23c03..947bd1a9e5 100644
--- a/src/systemd/sd-messages.h
+++ b/src/systemd/sd-messages.h
@@ -23,10 +23,9 @@
***/
#include "sd-id128.h"
+#include "_sd-common.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
+_SD_BEGIN_DECLARATIONS;
/* Hey! If you add a new message here, you *must* also update the
* message catalog with an appropriate explanation */
@@ -84,8 +83,6 @@ extern "C" {
#define SD_MESSAGE_BOOTCHART SD_ID128_MAKE(9f,26,aa,56,2c,f4,40,c2,b1,6c,77,3d,04,79,b5,18)
-#ifdef __cplusplus
-}
-#endif
+_SD_END_DECLARATIONS;
#endif
diff --git a/src/systemd/sd-rtnl.h b/src/systemd/sd-rtnl.h
index e3ad37c100..223f40307d 100644
--- a/src/systemd/sd-rtnl.h
+++ b/src/systemd/sd-rtnl.h
@@ -24,9 +24,9 @@
#include <inttypes.h>
-#ifdef __cplusplus
-extern "C" {
-#endif
+#include "_sd-common.h"
+
+_SD_BEGIN_DECLARATIONS;
typedef struct sd_rtnl sd_rtnl;
typedef struct sd_rtnl_message sd_rtnl_message;
@@ -57,8 +57,6 @@ int sd_rtnl_message_get_type(sd_rtnl_message *m, uint16_t *type);
int sd_rtnl_message_append(sd_rtnl_message *m, unsigned short type, const void *data);
int sd_rtnl_message_read(sd_rtnl_message *m, unsigned short *type, void **data);
-#ifdef __cplusplus
-}
-#endif
+_SD_END_DECLARATIONS;
#endif
diff --git a/src/systemd/sd-utf8.h b/src/systemd/sd-utf8.h
index 54ef5fbd89..4a43eb7c2c 100644
--- a/src/systemd/sd-utf8.h
+++ b/src/systemd/sd-utf8.h
@@ -22,15 +22,13 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
-#ifdef __cplusplus
-extern "C" {
-#endif
+#include "_sd-common.h"
+
+_SD_BEGIN_DECLARATIONS;
const char *sd_utf8_is_valid(const char *s);
const char *sd_ascii_is_valid(const char *s);
-#ifdef __cplusplus
-}
-#endif
+_SD_END_DECLARATIONS;
#endif